EvilEngine/TPIK: Difference between revisions

no edit summary
(Created page with "{{AssetInfobox |subtitle=Pickup Types |type=Binary |games=The Incredibles<br>Rise of the Underminer}} A '''pickup types''' is an asset which usually has only one instance...")
No edit summary
 
(7 intermediate revisions by 3 users not shown)
Line 1:
<onlyinclude>
{{AssetInfobox
{{#vardefine:typeid|TPIK}}<nowiki/>
|subtitle=Pickup Types
{{#vardefine:name|Pickup Types}}<nowiki/>
|type=[[Binary]]
{{#vardefine:type|[[Base]]}}<nowiki/>
|games=The Incredibles<br>Rise of the Underminer}}
{{#vardefine:basetype|0x00}}<nowiki/>
{{#vardefine:games|Incredibles ROTU RatProto}}<nowiki/>
{{#vardefine:sourcecode|}}<nowiki/>
{{#vardefine:image|}}<nowiki/>
</onlyinclude>
{{AutoAssetInfobox}}
 
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.
 
==Format==
ThePickup assettypes dataare startsbase assets, so they start with atheir 0x8 16-byte header, then are followed by:
 
===xTableAsset===
<source lang=cpp>
class xTableAsset : public xBaseAsset
{
public:
unsigned int version;
unsigned int numRows;
};
</source>
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || [[Asset ID]] || this asset
|-
| 0x040x08 || intu32 || unknown'''version''' ||
|-
| 0x0C || intu32 || amount'''numRows''' || Number of entries.
| 0x08 || int || unknown
|-
| 0x0C || int || amount of entries
|}
 
After the header is the entries themselves. Each entry is 0x38 bytes long and has the following format:
 
===TableEntry===
<source lang=cpp>
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;
};
</source>
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || [[Asset IDAssetID]] || '''pickupHashtypeHash'''. || Used by [[DYNA]] pickup assets to define pickup type.
|-
| 0x04 || [[AssetID]] ([[MODL|Model]])| '''modelID''' || pickup model
|-
| 0x08 || [[AssetID]] ([[MODL|Model]]) || ring'''pulseModelID''' model||
|-
| 0x0C || f32 || '''pulseTime''' ||
| 0x0C || [[Vector3]] || unknown. possibly pickup or ring model scale
|-
| 0x10 || f32 || '''pulseAddScale''' ||
| 0x18 || [[Vector3]] || ring color (R, G, B) (0-1)
|-
| 0x240x14 || nullf32 || '''pulseMoveDown''' || unknown
|-
| 0x280x18 || null[[Vector3]] || unknown'''red/green/blue''' ||
|-
| 0x24 || u32 || '''color''' ||
| 0x2C || [[AssetID]] ([[SGRP]]) || pickup sound
|-
| 0x300x28 || [[AssetID]] ([[SGRP]]) || pickup'''flyingSoundGroupID''' denied|| sound[[SGRP]]
|-
| 0x2C || [[AssetID]] || '''usedSoundGroupID''' || [[SGRP]]
| 0x34 || byte || unknown
|-
| 0x30 || [[AssetID]] || '''cantUseSoundGroupID''' || [[SGRP]]
| 0x35 || byte || unknown
|-
| 0x360x34 || byteu8 || unknown'''healthGain''' ||
|-
| 0x370x35 || byteu8 || unknown'''powerGain''' ||
|-
| 0x36 || u8|| '''saveFlag''' ||
|-
| 0x37 || s8 || '''bInitialized''' ||
|}
 
{{Assets}}
{{AutoGameNavs}}
 
[[Category:Asset]]