EvilEngine/Assets: Difference between revisions
Battlepedia>Wowaname mNo edit summary |
Battlepedia>Seil No edit summary |
||
Line 1: | Line 1: | ||
Heavy Iron games store all of their data for each scene in '''assets''', which can be different formats such as models, textures, animations, object placement information, and many others. Assets are defined by AHDR sections in the [[HIP (File Format)|HIP archives]] and uniquely identified by their [[Asset ID]]. It is not yet known what all different asset types do. |
|||
==Classes of Assets== |
==Classes of Assets== |
||
Line 7: | Line 7: | ||
These are assets whose data is composed of a RenderWare binary stream, with the tree structure commonly found in them. These assets can be opened in [https://www.gta-modding.com/area/file-33-rw-analyze.html RW Analyze]. They are: [[BSP]], [[JSP]], [[MODL]], [[RWTX]]. |
These are assets whose data is composed of a RenderWare binary stream, with the tree structure commonly found in them. These assets can be opened in [https://www.gta-modding.com/area/file-33-rw-analyze.html RW Analyze]. They are: [[BSP]], [[JSP]], [[MODL]], [[RWTX]]. |
||
=== |
===Base Assets=== |
||
Many assets extend from Base Assets (also referred to as object assets), which define objects in the level that can interact with each other by using [[Events#Links|links]]. Base assets start with an 8 byte header, defined by the <code>xBaseAsset</code> struct: |
|||
Object assets are a class which start with the following 8 byte header, and are able to send and recieve [[events]]. |
|||
<source lang=cpp> |
|||
struct xBaseAsset |
|||
{ |
|||
unsigned int id; |
|||
unsigned char baseType; |
|||
unsigned char linkCount; |
|||
unsigned short baseFlags; |
|||
} |
|||
</source> |
|||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset |
! Offset !! Variable !! Description |
||
|- |
|- |
||
| 0x00 |
| 0x00 || '''id''' || [[Asset ID]] of entry. Should match the asset ID of the asset in the [[HIP (File Format)#AHDR|AHDR]]. |
||
|- |
|- |
||
| 0x04 |
| 0x04 || '''baseType''' || Unique to each base asset type. The asset table below shows the base type for each type. |
||
|- |
|- |
||
| 0x05 || '''linkCount''' || The number of links present at/near the end of the asset. |
|||
| 0x05 || byte || '''Number of Events''' || |
|||
|- |
|- |
||
| 0x06 |
| 0x06 || '''baseFlags''' || Common flags represented as a 16-bit bitfield although only the 5 lowest bits are ever used. |
||
* |
* 0x1 - '''Enabled''' - Initial enabled/disabled state. If the object is disabled, it won't receive events. |
||
* |
* 0x2 - '''Persistent''' - If an asset is persistent, it will keep track of its current state and restore it on the next scene prepare (player respawn, level reload, etc.) For example, if you make a [[BUTN|button]] persistent and press it in-game, the next time you load the level the button will automatically re-press itself. |
||
* |
* 0x4 - '''Valid''' - Always 1. |
||
* |
* 0x8 - '''Visible During Cutscenes''' - Whether to keep the object visible or not during cutscenes. |
||
* |
* 0x10 - '''Receive Shadows''' - Whether to receive shadows from the player, NPCs, pickups, etc. Asset types known to use this flag: [[BUTN]], [[PLAT]], [[SIMP]] |
||
|} |
|} |
||
The data that follows this header differs depending on the asset type. Some |
The data that follows this header differs depending on the asset type. Some base assets are entity assets as well (defined below). |
||
These objects have, at the end of their data, an array of [[ |
These objects have, at the end of their data, an array of [[Events#Links|links]], with the amount of entries specified in this header. The only exception for this is the [[PLYR]] assets, which still has one field after the events. |
||
=== |
===Entity Assets=== |
||
Entity assets (also referred to as placeable assets) are base assets which have a 3D placement in the world and the following common header (not all objects with a position follow this, though; for example, [[MRKR]] have a position but are not even base assets). They start with a 0x54 byte header, which is defined by the <code>xEntAsset</code> struct (which extends from <code>xBaseAsset</code>): |
|||
<source lang=cpp> |
|||
struct xEntAsset : xBaseAsset |
|||
{ |
|||
unsigned char flags; |
|||
unsigned char subtype; |
|||
unsigned char pflags; |
|||
unsigned char moreFlags; |
|||
unsigned char pad; |
|||
unsigned int surfaceID; |
|||
xVec3 ang; |
|||
xVec3 pos; |
|||
xVec3 scale; |
|||
float redMult; |
|||
float greenMult; |
|||
float blueMult; |
|||
float seeThru; |
|||
float seeThruSpeed; |
|||
unsigned int modelInfoID; |
|||
unsigned int animListID; |
|||
}; |
|||
</source> |
|||
{| class="wikitable" |
{| class="wikitable" |
||
! Offset |
! Offset !! Variable !! Description |
||
|- |
|- |
||
| 0x08 |
| 0x08 || '''flags''' || Flags stored in a bitfield, most likely related to visibility. Can be changed dynamically mid-game through events. (?) |
||
* 1 - '''Visible''', used by [[BOUL]], [[BUTN]], [[DSTR]], [[EGEN]], [[PKUP]], [[PLAT]], [[PLYR]], [[SIMP]], [[TRIG]], [[UI]], [[UIFT]], [[VIL]] |
* 1 - '''Visible''', used by [[BOUL]], [[BUTN]], [[DSTR]], [[EGEN]], [[PKUP]], [[PLAT]], [[PLYR]], [[SIMP]], [[TRIG]], [[UI]], [[UIFT]], [[VIL]] |
||
* 2 - '''Stackable'''. Enabling this will cause the object to fall down and stack on top of other objects. This is mainly used for [[DSTR|Destructible Objects]], such as a table with a picture on top of it (when the table is destroyed, the picture falls to the ground). Note that this disables [[PLAT]] movement. Works with [[PLAT]], [[BUTN]], [[DSTR]], [[VIL]] (?), and possibly others. Enabling this on a [[SIMP]] will crash the game. |
* 2 - '''Stackable'''. Enabling this will cause the object to fall down and stack on top of other objects. This is mainly used for [[DSTR|Destructible Objects]], such as a table with a picture on top of it (when the table is destroyed, the picture falls to the ground). Note that this disables [[PLAT]] movement. Works with [[PLAT]], [[BUTN]], [[DSTR]], [[VIL]] (?), and possibly others. Enabling this on a [[SIMP]] will crash the game. |
||
Line 47: | Line 79: | ||
* 128 - Unused |
* 128 - Unused |
||
|- |
|- |
||
| 0x09 |
| 0x09 || '''subType''' || Defines the subtype of the asset. Usually 0 except for the asset types listed below. |
||
* [[PKUP]] - [[PKUP#Types (0x09)|Pickup types]] |
* [[PKUP]] - [[PKUP#Types (0x09)|Pickup types]] |
||
* [[PLAT]] - [[PLAT#Types (0x09)|Platform types]] |
* [[PLAT]] - [[PLAT#Types (0x09)|Platform types]] |
||
* [[TRIG]] - 0 = Box, 1 = Sphere |
* [[TRIG]] - 0 = Box, 1 = Sphere, 2 = Cylinder |
||
|- |
|- |
||
| 0x0A |
| 0x0A || '''pflags''' || Always 0. |
||
|- |
|- |
||
| 0x0B |
| 0x0B || '''moreFlags''' || Flags stored in a bitfield, most likely related to collision. Can be changed dynamically mid-game through events. (?) Always 0 for [[BOUL]], [[PLYR]], and [[TRIG]]. |
||
* 1 - Unused |
* 1 - Unused |
||
* 2 - '''Precise Collision'''. When enabled, the collision shape is the exact shape of the model. When disabled, the collision shape is the bounding box of the model. Used by [[BUTN]], [[DSTR]], [[EGEN]], [[PKUP]], [[PLAT]], [[SIMP]], [[UI]], [[UIFT]], [[VIL]] |
* 2 - '''Precise Collision'''. When enabled, the collision shape is the exact shape of the model. When disabled, the collision shape is the bounding box of the model. Used by [[BUTN]], [[DSTR]], [[EGEN]], [[PKUP]], [[PLAT]], [[SIMP]], [[UI]], [[UIFT]], [[VIL]] |
||
Line 64: | Line 96: | ||
* 128 - '''Unknown''', used by [[PLAT]], [[SIMP]] |
* 128 - '''Unknown''', used by [[PLAT]], [[SIMP]] |
||
|- |
|- |
||
| 0x0C |
| 0x0C || '''pad''' || Always null. '''Not present in some versions of entity assets''', mainly beta/unused assets and non-BFBB assets. Those assets only have a 0x50-byte header. |
||
|- |
|||
⚫ | |||
|- |
|||
| 0x14 || '''ang''' || A (Yaw, Pitch, Roll) rotation vector (in radians). |
|||
|- |
|||
| 0x20 || '''pos''' || A (X, Y, Z) position vector. |
|||
|- |
|- |
||
| 0x2C || '''scale''' || A (X, Y, Z) scale vector. |
|||
⚫ | |||
|- |
|- |
||
| |
| 0x38 || '''redMult''' || Red color multiplier (0 to 1). |
||
|- |
|- |
||
| |
| 0x3C || '''greenMult''' || Green color multiplier (0 to 1). |
||
|- |
|- |
||
| |
| 0x40 || '''blueMult''' || Blue color multiplier (0 to 1). |
||
|- |
|- |
||
| |
| 0x44 || '''seeThru''' || Alpha color multiplier (0 to 1). |
||
|- |
|- |
||
| 0x48 |
| 0x48 || '''seeThruSpeed''' || Usually 255.0 in all types. |
||
|- |
|- |
||
| 0x4C || |
| 0x4C || '''modelInfoID''' || [[MODL]]/[[MINF]] ID for [[BOUL]], [[BUTN]], [[DSTR]], [[EGEN]], [[HANG]], [[PEND]], [[PLAT]], [[PKUP]], [[PLYR]], [[SIMP]], [[UI]] and [[VIL]] |
||
|- |
|- |
||
| 0x50 || |
| 0x50 || '''animListID''' || [[ALST]]/[[ANIM]] ID for [[SIMP]], [[PLAT]], [[DSTR]], and possibly others. [[SND]] ID for [[UI]]. |
||
|} |
|} |
||
Line 97: | Line 135: | ||
! Description |
! Description |
||
! Type |
! Type |
||
! |
! Base Type |
||
! 1 |
! 1 |
||
! 2 |
! 2 |
||
Line 103: | Line 141: | ||
! 4 |
! 4 |
||
! 5 |
! 5 |
||
! Notes |
|||
|- |
|- |
||
| align=center | [[ALST]] |
| align=center | [[ALST]] |
||
Line 108: | Line 147: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[ANIM]] |
| align=center | [[ANIM]] |
||
Line 114: | Line 153: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[ATBL]] |
| align=center | [[ATBL]] |
||
Line 120: | Line 159: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[ATKT]] |
| align=center | [[ATKT]] |
||
Line 126: | Line 165: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || || || ✔ || |
|| || || || ✔ || || |
||
|- |
|- |
||
| align=center | [[BINK]] |
| align=center | [[BINK]] |
||
Line 132: | Line 171: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || || || ✔ || ✔ |
|| || || || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[BOUL]] |
| align=center | [[BOUL]] |
||
|| Boulder |
|| Boulder |
||
|| |
|| Entity |
||
| align=center | 0x2F |
| align=center | 0x2F |
||
|| || ✔ || ✔ || ✔ || ✔ |
|| || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[BSP]] |
| align=center | [[BSP]] |
||
Line 144: | Line 183: | ||
|| RenderWare |
|| RenderWare |
||
| align=center | - |
| align=center | - |
||
|| ✔ || || || || |
|| ✔ || || || || || |
||
|- |
|- |
||
| align=center | [[BUTN]] |
| align=center | [[BUTN]] |
||
|| Button |
|| Button |
||
|| |
|| Entity |
||
| align=center | 0x18 |
| align=center | 0x18 |
||
|| ✔ || ✔ || ✔ || ✔ || |
|| ✔ || ✔ || ✔ || ✔ || || |
||
|- |
|- |
||
| align=center | [[CAM]] |
| align=center | [[CAM]] |
||
|| Camera |
|| Camera |
||
|| |
|| Base |
||
| align=center | 0x07 |
| align=center | 0x07 |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[CCRV]] |
| align=center | [[CCRV]] |
||
|| Camera Curve |
|| Camera Curve |
||
|| |
|| Base |
||
| align=center | 0x8D |
| align=center | 0x8D |
||
|| || || || || ✔ |
|| || || || || ✔ || |
||
|- |
|- |
||
| align=center | [[CNTR]] |
| align=center | [[CNTR]] |
||
|| Counter |
|| Counter |
||
|| |
|| Base |
||
| align=center | 0x16 |
| align=center | 0x16 |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[COLL]] |
| align=center | [[COLL]] |
||
Line 174: | Line 213: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || ✔ || ✔ |
|| || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[COND]] |
| align=center | [[COND]] |
||
|| Conditional |
|| Conditional |
||
|| |
|| Base |
||
| align=center | 0x1F |
| align=center | 0x1F |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[CRDT]] |
| align=center | [[CRDT]] |
||
Line 186: | Line 225: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || ✔ || ✔ |
|| || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[CSN]] |
| align=center | [[CSN]] |
||
Line 192: | Line 231: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || ✔ || |
|| || ✔ || ✔ || ✔ || || |
||
|- |
|- |
||
| align=center | [[CSNM]] |
| align=center | [[CSNM]] |
||
|| Cutscene Mgr |
|| Cutscene Mgr |
||
|| |
|| Base |
||
| align=center | 0x28 |
| align=center | 0x28 |
||
|| ✔ || ✔ || ✔ || ✔ || |
|| ✔ || ✔ || ✔ || ✔ || || |
||
|- |
|- |
||
| align=center | [[CSSS]] |
| align=center | [[CSSS]] |
||
Line 204: | Line 243: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || || ✔ || ✔ || |
|| || || ✔ || ✔ || || |
||
|- |
|- |
||
| align=center | [[CTOC]] |
| align=center | [[CTOC]] |
||
Line 210: | Line 249: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || |
|| ✔ || ✔ || ✔ || ✔ || || |
||
|- |
|- |
||
| align=center | [[DEST]] |
| align=center | [[DEST]] |
||
Line 216: | Line 255: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || || ✔ || ✔ || ✔ |
|| || || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[DPAT]] |
| align=center | [[DPAT]] |
||
|| Dispatcher |
|| Dispatcher |
||
|| |
|| Base |
||
| align=center | 0x1E |
| align=center | 0x1E |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[DSCO]] |
| align=center | [[DSCO]] |
||
|| Disco Floor |
|| Disco Floor |
||
|| |
|| Base |
||
| align=center | 0x00 |
| align=center | 0x00 |
||
|| || ✔ || ✔ || || |
|| || ✔ || ✔ || || || |
||
|- |
|- |
||
| align=center | [[DSTR]] |
| align=center | [[DSTR]] |
||
|| Destructible Object |
|| Destructible Object |
||
|| |
|| Entity |
||
| align=center | 0x1B |
| align=center | 0x1B |
||
|| ✔ || ✔ || || || |
|| ✔ || ✔ || || || || |
||
|- |
|- |
||
| align=center | [[DTRK]] |
| align=center | [[DTRK]] |
||
|| |
|| |
||
|| |
|| Base |
||
| align=center | 0xCD |
| align=center | 0xCD |
||
|| || || || ✔ || |
|| || || || ✔ || || |
||
|- |
|- |
||
| align=center | [[DUPC]] |
| align=center | [[DUPC]] |
||
|| |
|| |
||
|| |
|| Base |
||
| align=center | 0x42 |
| align=center | 0x42 |
||
|| || || || ✔ || |
|| || || || ✔ || || |
||
|- |
|- |
||
| align=center | [[DYNA]] |
| align=center | [[DYNA]] |
||
|| Dynamic Type |
|| Dynamic Type |
||
|| |
|| Base |
||
| align=center | 0x00 |
| align=center | 0x00 |
||
|| || ✔ || ✔ || ✔ || ✔ |
|| || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[EGEN]] |
| align=center | [[EGEN]] |
||
|| Electric Arc Generator |
|| Electric Arc Generator |
||
|| |
|| Entity |
||
| align=center | 0x29 |
| align=center | 0x29 |
||
|| ✔ || ✔ || ✔ || || |
|| ✔ || ✔ || ✔ || || || |
||
|- |
|- |
||
| align=center | [[ENV]] |
| align=center | [[ENV]] |
||
|| Environment |
|| Environment |
||
|| |
|| Base |
||
| align=center | 0x05 |
| align=center | 0x05 |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[FLY]] |
| align=center | [[FLY]] |
||
Line 270: | Line 309: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || || |
|| || ✔ || ✔ || || || |
||
|- |
|- |
||
| align=center | [[FOG]] |
| align=center | [[FOG]] |
||
|| Fog |
|| Fog |
||
|| |
|| Base |
||
| align=center | 0x24 |
| align=center | 0x24 |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[GRSM]] |
| align=center | [[GRSM]] |
||
|| Grass Mesh |
|| Grass Mesh |
||
|| |
|| Base |
||
| align=center | 0xCD |
| align=center | 0xCD |
||
|| || || || ✔ || |
|| || || || ✔ || || |
||
|- |
|- |
||
| align=center | [[GRUP]] |
| align=center | [[GRUP]] |
||
|| Group |
|| Group |
||
|| |
|| Base |
||
| align=center | 0x11 |
| align=center | 0x11 |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[GUST]] |
| align=center | [[GUST]] |
||
|| Gust |
|| Gust |
||
|| |
|| Base |
||
| align=center | 0x1C |
| align=center | 0x1C |
||
|| ✔ || || || || |
|| ✔ || || || || || |
||
|- |
|- |
||
| align=center | [[HANG]] |
| align=center | [[HANG]] |
||
|| Hangable |
|| Hangable |
||
|| |
|| Entity |
||
| align=center | 0x17 |
| align=center | 0x17 |
||
|| ✔ || || || || ✔ |
|| ✔ || || || || ✔ || |
||
|- |
|- |
||
| align=center | [[JAW]] |
| align=center | [[JAW]] |
||
Line 306: | Line 345: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || || ✔ |
|| || ✔ || ✔ || || ✔ || |
||
|- |
|- |
||
| align=center | [[JSP]] |
| align=center | [[JSP]] |
||
Line 312: | Line 351: | ||
|| RenderWare |
|| RenderWare |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || ✔ || ✔ |
|| || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[LITE]] |
| align=center | [[LITE]] |
||
|| Light |
|| Light |
||
|| |
|| Base |
||
| align=center | 0x25 |
| align=center | 0x25 |
||
|| ✔ || || || || |
|| ✔ || || || || || |
||
|- |
|- |
||
| align=center | [[LKIT]] |
| align=center | [[LKIT]] |
||
Line 324: | Line 363: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || ✔ || ✔ |
|| || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[LOBM]] |
| align=center | [[LOBM]] |
||
|| LobMaster |
|| LobMaster |
||
|| |
|| Base |
||
| align=center | 0x23 |
| align=center | 0x23 |
||
|| ✔ || || || || |
|| ✔ || || || || || |
||
|- |
|- |
||
| align=center | [[LODT]] |
| align=center | [[LODT]] |
||
Line 336: | Line 375: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || ✔ || ✔ |
|| || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[MAPR]] |
| align=center | [[MAPR]] |
||
Line 342: | Line 381: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[MINF]] |
| align=center | [[MINF]] |
||
Line 348: | Line 387: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[MODL]] |
| align=center | [[MODL]] |
||
Line 354: | Line 393: | ||
|| RenderWare |
|| RenderWare |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[MPHT]] |
| align=center | [[MPHT]] |
||
Line 360: | Line 399: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || || || || |
|| ✔ || || || || || |
||
|- |
|- |
||
| align=center | [[MRKR]] |
| align=center | [[MRKR]] |
||
Line 366: | Line 405: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[MVPT]] |
| align=center | [[MVPT]] |
||
|| Move Point |
|| Move Point |
||
|| |
|| Base |
||
| align=center | 0x0D |
| align=center | 0x0D |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[NGMS]] |
| align=center | [[NGMS]] |
||
|| NavMesh |
|| NavMesh |
||
|| |
|| Base |
||
| align=center | 0x9A<br>0xCD |
| align=center | 0x9A<br>0xCD |
||
|| || || || ✔ || ✔ || ''' |
|| || || || ✔ || ✔ || '''Base Type notes:'''<br>0x9A is only used in Rise of the Underminer.<br>0xCD is only used in The Incredibles. |
||
|- |
|- |
||
| align=center | [[NPC]] |
| align=center | [[NPC]] |
||
|| NPC |
|| NPC |
||
|| |
|| Entity |
||
| align=center | 0x02 |
| align=center | 0x02 |
||
|| ✔ || || || || |
|| ✔ || || || || || |
||
|- |
|- |
||
| align=center | [[NPCS]] |
| align=center | [[NPCS]] |
||
Line 390: | Line 429: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || || || ✔ || ✔ |
|| || || || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[ONEL]] |
| align=center | [[ONEL]] |
||
Line 396: | Line 435: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || || || ✔ || |
|| || || || ✔ || || |
||
|- |
|- |
||
| align=center | [[PARE]] |
| align=center | [[PARE]] |
||
|| Particle Emitter |
|| Particle Emitter |
||
|| |
|| Base |
||
| align=center | 0x26 |
| align=center | 0x26 |
||
|| ✔ || ✔ || ✔ || || ✔ |
|| ✔ || ✔ || ✔ || || ✔ || |
||
|- |
|- |
||
| align=center | [[PARP]] |
| align=center | [[PARP]] |
||
|| Particle Emitter Property |
|| Particle Emitter Property |
||
|| |
|| Base |
||
| align=center | 0x2E |
| align=center | 0x2E |
||
|| || ✔ || ✔ || || ✔ |
|| || ✔ || ✔ || || ✔ || |
||
|- |
|- |
||
| align=center | [[PARS]] |
| align=center | [[PARS]] |
||
|| Particle System |
|| Particle System |
||
|| |
|| Base |
||
| align=center | 0x27 |
| align=center | 0x27 |
||
|| ✔ || ✔ || ✔ || || ✔ |
|| ✔ || ✔ || ✔ || || ✔ || |
||
|- |
|- |
||
| align=center | [[PEND]] |
| align=center | [[PEND]] |
||
|| Pendulum |
|| Pendulum |
||
|| |
|| Entity |
||
| align=center | 0x12 |
| align=center | 0x12 |
||
|| ✔ || || || || |
|| ✔ || || || || || |
||
|- |
|- |
||
| align=center | [[PGRS]] |
| align=center | [[PGRS]] |
||
|| Prog(?) Script |
|| Prog(?) Script |
||
|| |
|| Base |
||
| align=center | 0x75 |
| align=center | 0x75 |
||
|| || || || ✔ || ✔ |
|| || || || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[PICK]] |
| align=center | [[PICK]] |
||
Line 432: | Line 471: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || || ✔ |
|| ✔ || ✔ || ✔ || || ✔ || |
||
|- |
|- |
||
| align=center | [[PIPT]] |
| align=center | [[PIPT]] |
||
Line 438: | Line 477: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || ✔ || ✔ |
|| || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[PKUP]] |
| align=center | [[PKUP]] |
||
|| Pickup |
|| Pickup |
||
|| |
|| Entity |
||
| align=center | 0x04 |
| align=center | 0x04 |
||
|| ✔ || ✔ || ✔ || || |
|| ✔ || ✔ || ✔ || || || |
||
|- |
|- |
||
| align=center | [[PLAT]] |
| align=center | [[PLAT]] |
||
|| Platform |
|| Platform |
||
|| |
|| Entity |
||
| align=center | 0x06 |
| align=center | 0x06 |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[PLYR]] |
| align=center | [[PLYR]] |
||
|| Player |
|| Player |
||
|| |
|| Entity |
||
| align=center | 0x03 |
| align=center | 0x03 |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[PORT]] |
| align=center | [[PORT]] |
||
|| Portal |
|| Portal |
||
|| |
|| Base |
||
| align=center | 0x10 |
| align=center | 0x10 |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[PRJT]] |
| align=center | [[PRJT]] |
||
|| Projectile |
|| Projectile |
||
|| |
|| Base |
||
| align=center | 0x22 |
| align=center | 0x22 |
||
|| ✔ || || || || |
|| ✔ || || || || || |
||
|- |
|- |
||
| align=center | [[RANM]] |
| align=center | [[RANM]] |
||
|| Reactive Animation List |
|| Reactive Animation List |
||
|| |
|| Base |
||
| align=center | 0x00 |
| align=center | 0x00 |
||
|| || || ✔ || ✔ || |
|| || || ✔ || ✔ || || |
||
|- |
|- |
||
| align=center | [[RAW]] |
| align=center | [[RAW]] |
||
Line 480: | Line 519: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || || ✔ || ✔ |
|| || ✔ || || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[RWTX]] |
| align=center | [[RWTX]] |
||
Line 486: | Line 525: | ||
|| RenderWare |
|| RenderWare |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SCRP]] |
| align=center | [[SCRP]] |
||
|| Script |
|| Script |
||
|| |
|| Base |
||
| align=center | 0x2A |
| align=center | 0x2A |
||
|| || || ✔ || ✔ || ✔ |
|| || || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SDFX]] |
| align=center | [[SDFX]] |
||
|| Sound FX |
|| Sound FX |
||
|| |
|| Base |
||
| align=center | 0x4B |
| align=center | 0x4B |
||
|| || || ✔ || ✔ || ✔ |
|| || || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SFX]] |
| align=center | [[SFX]] |
||
|| Sound FX |
|| Sound FX |
||
|| |
|| Base |
||
| align=center | 0x13 |
| align=center | 0x13 |
||
|| ✔ || ✔ || || || |
|| ✔ || ✔ || || || || |
||
|- |
|- |
||
| align=center | [[SGRP]] |
| align=center | [[SGRP]] |
||
|| Sound Group |
|| Sound Group |
||
|| |
|| Base |
||
| align=center | 0x4A |
| align=center | 0x4A |
||
|| || || ✔ || ✔ || ✔ |
|| || || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SHDW]] |
| align=center | [[SHDW]] |
||
Line 516: | Line 555: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || || || |
|| || ✔ || || || || |
||
|- |
|- |
||
| align=center | [[SHRP]] |
| align=center | [[SHRP]] |
||
Line 522: | Line 561: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || ✔ || ✔ || ✔ |
|| || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SIMP]] |
| align=center | [[SIMP]] |
||
|| Simple Object |
|| Simple Object |
||
|| |
|| Entity |
||
| align=center | 0x0B |
| align=center | 0x0B |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SLID]] |
| align=center | [[SLID]] |
||
|| Slide Property |
|| Slide Property |
||
|| |
|| Base |
||
| align=center | 0x46 |
| align=center | 0x46 |
||
|| || || || ✔ || |
|| || || || ✔ || || |
||
|- |
|- |
||
| align=center | [[SND]] |
| align=center | [[SND]] |
||
Line 540: | Line 579: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SNDI]] |
| align=center | [[SNDI]] |
||
Line 546: | Line 585: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SNDS]] |
| align=center | [[SNDS]] |
||
Line 552: | Line 591: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SPLN]] |
| align=center | [[SPLN]] |
||
|| Spline |
|| Spline |
||
|| |
|| Base |
||
| align=center | 0x49 |
| align=center | 0x49 |
||
|| || || ✔ || ✔ || ✔ |
|| || || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SPLP]] |
| align=center | [[SPLP]] |
||
Line 564: | Line 603: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || || || ✔ || |
|| || || || ✔ || || |
||
|- |
|- |
||
| align=center | [[SSET]] |
| align=center | [[SSET]] |
||
|| Scene Settings |
|| Scene Settings |
||
|| |
|| Base |
||
| align=center | 0x54 |
| align=center | 0x54 |
||
|| || || || ✔ || |
|| || || || ✔ || || |
||
|- |
|- |
||
| align=center | [[SUBT]] |
| align=center | [[SUBT]] |
||
|| Subtitles |
|| Subtitles |
||
|| |
|| Base |
||
| align=center | 0x00 |
| align=center | 0x00 |
||
|| || || || ✔ || ✔ |
|| || || || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[SURF]] |
| align=center | [[SURF]] |
||
|| Surface |
|| Surface |
||
|| |
|| Base |
||
| align=center | 0x1A |
| align=center | 0x1A |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[TEXS]] |
| align=center | [[TEXS]] |
||
Line 588: | Line 627: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || || ✔ || ✔ || ✔ |
|| || || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[TEXT]] |
| align=center | [[TEXT]] |
||
Line 594: | Line 633: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[TIMR]] |
| align=center | [[TIMR]] |
||
|| Timer |
|| Timer |
||
|| |
|| Base |
||
| align=center | 0x0E |
| align=center | 0x0E |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[TPIK]] |
| align=center | [[TPIK]] |
||
|| Pickup Types |
|| Pickup Types |
||
|| |
|| Base |
||
| align=center | 0x00 |
| align=center | 0x00 |
||
|| || || || ✔ || ✔ |
|| || || || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[TRIG]] |
| align=center | [[TRIG]] |
||
|| Trigger |
|| Trigger |
||
|| |
|| Entity |
||
| align=center | 0x01 |
| align=center | 0x01 |
||
|| ✔ || ✔ || ✔ || ✔ || ✔ |
|| ✔ || ✔ || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[TRWT]] |
| align=center | [[TRWT]] |
||
|| Throwables |
|| Throwables |
||
|| |
|| Base |
||
| align=center | 0x00 |
| align=center | 0x00 |
||
|| || || || ✔ || ✔ |
|| || || || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[UI]] |
| align=center | [[UI]] |
||
|| UI |
|| UI |
||
|| |
|| Entity |
||
| align=center | 0x20 |
| align=center | 0x20 |
||
|| ✔ || ✔ || || || |
|| ✔ || ✔ || || || || |
||
|- |
|- |
||
| align=center | [[UIFT]] |
| align=center | [[UIFT]] |
||
|| UI Font |
|| UI Font |
||
|| |
|| Entity |
||
| align=center | 0x21 |
| align=center | 0x21 |
||
|| ✔ || ✔ || || || |
|| ✔ || ✔ || || || || |
||
|- |
|- |
||
| align=center | [[UIM]] |
| align=center | [[UIM]] |
||
|| UI Motion |
|| UI Motion |
||
|| |
|| Base |
||
| align=center | 0x53 |
| align=center | 0x53 |
||
|| || || ✔ || ✔ || ✔ |
|| || || ✔ || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[VIL]] |
| align=center | [[VIL]] |
||
|| NPC |
|| NPC |
||
|| |
|| Entity |
||
| align=center | 0x2B |
| align=center | 0x2B |
||
|| || ✔ || || ✔ || |
|| || ✔ || || ✔ || || |
||
|- |
|- |
||
| align=center | [[VILP]] |
| align=center | [[VILP]] |
||
Line 648: | Line 687: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || ✔ || || || |
|| || ✔ || || || || |
||
|- |
|- |
||
| align=center | [[VOLU]] |
| align=center | [[VOLU]] |
||
|| Volume |
|| Volume |
||
|| |
|| Base |
||
| align=center | 0x1D |
| align=center | 0x1D |
||
|| ✔ || || || || ✔ |
|| ✔ || || || || ✔ || |
||
|- |
|- |
||
| align=center | [[WIRE]] |
| align=center | [[WIRE]] |
||
Line 660: | Line 699: | ||
|| Binary |
|| Binary |
||
| align=center | - |
| align=center | - |
||
|| || || || ✔ || ✔ |
|| || || || ✔ || ✔ || |
||
|- |
|- |
||
| align=center | [[ZLIN]] |
| align=center | [[ZLIN]] |
||
|| Zip Line |
|| Zip Line |
||
|| |
|| Base |
||
| align=center | 0x40 |
| align=center | 0x40 |
||
|| || || || ✔ || |
|| || || || ✔ || || |
||
|} |
|} |
||
Revision as of 22:39, 9 January 2020
Heavy Iron games store all of their data for each scene in assets, which can be different formats such as models, textures, animations, object placement information, and many others. Assets are defined by AHDR sections in the HIP archives and uniquely identified by their Asset ID. It is not yet known what all different asset types do.
Classes of Assets
There are many different asset types, but they can be grouped into classes that have similar properties.
RenderWare Streams
These are assets whose data is composed of a RenderWare binary stream, with the tree structure commonly found in them. These assets can be opened in RW Analyze. They are: BSP, JSP, MODL, RWTX.
Base Assets
Many assets extend from Base Assets (also referred to as object assets), which define objects in the level that can interact with each other by using links. Base assets start with an 8 byte header, defined by the xBaseAsset
struct:
struct xBaseAsset
{
unsigned int id;
unsigned char baseType;
unsigned char linkCount;
unsigned short baseFlags;
}
Offset | Variable | Description |
---|---|---|
0x00 | id | Asset ID of entry. Should match the asset ID of the asset in the AHDR. |
0x04 | baseType | Unique to each base asset type. The asset table below shows the base type for each type. |
0x05 | linkCount | The number of links present at/near the end of the asset. |
0x06 | baseFlags | Common flags represented as a 16-bit bitfield although only the 5 lowest bits are ever used.
|
The data that follows this header differs depending on the asset type. Some base assets are entity assets as well (defined below).
These objects have, at the end of their data, an array of links, with the amount of entries specified in this header. The only exception for this is the PLYR assets, which still has one field after the events.
Entity Assets
Entity assets (also referred to as placeable assets) are base assets which have a 3D placement in the world and the following common header (not all objects with a position follow this, though; for example, MRKR have a position but are not even base assets). They start with a 0x54 byte header, which is defined by the xEntAsset
struct (which extends from xBaseAsset
):
struct xEntAsset : xBaseAsset
{
unsigned char flags;
unsigned char subtype;
unsigned char pflags;
unsigned char moreFlags;
unsigned char pad;
unsigned int surfaceID;
xVec3 ang;
xVec3 pos;
xVec3 scale;
float redMult;
float greenMult;
float blueMult;
float seeThru;
float seeThruSpeed;
unsigned int modelInfoID;
unsigned int animListID;
};
Offset | Variable | Description |
---|---|---|
0x08 | flags | Flags stored in a bitfield, most likely related to visibility. Can be changed dynamically mid-game through events. (?)
|
0x09 | subType | Defines the subtype of the asset. Usually 0 except for the asset types listed below.
|
0x0A | pflags | Always 0. |
0x0B | moreFlags | Flags stored in a bitfield, most likely related to collision. Can be changed dynamically mid-game through events. (?) Always 0 for BOUL, PLYR, and TRIG.
|
0x0C | pad | Always null. Not present in some versions of entity assets, mainly beta/unused assets and non-BFBB assets. Those assets only have a 0x50-byte header. |
0x10 | surfaceID | SURF ID for SIMP, PLAT, UI, EGEN, and possibly others. |
0x14 | ang | A (Yaw, Pitch, Roll) rotation vector (in radians). |
0x20 | pos | A (X, Y, Z) position vector. |
0x2C | scale | A (X, Y, Z) scale vector. |
0x38 | redMult | Red color multiplier (0 to 1). |
0x3C | greenMult | Green color multiplier (0 to 1). |
0x40 | blueMult | Blue color multiplier (0 to 1). |
0x44 | seeThru | Alpha color multiplier (0 to 1). |
0x48 | seeThruSpeed | Usually 255.0 in all types. |
0x4C | modelInfoID | MODL/MINF ID for BOUL, BUTN, DSTR, EGEN, HANG, PEND, PLAT, PKUP, PLYR, SIMP, UI and VIL |
0x50 | animListID | ALST/ANIM ID for SIMP, PLAT, DSTR, and possibly others. SND ID for UI. |
List of asset types
The following is a list of all asset types found across all 5 games. Columns 1 through 5 represent the games ordered by their release dates, and specify which asset types are used in each game.
- Scooby-Doo! Night of 100 Frights
- SpongeBob SquarePants: Battle for Bikini Bottom
- The SpongeBob SquarePants Movie
- The Incredibles
- The Incredibles: Rise of the Underminer
Asset | Description | Type | Base Type | 1 | 2 | 3 | 4 | 5 | Notes |
---|---|---|---|---|---|---|---|---|---|
ALST | Animation list | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
ANIM | Animation | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
ATBL | Animation Table | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
ATKT | Attack Table | Binary | - | ✔ | |||||
BINK | Bink Video? | Binary | - | ✔ | ✔ | ||||
BOUL | Boulder | Entity | 0x2F | ✔ | ✔ | ✔ | ✔ | ||
BSP | Level Model | RenderWare | - | ✔ | |||||
BUTN | Button | Entity | 0x18 | ✔ | ✔ | ✔ | ✔ | ||
CAM | Camera | Base | 0x07 | ✔ | ✔ | ✔ | ✔ | ✔ | |
CCRV | Camera Curve | Base | 0x8D | ✔ | |||||
CNTR | Counter | Base | 0x16 | ✔ | ✔ | ✔ | ✔ | ✔ | |
COLL | Collision Table | Binary | - | ✔ | ✔ | ✔ | ✔ | ||
COND | Conditional | Base | 0x1F | ✔ | ✔ | ✔ | ✔ | ✔ | |
CRDT | Credits | Binary | - | ✔ | ✔ | ✔ | ✔ | ||
CSN | Cutscene | Binary | - | ✔ | ✔ | ✔ | |||
CSNM | Cutscene Mgr | Base | 0x28 | ✔ | ✔ | ✔ | ✔ | ||
CSSS | Cutscene Streaming Sound? | Binary | - | ✔ | ✔ | ||||
CTOC | Cutscene TOC | Binary | - | ✔ | ✔ | ✔ | ✔ | ||
DEST | Destructible? | Binary | - | ✔ | ✔ | ✔ | |||
DPAT | Dispatcher | Base | 0x1E | ✔ | ✔ | ✔ | ✔ | ✔ | |
DSCO | Disco Floor | Base | 0x00 | ✔ | ✔ | ||||
DSTR | Destructible Object | Entity | 0x1B | ✔ | ✔ | ||||
DTRK | Base | 0xCD | ✔ | ||||||
DUPC | Base | 0x42 | ✔ | ||||||
DYNA | Dynamic Type | Base | 0x00 | ✔ | ✔ | ✔ | ✔ | ||
EGEN | Electric Arc Generator | Entity | 0x29 | ✔ | ✔ | ✔ | |||
ENV | Environment | Base | 0x05 | ✔ | ✔ | ✔ | ✔ | ✔ | |
FLY | Flythrough | Binary | - | ✔ | ✔ | ||||
FOG | Fog | Base | 0x24 | ✔ | ✔ | ✔ | ✔ | ✔ | |
GRSM | Grass Mesh | Base | 0xCD | ✔ | |||||
GRUP | Group | Base | 0x11 | ✔ | ✔ | ✔ | ✔ | ✔ | |
GUST | Gust | Base | 0x1C | ✔ | |||||
HANG | Hangable | Entity | 0x17 | ✔ | ✔ | ||||
JAW | Jaw Data | Binary | - | ✔ | ✔ | ✔ | |||
JSP | Level Model | RenderWare | - | ✔ | ✔ | ✔ | ✔ | ||
LITE | Light | Base | 0x25 | ✔ | |||||
LKIT | LightKit | Binary | - | ✔ | ✔ | ✔ | ✔ | ||
LOBM | LobMaster | Base | 0x23 | ✔ | |||||
LODT | LOD Table | Binary | - | ✔ | ✔ | ✔ | ✔ | ||
MAPR | Material Map | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
MINF | Model Info | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
MODL | RenderWare DFF | RenderWare | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
MPHT | Morph Target? | Binary | - | ✔ | |||||
MRKR | Marker | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
MVPT | Move Point | Base | 0x0D | ✔ | ✔ | ✔ | ✔ | ✔ | |
NGMS | NavMesh | Base | 0x9A 0xCD |
✔ | ✔ | Base Type notes: 0x9A is only used in Rise of the Underminer. 0xCD is only used in The Incredibles. | |||
NPC | NPC | Entity | 0x02 | ✔ | |||||
NPCS | NPC Settings | Binary | - | ✔ | ✔ | ||||
ONEL | One-Liners | Binary | - | ✔ | |||||
PARE | Particle Emitter | Base | 0x26 | ✔ | ✔ | ✔ | ✔ | ||
PARP | Particle Emitter Property | Base | 0x2E | ✔ | ✔ | ✔ | |||
PARS | Particle System | Base | 0x27 | ✔ | ✔ | ✔ | ✔ | ||
PEND | Pendulum | Entity | 0x12 | ✔ | |||||
PGRS | Prog(?) Script | Base | 0x75 | ✔ | ✔ | ||||
PICK | Pickup Table | Binary | - | ✔ | ✔ | ✔ | ✔ | ||
PIPT | Pipe Info Table | Binary | - | ✔ | ✔ | ✔ | ✔ | ||
PKUP | Pickup | Entity | 0x04 | ✔ | ✔ | ✔ | |||
PLAT | Platform | Entity | 0x06 | ✔ | ✔ | ✔ | ✔ | ✔ | |
PLYR | Player | Entity | 0x03 | ✔ | ✔ | ✔ | ✔ | ✔ | |
PORT | Portal | Base | 0x10 | ✔ | ✔ | ✔ | ✔ | ✔ | |
PRJT | Projectile | Base | 0x22 | ✔ | |||||
RANM | Reactive Animation List | Base | 0x00 | ✔ | ✔ | ||||
RAW | Raw Image | Binary | - | ✔ | ✔ | ✔ | |||
RWTX | Texture Dictionary | RenderWare | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
SCRP | Script | Base | 0x2A | ✔ | ✔ | ✔ | |||
SDFX | Sound FX | Base | 0x4B | ✔ | ✔ | ✔ | |||
SFX | Sound FX | Base | 0x13 | ✔ | ✔ | ||||
SGRP | Sound Group | Base | 0x4A | ✔ | ✔ | ✔ | |||
SHDW | Simple Shadow Table | Binary | - | ✔ | |||||
SHRP | Shrapnel | Binary | - | ✔ | ✔ | ✔ | ✔ | ||
SIMP | Simple Object | Entity | 0x0B | ✔ | ✔ | ✔ | ✔ | ✔ | |
SLID | Slide Property | Base | 0x46 | ✔ | |||||
SND | Sound | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
SNDI | Sound Info | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
SNDS | Streaming Sound | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
SPLN | Spline | Base | 0x49 | ✔ | ✔ | ✔ | |||
SPLP | Spline Path | Binary | - | ✔ | |||||
SSET | Scene Settings | Base | 0x54 | ✔ | |||||
SUBT | Subtitles | Base | 0x00 | ✔ | ✔ | ||||
SURF | Surface | Base | 0x1A | ✔ | ✔ | ✔ | ✔ | ✔ | |
TEXS | Binary | - | ✔ | ✔ | ✔ | ||||
TEXT | Text | Binary | - | ✔ | ✔ | ✔ | ✔ | ✔ | |
TIMR | Timer | Base | 0x0E | ✔ | ✔ | ✔ | ✔ | ✔ | |
TPIK | Pickup Types | Base | 0x00 | ✔ | ✔ | ||||
TRIG | Trigger | Entity | 0x01 | ✔ | ✔ | ✔ | ✔ | ✔ | |
TRWT | Throwables | Base | 0x00 | ✔ | ✔ | ||||
UI | UI | Entity | 0x20 | ✔ | ✔ | ||||
UIFT | UI Font | Entity | 0x21 | ✔ | ✔ | ||||
UIM | UI Motion | Base | 0x53 | ✔ | ✔ | ✔ | |||
VIL | NPC | Entity | 0x2B | ✔ | ✔ | ||||
VILP | NPC Properties | Binary | - | ✔ | |||||
VOLU | Volume | Base | 0x1D | ✔ | ✔ | ||||
WIRE | Wireframe | Binary | - | ✔ | ✔ | ||||
ZLIN | Zip Line | Base | 0x40 | ✔ |