EvilEngine/NPC: Difference between revisions

Add new info
No edit summary
(Add new info)
Line 14:
==Format==
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"
! Offset !! Type !! Variable !! Description
|-
| 0x54 || float || unknown'''activateRadius''' ||
|-
| 0x58 || float || unknown'''activateFOV''' ||
|-
| 0x5C || float || unknown'''detectHeight''' ||
|-
| 0x60 || float || unknown'''detectHeightOffset''' ||
|-
| 0x64 || float || unknown'''speedMovement''' ||
|-
| 0x68 || float || unknown'''speedPursue''' ||
|-
| 0x6C || float || unknown'''speedTurn''' ||
|-
| 0x70 || float || unknown'''pursuitRange''' ||
|-
| 0x74 || short || unknown'''durDazedState''' ||
|-
| 0x76 || short || unknown'''durGloatState''' ||
|-
| 0x78 || short || unknown'''durGummedState''' ||
|-
| 0x7A || short || unknown'''durBubbleState''' ||
|-
| 0x7C || byte || unknown'''hitpoints''' ||
|-
| 0x7D || byte || unknown'''behaviorState''' ||
|-
| 0x7E || byteshort || unknown'''pad''' || padding
|-
| 0x7F0x80 || byteint || unknown'''villflags''' ||
|-
| 0x800x84 || byteint || unknown'''lobSpeed''' ||
|-
| 0x810x88 || byteint || unknown'''lobDurReload''' ||
|-
| 0x820x8C || bytefloat || unknown'''lobRange''' ||
|-
| 0x830x90 || byteint || unknown'''lobSalvo''' ||
|-
| 0x840x94 || float[[Asset ID]] || unknown'''projectileTypeID''' || PRJT_AssetID
|-
| 0x98 || [[Asset ID]] || '''mvptBullseyeID''' || MovePoint_AssetID
| 0x88 || float || unknown ||
|-
| 0x8C0x9C || float || unknown'''lobArcness''' ||
|-
| 0x900xA0 || intfloat || unknown'''lobHeavy''' ||
|-
| 0x940xA4 || intfloat || unknown'''extenderRange''' ||
|-
| 0x980xA8 || intfloat || unknown'''extenderWidth''' ||
|-
| 0x9C0xAC || float || unknown'''extenderDuration''' ||
|-
| 0xA00xB0 || float || unknown'''extenderRate''' ||
|-
| 0xA40xB4 || float || unknown'''extenderReloadTime''' ||
|-
| 0xA80xB8 || float[[Asset ID]] || unknown[[MVPT]] || MovePoint_AssetID
|-
| 0xAC0xBC || float[[Asset ID]] || unknown'''pathAssetID''' ||
|-
| 0xB00xC0 || floatint || unknown'''minPlayerPowerups''' ||
|-
| 0xB40xC4 || floatint || unknown'''minGameDifficulty''' ||
|-
| 0xB8 || [[Asset ID]] || [[MVPT]] ||
|-
| 0xBC || byte[4] || unknown || null
|-
| 0xC0 || int || unknown || null
|-
| 0xC4 || int || unknown || null
|-
! colspan="4" | Events