EvilEngine/DEST: Difference between revisions

no edit summary
(Created page with format)
 
No edit summary
 
(9 intermediate revisions by 4 users not shown)
Line 1:
<onlyinclude>
{{AssetInfobox
{{#vardefine:typeid|DEST}}<nowiki/>
|subtitle=Destructible
{{#vardefine:name|Destructible Asset}}<nowiki/>
|type=[[Binary]]
{{#vardefine:type|[[Binary]]}}<nowiki/>
|games=The SpongeBob SquarePants Movie<br>The Incredibles<br>Rise of the Underminer}}
{{#vardefine:basetype|}}<nowiki/>
{{#vardefine:games|TSSM Incredibles ROTU RatProto}}<nowiki/>
{{#vardefine:sourcecode|}}<nowiki/>
{{#vardefine:image|}}<nowiki/>
</onlyinclude>
{{AutoAssetInfobox}}
 
This asset defines an entry for a destructible asset.
In order for a destructible asset to function it must have ".dff_destruct" at the end of its asset name. Example: barrel.dff_destruct
 
==Format==
This asset defines an entry for a destructible object.
 
The SpongeBob SquarePants Movie and The Incredibles
 
===xDestructibleAsset===
 
<source lang=cpp>
class xDestructibleAsset
{
public:
unsigned int id;
unsigned int nstates;
unsigned int hit_points
unsigned int hit_filter;
unsigned int launch_flag;
unsigned int behaviour;
unsigned int flags;
unsigned int soundgroupidleID;
float respawn;
unsigned char target_priority;
xDestructibleAssetState* states;
};
</source>
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || [[AssetID]] || '''id''' || [[MINF]]
|-
| 0x04 || u32 || '''nstates''' || Number of states
|-
| 0x08 || u32 || '''hit_points''' || Always 1 in TSSM
|-
| 0x0C || u32 || '''hit_filter''' || Always 2 in TSSM
|-
| 0x10 || u32 || '''launch_flag''' ||
|-
| 0x14 || u32 || '''behaviour''' || Always 11 in TSSM
|-
| 0x18 || u32 || '''flags''' ||
|-
| 0x1C || [[AssetID]] || '''soundgroupidleID''' || [[SGRP]]
|-
| 0x20 || f32 || '''respawn''' ||
|-
| 0x24 || u8 || '''target_priority''' || Always 1 in TSSM
|-
| 0x25 || u8[3] || null || padding
|}
 
===xDestructibleAssetState===
 
<source lang=cpp>
class xDestructibleAssetState
{
public:
unsigned int percent;
unsigned int modelID;
unsigned int shrapnelID;
unsigned int shrapnelhitID;
unsigned int soundgroupidleID;
unsigned int soundgroupfxID;
unsigned int soundgrouphitID;
unsigned int soundgroupfxIDswitch;
unsigned int soundgrouphitIDswitch;
unsigned int rumbleIDhit;
unsigned int rumbleIDswitch;
unsigned int fx_flags;
xDestructibleAssetAttachedAnimList* animlist;
};
</source>
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || u32 || '''percent''' ||
|-
| 0x04 || [[AssetID]] || '''modelID''' ||
|-
| 0x08 || [[AssetID]] || '''shrapnelID''' || [[SHRP]]
|-
| 0x0C || [[AssetID]] || '''shrapnelhitID''' || [[SHRP]]
|-
| 0x10 || [[AssetID]] || '''soundgroupidleID''' || [[SGRP]]
|-
| 0x14 || [[AssetID]] || '''soundgroupfxID''' || [[SGRP]]
|-
| 0x18 || [[AssetID]] || '''soundgrouphitID''' || [[SGRP]]
|-
| 0x1C || [[AssetID]] || '''soundgroupfxIDswitch''' || [[SGRP]]
|-
| 0x20 || [[AssetID]] || '''soundgrouphitIDswitch''' || [[SGRP]]
|-
| 0x24 || [[AssetID]] || '''rumbleIDhit''' || {{SlashTrick|DYNA/effect:Rumble}}
|-
| 0x28 || [[AssetID]] || '''rumbleIDswitch''' || {{SlashTrick|DYNA/effect:Rumble}}
|-
| 0x2C || u32 || '''fx_flags''' ||
|}
 
===xDestructibleAssetAttachedAnimList===
 
<source lang=cpp>
class xDestructibleAssetAttachedAnimList
{
public:
unsigned int nanimations;
unsigned int* animationIDs;
};
</source>
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || u32 || '''nanimations''' || Number of animations
|-
| 0x04 || [[AssetID]] || '''animationIDs''' || [[ANIM]]
|}
 
==Format==
Rise of the Underminer and Ratatouille Prototype
===xDestructibleAsset===
 
<source lang=cpp>
struct xDestructibleAsset
{
unsigned int id;
unsigned int nstates;
unsigned int hit_points;
unsigned int hit_filter;
unsigned int hit_filter_excluded;
unsigned int healthPoints;
unsigned int expPoints;
float healthChance;
float expChance;
unsigned int launch_flag;
unsigned int behaviour;
unsigned int flags;
unsigned int soundgroupidleID;
float respawn;
unsigned char target_priority;
xDestructibleAssetState* states;
};
</source>
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || int[[AssetID]] || '''minfIDid''' || MINF_AssetID[[MINF]]
|-
| 0x04 || intu32 || '''nstates''' || Number of States. Always 1 in TSSMstates
|-
| 0x08 || intu32 || '''hit_points''' || Always 1 in TSSM
|-
| 0x0C || intu32 || '''hit_filter''' || Always 2 in TSSM
|-
| 0x10 || intu32 || '''launchFlaghit_filter_excluded''' ||
|-
| 0x14 || intu32 || '''behaviourhealthPoints''' || Always 11 in TSSM
|-
| 0x18 || intu32 || '''flagsexpPoints''' ||
|-
| 0x1C || intf32 || '''soundgroupidleIDhealthChance''' || SoundGroup used when idling
|-
| 0x20 || floatf32 || '''respawnexpChance''' ||
|-
| 0x24 || charu32 || '''target_prioritylaunch_flag''' || Always 1 in TSSM
|-
| 0x250x28 || charu32 || null'''behaviour''' || Always 0
|-
| 0x260x2C || charu32 || null'''flags''' || Always 0
|-
| 0x270x30 || char[[AssetID]] || null'''soundgroupidleID''' || Always 0[[SGRP]]
|-
| 0x280x34 || intf32 || '''percentrespawn''' || Always 1 in TSSM
|-
| 0x2C0x38 || [[AssetID]]u8 || '''modelIDtarget_priority''' || Model_AssetID
|-
| 0x300x39 || u8[[AssetID]3] || '''shrapnelID'''null || Shrapnel used when destroyedpadding
|}
 
===xDestructibleAssetState===
 
<source lang=cpp>
struct xDestructibleAssetState
{
unsigned int percent;
unsigned int modelID;
unsigned int shrapnelID;
unsigned int shrapnelhitID;
unsigned int soundgroupidleID;
unsigned int soundgroupfxID;
unsigned int soundgrouphitID;
unsigned int soundgroupfxIDswitch;
unsigned int soundgrouphitIDswitch;
unsigned int rumbleIDhit;
unsigned int rumbleIDswitch;
unsigned int fx_flags;
xDestructibleAssetAttachedAnimList* animlist;
};
</source>
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x340x00 || [[AssetID]]u32 || '''shrapnelhitIDpercent''' || Shrapnel used when hit
|-
| 0x380x04 || [[AssetID]] || '''soundgroupidleIDmodelID''' || SoundGroup used when idling
|-
| 0x3C0x08 || [[AssetID]] || '''soundgroupfxIDshrapnelID''' || [[SHRP]]
|-
| 0x400x0C || [[AssetID]] || '''soundgrouphitIDshrapnelhitID''' || SoundGroup used when hit[[SHRP]]
|-
| 0x440x10 || [[AssetID]] || '''soundgroupfxIDswitchsoundgroupidleID''' || [[SGRP]]
|-
| 0x480x14 || [[AssetID]] || '''soundgrouphitIDswitchsoundgroupfxID''' || [[SGRP]]
|-
| 0x4C0x18 || DynaID[[AssetID]] || '''rumbleIDhitsoundgrouphitID''' || Dyna Effect Rumble[[SGRP]]
|-
| 0x500x1C || DynaID[[AssetID]] || '''rumbleIDswitchsoundgroupfxIDswitch''' || Dyna Effect Rumble[[SGRP]]
|-
| 0x540x20 || int[[AssetID]] || '''fx_flagssoundgrouphitIDswitch''' || sfx flags[[SGRP]]
|-
| 0x24 || [[AssetID]] || '''rumbleIDhit''' || {{SlashTrick|DYNA/effect:Rumble}}
|-
| 0x28 || [[AssetID]] || '''rumbleIDswitch''' || {{SlashTrick|DYNA/effect:Rumble}}
|-
| 0x2C || u32 || '''fx_flags''' ||
|}
 
===xDestructibleAssetAttachedAnimList===
 
<source lang=cpp>
struct xDestructibleAssetAttachedAnimList
{
unsigned int nanimations;
unsigned int* animationIDs;
};
</source>
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x580x00 || intu32 || '''nanimations''' || SetNumber toof 1 enables animationanimations
|-
| 0x5C0x04 || [[AssetID]] || '''animationIDanimationIDs''' || Usually 0xFDFDFDFD in TSSM: 31, 32 and 63 in The Incredibles[[ANIM]]
|}
 
{{Assets}}
{{AutoGameNavs}}
 
[[Category:Asset]]