EvilEngine/NPC: Difference between revisions

From Heavy Iron Modding
Content added Content deleted
(Add new info)
m (Seil moved page NPC to EvilEngine/NPC)
 
(One intermediate revision by one other user not shown)
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]]''' ||
|}
|}



Latest revision as of 22:46, 15 September 2022

NPC
NPC
TypeEntity
Base Type0x02
Games usedNight of 100 Frights

This asset defines an entry for an NPC.

Format

NPC are entity assets, so they start with their 0x54 byte header (0x50 in Scooby), then are followed by:

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