GoodEngine/Assets: Difference between revisions

From Heavy Iron Modding
Content added Content deleted
No edit summary
No edit summary
Line 1: Line 1:
==Classes of Assets==
==Classes of Assets==
===Base assets===
Base assets start with a 0x10 byte header, defined by the <code>xBaseAsset</code> struct:
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || long || '''id''' ||
|-
| 0x08 || uint || '''baseType''' ||
|-
| 0x0C || short || '''linkCount''' || Leftover from EvilEngine, unused in GoodEngine.
|-
| 0x0E || short || '''baseFlags''' ||
|}

===Entity assets===
Entity assets (also referred to as placeable assets) are base assets which have a 3D placement in the world. They start with a 0xF8 byte header, which is defined by the <code>xEntAsset</code> struct (which extends from <code>xBaseAsset</code>):
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x10 || byte || '''flags''' ||
|-
| 0x11 || byte || '''subtype'''||
|-
| 0x12 || byte || '''pad''' ||
|-
| 0x13 || byte || '''Targettable''' ||
|-
| 0x14 || byte || '''Pad0''' ||
|-
| 0x15 || ? || '''moreFlags''' ||
|-
| 0x18 || [[AssetID]] || '''surfaceID''' ||
|-
| 0x20 || [[Vector3]] || '''Orientation''' ||
|-
| 0x2C || [[Vector3]] || '''Pos''' ||
|-
| 0x38 || [[Vector3]] || '''Scale''' ||
|-
! 0x50 || colspan="3" | [[#ModelInstanceAsset|modelInstance]]
|-
| 0x90 || [[AssetID]] || '''animListID''' ||
|-
! 0x98 || colspan="3" | PhysicsDataStruct
|-
| 0x98 || float || '''mass''' ||
|-
| 0x9C || float || '''friction''' ||
|-
| 0xA0 || float || '''elasticity''' ||
|-
| 0xA4 || float || '''linearDamping''' ||
|-
| 0xA8 || float || '''angularDamping''' ||
|-
| 0xAC || float || '''settleTimer''' ||
|-
| 0xB0 || byte || '''magnetic_Charge''' ||
|-
| 0xB1 || byte || '''pad1''' ||
|-
| 0xB2 || byte || '''pad2''' ||
|-
| 0xB3 || byte || '''pad3''' ||
|-
! 0xB4 || colspan="3" | '''SoundSourcesPhysics'''
|-
| 0xB4 || [[#SoundBankSource|SoundBankSource]] || '''SoundHit''' ||
|-
| 0xC0 || [[#SoundBankSource|SoundBankSource]] || '''SoundScrape''' ||
|-
| 0xCC || [[#SoundBankSource|SoundBankSource]] || '''SoundRoll''' ||
|-
! 0xD8 || colspan="3" | '''PhysicsData'''
|-
| 0xD8 || float || '''MinVelocity''' ||
|-
| 0xDC || float || '''MaxVelocity''' ||
|-
| 0xE0 || float || '''MinRun''' ||
|-
| 0xE4 || float || '''MaxRun''' ||
|-
| 0xE8 || float || '''MaxRise''' ||
|-
! colspan="4" |
|-
| 0xEC || uint || '''Pad1''' ||
|-
| 0xF0 || uint || '''Pad2''' ||
|-
| 0xF4 || uint || '''Pad3''' ||
|}

====SoundBankSource====
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || byte || '''streamed''' ||
|-
| 0x01 || byte || '''pad1''' || ''0x33''
|-
| 0x02 || byte || '''pad2''' || ''0x33''
|-
| 0x03 || byte || '''pad3''' || ''0x33''
|-
| 0x04 || int || '''sourceString''' ||
|-
| 0x08 || int || '''indices''' ||
|}

====ModelInstanceAsset====
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x00 || [[AssetID]] || '''modelPrototypeID''' ||
|-
| 0x08 || [[AssetID]] || '''lightKitID''' ||
|-
| 0x10 || uint || '''instanceParamCount''' ||
|-
| 0x14 || uint || '''renderCustomizerCount''' ||
|-
| 0x18 || uint || '''instanceParams''' ||
|-
| 0x1C || uint || '''renderCustomizers''' ||
|-
| 0x20 || short || '''shadowType''' ||
|-
| 0x22 || short || '''shadowFlags''' ||
|-
| 0x24 || float || '''shadowColorOverride''' ||
|-
| 0x28 || float || '''shadowMaxDepthOverride''' ||
|-
| 0x2C || float || '''shadowStartDepthOverride''' ||
|-
| 0x30 || float || '''shadowMinBlurOverride''' ||
|-
| 0x34 || float || '''shadowMaxBlurOverride''' ||
|-
| 0x38 || [[AssetID]] || '''parentID''' ||
|}


==List of asset types==
==List of asset types==

Revision as of 16:41, 19 September 2022

Classes of Assets

Base assets

Base assets start with a 0x10 byte header, defined by the xBaseAsset struct:

Offset Type Variable Description
0x00 long id
0x08 uint baseType
0x0C short linkCount Leftover from EvilEngine, unused in GoodEngine.
0x0E short baseFlags

Entity assets

Entity assets (also referred to as placeable assets) are base assets which have a 3D placement in the world. They start with a 0xF8 byte header, which is defined by the xEntAsset struct (which extends from xBaseAsset):

Offset Type Variable Description
0x10 byte flags
0x11 byte subtype
0x12 byte pad
0x13 byte Targettable
0x14 byte Pad0
0x15 ? moreFlags
0x18 AssetID surfaceID
0x20 Vector3 Orientation
0x2C Vector3 Pos
0x38 Vector3 Scale
0x50 modelInstance
0x90 AssetID animListID
0x98 PhysicsDataStruct
0x98 float mass
0x9C float friction
0xA0 float elasticity
0xA4 float linearDamping
0xA8 float angularDamping
0xAC float settleTimer
0xB0 byte magnetic_Charge
0xB1 byte pad1
0xB2 byte pad2
0xB3 byte pad3
0xB4 SoundSourcesPhysics
0xB4 SoundBankSource SoundHit
0xC0 SoundBankSource SoundScrape
0xCC SoundBankSource SoundRoll
0xD8 PhysicsData
0xD8 float MinVelocity
0xDC float MaxVelocity
0xE0 float MinRun
0xE4 float MaxRun
0xE8 float MaxRise
0xEC uint Pad1
0xF0 uint Pad2
0xF4 uint Pad3

SoundBankSource

Offset Type Variable Description
0x00 byte streamed
0x01 byte pad1 0x33
0x02 byte pad2 0x33
0x03 byte pad3 0x33
0x04 int sourceString
0x08 int indices

ModelInstanceAsset

Offset Type Variable Description
0x00 AssetID modelPrototypeID
0x08 AssetID lightKitID
0x10 uint instanceParamCount
0x14 uint renderCustomizerCount
0x18 uint instanceParams
0x1C uint renderCustomizers
0x20 short shadowType
0x22 short shadowFlags
0x24 float shadowColorOverride
0x28 float shadowMaxDepthOverride
0x2C float shadowStartDepthOverride
0x30 float shadowMinBlurOverride
0x34 float shadowMaxBlurOverride
0x38 AssetID parentID

List of asset types

The following is a list of all asset types found across all 7 games as well as which asset types are present in each game, signified by a checkmark (✔).

Asset Type Asset TypeID Ratatouille Wall-E Up ToS UFC FGUY Hollywood Notes

Counter

Base 0xC72962FC