Difference between revisions of "Entity"
Jump to navigation
Jump to search
m |
(→Crash 2/3: Adding offsets.) |
||
Line 5: | Line 5: | ||
===Crash 2/3=== | ===Crash 2/3=== | ||
{|class="article-table" | {|class="article-table" | ||
+ | !Offset | ||
!Field | !Field | ||
!Size | !Size | ||
!Value | !Value | ||
|- | |- | ||
+ | |0x0 | ||
|Length of this item | |Length of this item | ||
|4 bytes | |4 bytes | ||
|* | |* | ||
|- | |- | ||
+ | |0x4 | ||
|Unknown | |Unknown | ||
|4 bytes x 2 | |4 bytes x 2 | ||
|* | |* | ||
|- | |- | ||
+ | |0xC | ||
|Field count | |Field count | ||
|4 bytes | |4 bytes | ||
+ | |hc | ||
+ | |- | ||
+ | |0x10 | ||
+ | |Field info structures (headers) | ||
+ | |hc * 8 bytes | ||
|* | |* | ||
|- | |- | ||
|colspan="4"|Field Info Structure ''h'' | |colspan="4"|Field Info Structure ''h'' | ||
|- | |- | ||
+ | |0x10 + (h * 0x8) + 0x0 | ||
|Type | |Type | ||
|2 bytes | |2 bytes | ||
|* | |* | ||
|- | |- | ||
+ | |0x10 + (h * 0x8) + 0x2 | ||
|Offset relative to 12 bytes at the start of the item | |Offset relative to 12 bytes at the start of the item | ||
|2 bytes | |2 bytes | ||
− | | | + | |offset |
|- | |- | ||
+ | |0x10 + (h * 0x8) + 0x4 | ||
|Flags | |Flags | ||
|Byte | |Byte | ||
|* | |* | ||
|- | |- | ||
+ | |0x10 + (h * 0x8) + 0x5 | ||
|Element size | |Element size | ||
|Byte | |Byte | ||
|es | |es | ||
|- | |- | ||
+ | |0x10 + (h * 0x8) + 0x6 | ||
|Unknown | |Unknown | ||
|2 bytes | |2 bytes | ||
Line 45: | Line 59: | ||
|colspan="4"|Field Structure ''f'' | |colspan="4"|Field Structure ''f'' | ||
|- | |- | ||
+ | |offset + 0xC + 0x0 | ||
|Element count | |Element count | ||
|2 bytes | |2 bytes | ||
|ec | |ec | ||
|- | |- | ||
+ | |offset + 0xC + 0x2 | ||
|Unknown | |Unknown | ||
|2 bytes | |2 bytes | ||
|* | |* | ||
|- | |- | ||
+ | |offset + 0xC + 0x4 | ||
|Data | |Data | ||
|es * ec | |es * ec | ||
|* | |* | ||
|- | |- | ||
+ | |offset + 0xC + 0x4 + es * ec | ||
|Unknown | |Unknown | ||
|? bytes | |? bytes | ||
|* | |* | ||
|} | |} | ||
+ | |||
==Type== | ==Type== | ||
The format and usage of the field data depends on the field type. Incomplete list. | The format and usage of the field data depends on the field type. Incomplete list. |
Revision as of 15:01, 22 March 2016
An entity is an item that stores a collection of values (hereafter referred to as "fields") that can represent a game object/camera rail in Crash 2 and 3.
Format
Crash 2/3
Offset | Field | Size | Value |
---|---|---|---|
0x0 | Length of this item | 4 bytes | * |
0x4 | Unknown | 4 bytes x 2 | * |
0xC | Field count | 4 bytes | hc |
0x10 | Field info structures (headers) | hc * 8 bytes | * |
Field Info Structure h | |||
0x10 + (h * 0x8) + 0x0 | Type | 2 bytes | * |
0x10 + (h * 0x8) + 0x2 | Offset relative to 12 bytes at the start of the item | 2 bytes | offset |
0x10 + (h * 0x8) + 0x4 | Flags | Byte | * |
0x10 + (h * 0x8) + 0x5 | Element size | Byte | es |
0x10 + (h * 0x8) + 0x6 | Unknown | 2 bytes | * |
Field Structure f | |||
offset + 0xC + 0x0 | Element count | 2 bytes | ec |
offset + 0xC + 0x2 | Unknown | 2 bytes | * |
offset + 0xC + 0x4 | Data | es * ec | * |
offset + 0xC + 0x4 + es * ec | Unknown | ? bytes | * |
Type
The format and usage of the field data depends on the field type. Incomplete list.
Type | Name | Purpose | Format |
---|---|---|---|
0x2C | Name | String of characters for the internal name used to refer to the entity. It has no purpose so whatever you put here won't affect the game | UTF-8 charset |
0x4B | Position | List of position points to be used by the entity. Multiple of these can be used to make the entity follow a path (as long as it is programmed to do so) | Int16 for each X, Y and Z coordinate |
0x9F | ID | Value to uniquely identify the entity that is used to draw it, destroy it (see victims below) and other miscellaneous behaviors | Int321 |
0xA4 | General Settings | List of values that can be used to change a certain object's behavior (i.e. flags, delay, speed) | Int32 (UInt8 + Int24) |
0xA9 | Type | Type of the entity | Int32 |
0xAA | Subtype | Variant of the entity | Int32 |
0x287 | Victim | List of entity IDs to destroy on certain occasions (i.e. TNT is undrawn, Nitro Switch activated) | Int16 |
1 - Draw lists store this as an Int16, so setting this to a value higher than that will cause severe issues.