EvilEngine/MVPT

From Heavy Iron Modding
(Redirected from MVPT)

MVPT
Move Point
TypeBase
Base Type0x0D
Games usedNight of 100 Frights

Battle for Bikini Bottom
The SpongeBob SquarePants Movie
The Incredibles
Rise of the Underminer

Ratatouille Prototype
Source codexMovePoint.h

This asset defines move points. Enemies usually have a few MVPT to move along. Platforms and other objects also refer to this asset.

Format

MVPT are base assets, so they start with their 0x8 byte header, then are followed by:

Offset Type Variable Description
0x8 Vector3 pos Position
0x14 ushort wt usually 0x2710
0x16 char on Type: 0x00 for arena (can see you), 0x01 for zone
0x17 char bezIndex usually 0x00
0x18 char flg_props
0x19 char pad padding
0x1A ushort numPoints Amount of children/siblings
0x1C float delay Movement Angle - will rotate around the point this amount, -1 means disabled.
0x20 float zoneRadius will circle around the point in this distance, -1 means disabled. Not present in Scooby
0x24 float arenaRadius will be able to see you from this radius (as in a sphere trigger), -1 means disabled. Not present in Scooby
0x28 AssetID[numPoints] unknown Asset IDs of sibling MVPTs
Events
- Event[numberOfEvents] Events

Behavior

The way move points will work depends a lot on which object is using it (PLAT or VIL or even others), but generally:

  • If the on value is 0x01, the point is a zone.
    • This means objects will start at, or move toward this point.
    • For enemies, if the zone radius is different than -1, the enemy will circle around the point in the distance set by the zoneRadius value.
    • After reaching this point for the first time, if there are no siblings, the object will just stop.
    • If there are one or more siblings, it will then proceed to the first point in the sibling list the first time; the second point the second time, and so on, looping back to the first one after the last one.
    • One of the siblings might be an arena type MVPT so the enemy is able to detect the player from it.
  • If the on value is 0x00, the point is an arena.
    • This point will not define the area an enemy will move inside; the arenaRadius property defines the area in which the enemy can detect the player, much like a sphere trigger. This MVPT will probably not have any siblings.
  • If both the zoneRadius and arenaRadius properties are different from -1, the point will be able to work as both a zone and arena. The enemy will circle around the zoneRadius value and detect the player by the arenaRadius value.

Events

  • Arrive