LUA List: Difference between revisions
Content added Content deleted
(Add description, separate enumerations, and complete the spec.) |
m (Table normalization) |
||
Line 8: | Line 8: | ||
==== 32-bit ==== |
==== 32-bit ==== |
||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x4 || int32_t || || Version number || 1 |
| 0x0 || 0x4 || int32_t || || Version number || 1 |
||
Line 35: | Line 35: | ||
==== 64-bit ==== |
==== 64-bit ==== |
||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x4 || int32_t || || Version number || 1 |
| 0x0 || 0x4 || int32_t || || Version number || 1 |
||
Line 62: | Line 62: | ||
=== Entry === |
=== Entry === |
||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset !! |
! Offset !! Length !! Type !! Name !! Description !! Comments |
||
|- |
|- |
||
| 0x0 || 0x8 || CgsID || || Script ID || Encoded |
| 0x0 || 0x8 || CgsID || || Script ID || Encoded |
Revision as of 21:50, 8 July 2022
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.
Layout
Some names are given for clarity and are not official Criterion identifiers.
LuaList
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 | Entry* | Entry data start | ||
0x14 | 0x4 | char** | Types | See Types | |
0x18 | 0x4 | char** | Variables | See Variables | |
0x1C | 0x4 | uint32_t | Num scripts | ||
0x20 | 0x4 | uint32_t | Data length | Not including padding to end | |
0x24 | 0x80 | char[128] | List title | ||
0xA4 | 0x1 | uint8_t | Num types | ||
0xA5 | 0x1 | uint8_t | Num variables |
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 | Entry* | Entry data start | ||
0x18 | 0x8 | char** | Types | See Types | |
0x20 | 0x8 | char** | Variables | See Variables | |
0x28 | 0x4 | uint32_t | Num scripts | ||
0x2C | 0x4 | uint32_t | Data length | Not including padding to end | |
0x30 | 0x80 | char[128] | List title | ||
0xB0 | 0x1 | uint8_t | Num types | ||
0xB1 | 0x1 | uint8_t | Num variables |
Entry
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 | Variables | ||
0x218 | 0x8 | padding |
Enumerations
Challenge Type
PASSTHEPAD is the only list to contain challenge types.
Name | Value | Comments |
---|---|---|
Stunt | 0x1 | |
Skill | 0x2 | |
Speed | 0x4 |
Variables
PASSTHEPAD is the only list to contain variables.
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 |