EvilEngine/DEST: Difference between revisions
no edit summary
No edit summary |
No edit summary |
||
Line 1:
<onlyinclude>
{{#vardefine:typeid|DEST}}<nowiki/>
{{#vardefine:name|Destructible Asset}}<nowiki/>
{{#vardefine:type|[[Binary]]}}<nowiki/>
{{#vardefine:basetype|}}<nowiki/>
Line 11:
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==
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"
Line 21 ⟶ 42:
| 0x00 || [[AssetID]] || '''id''' || [[MINF]]
|-
| 0x04 ||
|-
| 0x08 ||
|-
| 0x0C ||
|-
| 0x10 ||
|-
| 0x14 ||
|-
| 0x18 ||
|-
| 0x1C || [[AssetID]] || '''soundgroupidleID''' ||
|-
| 0x20 ||
|-
| 0x24 ||
|-
| 0x25 ||
|}
===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 ||
|-
| 0x04 || [[AssetID]] || '''modelID''' ||
|-
| 0x08 || [[AssetID]] || '''shrapnelID''' ||
|-
| 0x0C || [[AssetID]] || '''shrapnelhitID''' ||
|-
| 0x10 || [[AssetID]] || '''soundgroupidleID''' ||
|-
| 0x14 || [[AssetID]] || '''soundgroupfxID''' || [[SGRP]]
|-
| 0x18 || [[AssetID]] || '''soundgrouphitID''' ||
|-
| 0x1C || [[AssetID]] || '''soundgroupfxIDswitch''' || [[SGRP]]
|-
| 0x20 || [[AssetID]] || '''soundgrouphitIDswitch''' || [[SGRP]]
|-
| 0x24 || [[AssetID]] || '''rumbleIDhit''' || {{SlashTrick|DYNA/effect:Rumble}}
Line 71 ⟶ 110:
| 0x28 || [[AssetID]] || '''rumbleIDswitch''' || {{SlashTrick|DYNA/effect:Rumble}}
|-
| 0x2C ||
|}
===xDestructibleAssetAttachedAnimList===
<source lang=cpp>
class xDestructibleAssetAttachedAnimList
{
public:
unsigned int nanimations;
unsigned int* animationIDs;
};
</source>
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 ||
|-
| 0x04 || [[AssetID]] || '''animationIDs''' ||
|}
Line 89 ⟶ 135:
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"
Line 95 ⟶ 163:
| 0x00 || [[AssetID]] || '''id''' || [[MINF]]
|-
| 0x04 ||
|-
| 0x08 ||
|-
| 0x0C ||
|-
| 0x10 ||
|-
| 0x14 ||
|-
| 0x18 ||
|-
| 0x1C ||
|-
| 0x20 ||
|-
| 0x24 ||
|-
| 0x28 ||
|-
| 0x2C ||
|-
| 0x30 || [[AssetID]] || '''soundgroupidleID''' ||
|-
| 0x34 ||
|-
| 0x38 ||
|-
| 0x39 ||
|}
===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
|-
| 0x00 ||
|-
| 0x04 || [[AssetID]] || '''modelID''' ||
|-
| 0x08 || [[AssetID]] || '''shrapnelID''' ||
|-
| 0x0C || [[AssetID]] || '''shrapnelhitID''' ||
|-
| 0x10 || [[AssetID]] || '''soundgroupidleID''' ||
|-
| 0x14 || [[AssetID]] || '''soundgroupfxID''' || [[SGRP]]
|-
| 0x18 || [[AssetID]] || '''soundgrouphitID''' ||
|-
| 0x1C || [[AssetID]] || '''soundgroupfxIDswitch''' || [[SGRP]]
|-
| 0x20 || [[AssetID]] || '''soundgrouphitIDswitch''' || [[SGRP]]
|-
| 0x24 || [[AssetID]] || '''rumbleIDhit''' || {{SlashTrick|DYNA/effect:Rumble}}
Line 155 ⟶ 240:
| 0x28 || [[AssetID]] || '''rumbleIDswitch''' || {{SlashTrick|DYNA/effect:Rumble}}
|-
| 0x2C ||
|}
===xDestructibleAssetAttachedAnimList===
<source lang=cpp>
struct xDestructibleAssetAttachedAnimList
{
unsigned int nanimations;
unsigned int* animationIDs;
};
</source>
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 ||
|-
| 0x04 || [[AssetID]] || '''animationIDs''' ||
|}
|