EvilEngine/DEST: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
(8 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
<onlyinclude> |
<onlyinclude> |
||
{{#vardefine:typeid|DEST}}<nowiki/> |
{{#vardefine:typeid|DEST}}<nowiki/> |
||
{{#vardefine:name|Destructible}}<nowiki/> |
{{#vardefine:name|Destructible Asset}}<nowiki/> |
||
{{#vardefine:type|[[Binary]]}}<nowiki/> |
{{#vardefine:type|[[Binary]]}}<nowiki/> |
||
{{#vardefine:basetype|}}<nowiki/> |
{{#vardefine:basetype|}}<nowiki/> |
||
{{#vardefine:games|TSSM Incredibles ROTU}}<nowiki/> |
{{#vardefine:games|TSSM Incredibles ROTU RatProto}}<nowiki/> |
||
{{#vardefine:sourcecode|}}<nowiki/> |
{{#vardefine:sourcecode|}}<nowiki/> |
||
{{#vardefine:image|}}<nowiki/> |
{{#vardefine:image|}}<nowiki/> |
||
Line 10: | Line 10: | ||
{{AutoAssetInfobox}} |
{{AutoAssetInfobox}} |
||
This asset defines an entry for a destructible |
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== |
==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" |
{| class="wikitable" |
||
! Offset !! Type !! Variable !! Description |
! Offset !! Type !! Variable !! Description |
||
|- |
|- |
||
| 0x00 || |
| 0x00 || [[AssetID]] || '''id''' || [[MINF]] |
||
|- |
|- |
||
| 0x04 || |
| 0x04 || u32 || '''nstates''' || Number of states |
||
|- |
|- |
||
| 0x08 || |
| 0x08 || u32 || '''hit_points''' || Always 1 in TSSM |
||
|- |
|- |
||
| 0x0C || |
| 0x0C || u32 || '''hit_filter''' || Always 2 in TSSM |
||
|- |
|- |
||
| 0x10 || |
| 0x10 || u32 || '''launch_flag''' || |
||
|- |
|- |
||
| 0x14 || |
| 0x14 || u32 || '''behaviour''' || Always 11 in TSSM |
||
|- |
|- |
||
| 0x18 || |
| 0x18 || u32 || '''flags''' || |
||
|- |
|- |
||
| 0x1C || |
| 0x1C || [[AssetID]] || '''soundgroupidleID''' || [[SGRP]] |
||
|- |
|- |
||
| 0x20 || |
| 0x20 || f32 || '''respawn''' || |
||
|- |
|- |
||
| 0x24 || |
| 0x24 || u8 || '''target_priority''' || Always 1 in TSSM |
||
|- |
|- |
||
| 0x25 || |
| 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 || [[AssetID]] || '''id''' || [[MINF]] |
|||
|- |
|||
| 0x04 || u32 || '''nstates''' || Number of states |
|||
|- |
|||
| 0x08 || u32 || '''hit_points''' || |
|||
|- |
|||
| 0x0C || u32 || '''hit_filter''' || |
|||
|- |
|||
| 0x10 || u32 || '''hit_filter_excluded''' || |
|||
|- |
|||
| 0x14 || u32 || '''healthPoints''' || |
|||
|- |
|||
| 0x18 || u32 || '''expPoints''' || |
|||
|- |
|||
| 0x1C || f32 || '''healthChance''' || |
|||
|- |
|||
| 0x20 || f32 || '''expChance''' || |
|||
|- |
|||
| 0x24 || u32 || '''launch_flag''' || |
|||
|- |
|||
| 0x28 || u32 || '''behaviour''' || |
|||
|- |
|||
| 0x2C || u32 || '''flags''' || |
|||
|- |
|||
| 0x30 || [[AssetID]] || '''soundgroupidleID''' || [[SGRP]] |
|||
|- |
|||
| 0x34 || f32 || '''respawn''' || |
|||
|- |
|||
| 0x38 || u8 || '''target_priority''' || |
|||
|- |
|||
| 0x39 || u8[3] || null || padding |
|||
|} |
|||
===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 || 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> |
|||
struct xDestructibleAssetAttachedAnimList |
|||
{ |
|||
unsigned int nanimations; |
|||
unsigned int* animationIDs; |
|||
}; |
|||
</source> |
|||
{| class="wikitable" |
|||
! Offset !! Type !! Variable !! Description |
|||
|- |
|- |
||
| |
| 0x00 || u32 || '''nanimations''' || Number of animations |
||
|- |
|- |
||
| |
| 0x04 || [[AssetID]] || '''animationIDs''' || [[ANIM]] |
||
|} |
|} |
||
Latest revision as of 22:08, 8 October 2023
DEST | |
---|---|
Destructible Asset | |
Type | Binary |
Games used | The SpongeBob SquarePants Movie The Incredibles |
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
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;
};
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
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;
};
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 | effect:Rumble |
0x28 | AssetID | rumbleIDswitch | effect:Rumble |
0x2C | u32 | fx_flags |
xDestructibleAssetAttachedAnimList
class xDestructibleAssetAttachedAnimList
{
public:
unsigned int nanimations;
unsigned int* animationIDs;
};
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | u32 | nanimations | Number of animations |
0x04 | AssetID | animationIDs | ANIM |
Format
Rise of the Underminer and Ratatouille Prototype
xDestructibleAsset
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;
};
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | AssetID | id | MINF |
0x04 | u32 | nstates | Number of states |
0x08 | u32 | hit_points | |
0x0C | u32 | hit_filter | |
0x10 | u32 | hit_filter_excluded | |
0x14 | u32 | healthPoints | |
0x18 | u32 | expPoints | |
0x1C | f32 | healthChance | |
0x20 | f32 | expChance | |
0x24 | u32 | launch_flag | |
0x28 | u32 | behaviour | |
0x2C | u32 | flags | |
0x30 | AssetID | soundgroupidleID | SGRP |
0x34 | f32 | respawn | |
0x38 | u8 | target_priority | |
0x39 | u8[3] | null | padding |
xDestructibleAssetState
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;
};
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 | effect:Rumble |
0x28 | AssetID | rumbleIDswitch | effect:Rumble |
0x2C | u32 | fx_flags |
xDestructibleAssetAttachedAnimList
struct xDestructibleAssetAttachedAnimList
{
unsigned int nanimations;
unsigned int* animationIDs;
};
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | u32 | nanimations | Number of animations |
0x04 | AssetID | animationIDs | ANIM |