EvilEngine/NPC: Difference between revisions

Content added Content deleted
(Add new info)
No edit summary
Line 14: Line 14:
==Format==
==Format==
NPC are [[Entity|entity assets]], so they start with their 0x54 byte header (0x50 in Scooby), then are followed by:
NPC are [[Entity|entity assets]], so they start with their 0x54 byte header (0x50 in Scooby), then are followed by:

<source lang=cpp>
struct p2EntVillainAsset
{
float32 activateRadius;
float32 activateFOV;
float32 detectHeight;
float32 detectHeightOffset;
float32 speedMovement;
float32 speedPursue;
float32 speedTurn;
float32 pursuitRange;
uint16 durDazedState;
uint16 durGloatState;
uint16 durGummedState;
uint16 durBubbleState;
uint8 hitpoints;
uint8 behaviorState;
uint16 pad;
uint32 villFlags;
float32 lobSpeed;
float32 lobDurReload;
float32 lobRange;
uint32 lobSalvo;
uint32 projectileTypeID;
uint32 mvptBullseyeID;
float32 lobArcness;
float32 lobHeavy;
float32 extenderRange;
float32 extenderWidth;
float32 extenderDuration;
float32 extenderRate;
float32 extenderReloadTime;
uint32 movePointAssetID;
uint32 pathAssetID;
int32 minPlayerPowerups;
int32 minGameDifficulty;
};
</source>


{| class="wikitable"
{| class="wikitable"
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Variable !! Description
|-
|-
| 0x54 || float || '''activateRadius''' ||
| 0x50 || float || '''activateRadius''' ||
|-
|-
| 0x58 || float || '''activateFOV''' ||
| 0x54 || float || '''activateFOV''' ||
|-
|-
| 0x5C || float || '''detectHeight''' ||
| 0x58 || float || '''detectHeight''' ||
|-
|-
| 0x60 || float || '''detectHeightOffset''' ||
| 0x5C || float || '''detectHeightOffset''' ||
|-
|-
| 0x64 || float || '''speedMovement''' ||
| 0x60 || float || '''speedMovement''' ||
|-
|-
| 0x68 || float || '''speedPursue''' ||
| 0x64 || float || '''speedPursue''' ||
|-
|-
| 0x6C || float || '''speedTurn''' ||
| 0x68 || float || '''speedTurn''' ||
|-
|-
| 0x70 || float || '''pursuitRange''' ||
| 0x6C || float || '''pursuitRange''' ||
|-
|-
| 0x74 || short || '''durDazedState''' ||
| 0x70 || short || '''durDazedState''' ||
|-
|-
| 0x76 || short || '''durGloatState''' ||
| 0x72 || short || '''durGloatState''' ||
|-
|-
| 0x78 || short || '''durGummedState''' ||
| 0x74 || short || '''durGummedState''' ||
|-
|-
| 0x7A || short || '''durBubbleState''' ||
| 0x76 || short || '''durBubbleState''' ||
|-
|-
| 0x7C || byte || '''hitpoints''' ||
| 0x78 || char || '''hitpoints''' ||
|-
|-
| 0x7D || byte || '''behaviorState''' ||
| 0x79 || char || '''behaviorState''' ||
|-
|-
| 0x7E || short || '''pad''' || padding
| 0x7A || short || '''pad''' || padding
|-
|-
| 0x80 || int || '''villflags''' ||
| 0x7C || uint || '''villFlags''' ||
|-
|-
| 0x84 || int || '''lobSpeed''' ||
| 0x80 || float || '''lobSpeed''' ||
|-
|-
| 0x88 || int || '''lobDurReload''' ||
| 0x84 || float || '''lobDurReload''' ||
|-
|-
| 0x8C || float || '''lobRange''' ||
| 0x88 || float || '''lobRange''' ||
|-
|-
| 0x90 || int || '''lobSalvo''' ||
| 0x8C || uint || '''lobSalvo''' ||
|-
|-
| 0x94 || [[Asset ID]] || '''projectileTypeID''' || PRJT_AssetID
| 0x90 || [[AssetID]] || '''projectileTypeID''' || [[PRJT]]
|-
|-
| 0x98 || [[Asset ID]] || '''mvptBullseyeID''' || MovePoint_AssetID
| 0x94 || [[AssetID]] || '''mvptBullseyeID''' || [[MVPT]]
|-
|-
| 0x9C || float || '''lobArcness''' ||
| 0x98 || float || '''lobArcness''' ||
|-
|-
| 0xA0 || float || '''lobHeavy''' ||
| 0x9C || float || '''lobHeavy''' ||
|-
|-
| 0xA4 || float || '''extenderRange''' ||
| 0xA0 || float || '''extenderRange''' ||
|-
|-
| 0xA8 || float || '''extenderWidth''' ||
| 0xA4 || float || '''extenderWidth''' ||
|-
|-
| 0xAC || float || '''extenderDuration''' ||
| 0xA8 || float || '''extenderDuration''' ||
|-
|-
| 0xB0 || float || '''extenderRate''' ||
| 0xAC || float || '''extenderRate''' ||
|-
|-
| 0xB4 || float || '''extenderReloadTime''' ||
| 0xB0 || float || '''extenderReloadTime''' ||
|-
|-
| 0xB8 || [[Asset ID]] || [[MVPT]] || MovePoint_AssetID
| 0xB4 || [[AssetID]] || '''movePointAssetID''' || [[MVPT]]
|-
|-
| 0xBC || [[Asset ID]] || '''pathAssetID''' ||
| 0xB8 || [[AssetID]] || '''pathAssetID''' ||
|-
|-
| 0xC0 || int || '''minPlayerPowerups''' ||
| 0xBC || int || '''minPlayerPowerups''' ||
|-
|-
| 0xC4 || int || '''minGameDifficulty''' ||
| 0xC0 || int || '''minGameDifficulty''' ||
|-
|-
! colspan="4" | Events
! colspan="4" | Events
|-
|-
| 0xC8 || Event[numberOfEvents] || '''[[Events]]''' ||
| 0xC4 || Event[numberOfEvents] || '''[[Events]]''' ||
|}
|}