EvilEngine/TPIK
A pickup types is an asset which usually has only one instance in the entire game (in boot.hip) and defines information regarding DYNA pickups used in Incredibles and ROTU.
TPIK | |
---|---|
Pickup Types | |
Type | Base |
Base Type | 0x00 |
Games used | The Incredibles Ratatouille Prototype |
Format
Pickup types are base assets, so they start with their 0x8 byte header, then are followed by:
xTableAsset
class xTableAsset : public xBaseAsset
{
public:
unsigned int version;
unsigned int numRows;
};
Offset | Type | Variable | Description |
---|---|---|---|
0x08 | u32 | version | |
0x0C | u32 | numRows | Number of entries. |
After the header is the entries themselves. Each entry is 0x38 bytes long and has the following format:
TableEntry
class TableEntry
{
public:
unsigned int typeHash;
unsigned int modelID;
unsigned int pulseModelID;
float pulseTime;
float pulseAddScale;
float pulseMoveDown;
float red;
float green;
float blue;
unsigned int color;
union
{
unsigned int flyingSoundGroupID;
iSndGroupHandle flyingSoundGroupHandle;
};
union
{
unsigned int usedSoundGroupID;
iSndGroupHandle usedSoundGroupHandle;
};
union
{
unsigned int cantUseSoundGroupID;
iSndGroupHandle cantUseSoundGroupHandle;
};
unsigned char healthGain;
unsigned char powerGain;
unsigned char saveFlag;
signed char bInitialized;
};
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | AssetID | typeHash | Used by DYNA pickup assets to define pickup type. |
0x04 | AssetID | modelID | |
0x08 | AssetID | pulseModelID | |
0x0C | f32 | pulseTime | |
0x10 | f32 | pulseAddScale | |
0x14 | f32 | pulseMoveDown | |
0x18 | Vector3 | red/green/blue | |
0x24 | u32 | color | |
0x28 | AssetID | flyingSoundGroupID | SGRP |
0x2C | AssetID | usedSoundGroupID | SGRP |
0x30 | AssetID | cantUseSoundGroupID | SGRP |
0x34 | u8 | healthGain | |
0x35 | u8 | powerGain | |
0x36 | u8 | saveFlag | |
0x37 | s8 | bInitialized |