EvilEngine/MVPT
(Redirected from MVPT)
MVPT | |
---|---|
Move Point | |
Type | Base |
Base Type | 0x0D |
Games used | Night of 100 Frights Battle for Bikini Bottom |
Source code | xMovePoint.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