LUA List: Difference between revisions

From Burnout Wiki
Content added Content deleted
(Fix section links.)
(Renamed variables to modifiers. Added infobox and normalized some content.)
 
Line 1: Line 1:
{{ParadiseResourceTypeInfobox
| name = LUAList
| othernames = LUAInst
| resourcenames = Dev<br />IslandPack<br />PassThePad
| id = 0x10025
| category = Game-specific<br />(Burnout Paradise)
| memdist = Main Memory only
}}

The LUA List resource type contains binary data detailing the challenges in individual [[LUA Script]] resources. It is used in scripted challenges such as Party Pack challenges.
The LUA List resource type contains binary data detailing the challenges in individual [[LUA Script]] resources. It is used in scripted challenges such as Party Pack challenges.


The information held includes details of the challenge itself, such as its name and goal, as well as modifiers such as the variables.
The information held includes details of the challenge itself, such as its name and goal, as well as modifiers.


= Structures =
= Structures =
Some names are given for clarity and are not official Criterion identifiers.
Some names are given for clarity and are not official Criterion identifiers.

=== BrnLUA::LUAListResource ===
=== BrnLUA::LUAListResource ===
==== 32-bit ====
==== 32-bit ====
Line 10: Line 20:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || int32_t || || Version number || 1
| 0x0 || 0x4 || int32_t || ? || Version number || 1
|-
|-
| 0x4 || 0x4 || || || padding ||
| 0x4 || 0x4 || || || Padding ||
|-
|-
| 0x8 || 0x8 || [[CgsID]] || || List ID || Encoded
| 0x8 || 0x8 || [[CgsID]] || ? || List ID || Encoded
|-
|-
| 0x10 || 0x4 || [[#BrnLUA::LUAListEntry|LUAListEntry]]* || || Entry data start ||
| 0x10 || 0x4 || [[#BrnLUA::LUAListEntry|LUAListEntry]]* || ? || Entry data start ||
|-
|-
| 0x14 || 0x4 || char** || || Types || See [[#Challenge type|challenge type]]
| 0x14 || 0x4 || char** || ? || Types || See [[#Challenge type|challenge type]]
|-
|-
| 0x18 || 0x4 || char** || || Variables || See [[#Variables|variables]]
| 0x18 || 0x4 || char** || ? || Modifiers || See [[#Modifiers|modifiers]]
|-
|-
| 0x1C || 0x4 || uint32_t || || Num scripts ||
| 0x1C || 0x4 || uint32_t || ? || Number of scripts ||
|-
|-
| 0x20 || 0x4 || uint32_t || || Data length || Not including padding to end
| 0x20 || 0x4 || uint32_t || ? || Resource size ||
|-
|-
| 0x24 || 0x80 || char[128] || || List title ||
| 0x24 || 0x80 || char[128] || ? || List title ||
|-
|-
| 0xA4 || 0x1 || uint8_t || || Num types ||
| 0xA4 || 0x1 || uint8_t || ? || Number of types ||
|-
|-
| 0xA5 || 0x1 || uint8_t || || Num variables ||
| 0xA5 || 0x1 || uint8_t || ? || Number of modifiers ||
|}
|}


Line 37: Line 47:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || int32_t || || Version number || 1
| 0x0 || 0x4 || int32_t || ? || Version number || 1
|-
|-
| 0x4 || 0x4 || || || padding ||
| 0x4 || 0x4 || || || Padding ||
|-
|-
| 0x8 || 0x8 || [[CgsID]] || || List ID || Encoded
| 0x8 || 0x8 || [[CgsID]] || ? || List ID || Encoded
|-
|-
| 0x10 || 0x8 || [[#BrnLUA::LUAListEntry|LUAListEntry]]* || || Entry data start ||
| 0x10 || 0x8 || [[#BrnLUA::LUAListEntry|LUAListEntry]]* || ? || Entry data start ||
|-
|-
| 0x18 || 0x8 || char** || || Types || See [[#Challenge type|challenge types]]
| 0x18 || 0x8 || char** || ? || Types || See [[#Challenge type|challenge types]]
|-
|-
| 0x20 || 0x8 || char** || || Variables || See [[#Variables|variables]]
| 0x20 || 0x8 || char** || ? || Modifiers || See [[#Modifiers|modifiers]]
|-
|-
| 0x28 || 0x4 || uint32_t || || Num scripts ||
| 0x28 || 0x4 || uint32_t || ? || Number of scripts ||
|-
|-
| 0x2C || 0x4 || uint32_t || || Data length || Not including padding to end
| 0x2C || 0x4 || uint32_t || ? || Resource size ||
|-
|-
| 0x30 || 0x80 || char[128] || || List title ||
| 0x30 || 0x80 || char[128] || ? || List title ||
|-
|-
| 0xB0 || 0x1 || uint8_t || || Num types ||
| 0xB0 || 0x1 || uint8_t || ? || Number of types ||
|-
|-
| 0xB1 || 0x1 || uint8_t || || Num variables ||
| 0xB1 || 0x1 || uint8_t || ? || Number of modifiers ||
|}
|}


Line 64: Line 74:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x8 || [[CgsID]] || || Script ID || Encoded
| 0x0 || 0x8 || [[CgsID]] || ? || Script ID || Encoded
|-
|-
| 0x8 || 0x80 || char[128] || || Name || Non-zeroed padding in all strings
| 0x8 || 0x80 || char[128] || ? || Name || Non-zeroed padding in all strings
|-
|-
| 0x88 || 0x80 || char[128] || || Goal ||
| 0x88 || 0x80 || char[128] || ? || Goal ||
|-
|-
| 0x108 || 0x100 || char[256] || || Description ||
| 0x108 || 0x100 || char[256] || ? || Description ||
|-
|-
| 0x208 || 0x4 || uint32_t || || Score multiplier || See [[#Score multiplier|score multiplier]]
| 0x208 || 0x4 || uint32_t || ? || Score multiplier || See [[#Score multiplier|score multiplier]]
|-
|-
| 0x20C || 0x4 || uint32_t || || Scoring method || See [[#Scoring method|scoring method]]
| 0x20C || 0x4 || uint32_t || ? || Scoring method || See [[#Scoring method|scoring method]]
|-
|-
| 0x210 || 0x4 || uint32_t || || Type ||
| 0x210 || 0x4 || uint32_t || ? || Type ||
|-
|-
| 0x214 || 0x4 || uint32_t || || Variables ||
| 0x214 || 0x4 || uint32_t || ? || Modifiers ||
|-
|-
| 0x218 || 0x8 || || || padding ||
| 0x218 || 0x8 || || || Padding ||
|}
|}


Line 86: Line 96:
=== Challenge type ===
=== Challenge type ===
PASSTHEPAD is the only list to contain challenge types.
PASSTHEPAD is the only list to contain challenge types.

{| class="wikitable"
{| class="wikitable"
|-
! Name !! Value !! Comments
! Name !! Value !! Comments
|-
|-
Line 97: Line 107:
|}
|}


=== Variables ===
=== Modifer ===
PASSTHEPAD is the only list to contain variables.
PASSTHEPAD is the only list to contain modifiers.

{| class="wikitable"
{| class="wikitable"
|-
! Name !! Value !! Comments
! Name !! Value !! Comments
|-
|-
Line 118: Line 128:
=== Score multiplier ===
=== Score multiplier ===
PASSTHEPAD is the only list to use multipliers, and only on Stunt challenges.
PASSTHEPAD is the only list to use multipliers, and only on Stunt challenges.

{| class="wikitable"
{| class="wikitable"
|-
! Name !! Value !! Comments
! Name !! Value !! Comments
|-
|-
Line 131: Line 141:
=== Scoring method ===
=== Scoring method ===
PASSTHEPAD is the only list to use success/fail scoring, and only on Stunt challenges. All Stunt challenges use this.
PASSTHEPAD is the only list to use success/fail scoring, and only on Stunt challenges. All Stunt challenges use this.

{| class="wikitable"
{| class="wikitable"
|-
! Name !! Value !! Comments
! Name !! Value !! Comments
|-
|-

Latest revision as of 21:58, 4 October 2023

LUAList
aka LUAInst
No Example
Resource names Dev
IslandPack
PassThePad
Type ID 0x10025
Category Game-specific
(Burnout Paradise)
Memory
distribution
Main Memory only
Imports Unknown
Imported by Unknown
Editor
available?
No

The LUA List resource type contains binary data detailing the challenges in individual LUA Script resources. It is used in scripted challenges such as Party Pack challenges.

The information held includes details of the challenge itself, such as its name and goal, as well as modifiers.

Structures

Some names are given for clarity and are not official Criterion identifiers.

BrnLUA::LUAListResource

32-bit

Offset Length Type Name Description Comments
0x0 0x4 int32_t ? Version number 1
0x4 0x4 Padding
0x8 0x8 CgsID ? List ID Encoded
0x10 0x4 LUAListEntry* ? Entry data start
0x14 0x4 char** ? Types See challenge type
0x18 0x4 char** ? Modifiers See modifiers
0x1C 0x4 uint32_t ? Number of scripts
0x20 0x4 uint32_t ? Resource size
0x24 0x80 char[128] ? List title
0xA4 0x1 uint8_t ? Number of types
0xA5 0x1 uint8_t ? Number of modifiers

64-bit

Offset Length Type Name Description Comments
0x0 0x4 int32_t ? Version number 1
0x4 0x4 Padding
0x8 0x8 CgsID ? List ID Encoded
0x10 0x8 LUAListEntry* ? Entry data start
0x18 0x8 char** ? Types See challenge types
0x20 0x8 char** ? Modifiers See modifiers
0x28 0x4 uint32_t ? Number of scripts
0x2C 0x4 uint32_t ? Resource size
0x30 0x80 char[128] ? List title
0xB0 0x1 uint8_t ? Number of types
0xB1 0x1 uint8_t ? Number of modifiers

BrnLUA::LUAListEntry

Offset Length Type Name Description Comments
0x0 0x8 CgsID ? Script ID Encoded
0x8 0x80 char[128] ? Name Non-zeroed padding in all strings
0x88 0x80 char[128] ? Goal
0x108 0x100 char[256] ? Description
0x208 0x4 uint32_t ? Score multiplier See score multiplier
0x20C 0x4 uint32_t ? Scoring method See scoring method
0x210 0x4 uint32_t ? Type
0x214 0x4 uint32_t ? Modifiers
0x218 0x8 Padding

Enumerations

Challenge type

PASSTHEPAD is the only list to contain challenge types.

Name Value Comments
Stunt 0x1
Skill 0x2
Speed 0x4

Modifer

PASSTHEPAD is the only list to contain modifiers.

Name Value Comments
$K_ACCELERATOR_LOCKED 0x1 English translation: ACCELERATOR LOCKED ON
$K_BOOST_LOCKED 0x2 English translation: BOOST LOCKED ON
$K_DO_NOT_CRASH 0x4 English translation: DON'T CRASH
$K_DO_NOT_TOUCH_A_WALL 0x8 English translation: DON'T TOUCH A WALL
$K_REVERSE_STEERING 0x10 English translation: REVERSE STEERING
$K_NO_BRAKES 0x20 English translation: NO BRAKES

Score multiplier

PASSTHEPAD is the only list to use multipliers, and only on Stunt challenges.

Name Value Comments
? 0 Standard points
? 1 Double points
? 2 Triple points

Scoring method

PASSTHEPAD is the only list to use success/fail scoring, and only on Stunt challenges. All Stunt challenges use this.

Name Value Comments
? 0 Score by position
? 1 Score by success/fail