EvilEngine/PLAT

From Heavy Iron Modding

PLAT
Platform
TypeEntity
Base Type0x06
Games usedNight of 100 Frights

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

Ratatouille Prototype
Source codezPlatform.h

This asset defines an entry for a moving object.

Format: Night of 100 Frights

PLAT are entity assets, so they start with their 0x50 byte header, then are followed by:

Offset Type Variable Description
0x50 byte type This is always the same as the Type at 0x09 for every type except Platform, which can be one of the following subtypes:
  • 0 - Extend/Retract
  • 1 - Orbit
  • 2 - Spline
  • 3 - Move Point
0x51 byte pad null (Padding)
0x52 ushort flags
Extend/Retract only
0x54 int nodata null
0x58 byte[0x20] - null (Padding)
Orbit only
0x54 int nodata null
0x58 byte[0x20] - null (Padding)
Spline only
0x54 int nodata null
0x58 byte[0x20] - null (Padding)
Move Point only
0x54 int nodata null
0x58 byte[0x20] - null (Padding)
Mechanism only
0x54 int nodata null
0x58 byte[0x20] - null (Padding)
Pendulum only
0x54 int nodata null
0x58 byte[0x20] - null (Padding)
Conveyor Belt only
0x54 float speed
0x58 byte[0x20] - null (Padding)
Falling Platform only
0x54 float speed
0x58 AssetID bustModelID
0x5C byte[0x1C] - null (Padding)
FR only
0x54 float fspeed
0x58 float rspeed
0x5C float ret_delay
0x60 float post_ret_delay
0x64 byte[0x14] - null (Padding)
Breakaway Platform only
0x54 float ba_delay
0x58 AssetID bustModelID
0x5C float reset_delay
0x60 byte[0x18] - null (Padding)
Springboard only
0x54 float[3] jmph
0x60 AssetID[3] animID
0x6C Vector3 jmpdir
Teeter-Totter only
0x54 float itilt
0x58 float maxtilt
0x5C float invmass
0x60 byte[0x18] - null (Padding)
0x78 Motion -
Events
0xA8 Events[numberOfEvents] Events


Format: Battle For Bikini Bottom

PLAT are entity assets, so they start with their 0x54 byte header, then are followed by:

Offset Type Variable Description
0x54 byte type This is always the same as the Type at 0x09 for every type except Platform, which can be one of the following subtypes:
  • 0 - Extend/Retract
  • 1 - Orbit
  • 2 - Spline
  • 3 - Move Point
  • 13 - Fully Manipulable
0x55 byte pad Padding (always 0)
0x56 ushort flags
  • 1 - Shake - Shakes when player mounts/dismounts
  • 4 - Solid
Extend/Retract only
0x58 int nodata null
0x5C byte[0x34] - null (Padding)
Orbit only
0x58 int nodata null
0x5C byte[0x34] - null (Padding)
Spline only
0x58 int nodata null
0x5C byte[0x34] - null (Padding)
Move Point only
0x58 int nodata
0x5C byte[0x34] - null (Padding)
Mechanism only
0x58 int nodata null
0x5C byte[0x34] - null (Padding)
Pendulum only
0x58 int nodata null
0x5C byte[0x34] - null (Padding)
Conveyor Belt only
0x58 float speed The player slides along the platform's X axis at this speed (in units per second) when standing on top of it
0x5C byte[0x34] - null (Padding)
Falling Platform only
0x58 float speed
0x5C AssetID bustModelID Model ID
0x60 byte[0x30] - null (Padding)
FR only
0x58 float fspeed
0x5C float rspeed
0x60 float ret_delay
0x64 float post_ret_delay
0x68 byte[0x28] - null (Padding)
Breakaway Platform only
0x58 float ba_delay Time in seconds to fall down after player stands on it
0x5C AssetID bustModelID Model ID - Always 0 or 0xCE7F8131 (hash of "--Choose One--")
0x60 float reset_delay Time in seconds after falling down to reset back to normal position
0x64 uint breakflags
  • 1 - Allow Sneak - Won't break if player is sneaking
0x68 byte[0x28] - null (Padding)
Springboard only
0x58 float[3] jmph Jump height array, unknown why it's an array. The game seems to pick the highest of the 3 heights in this array
0x64 float jmpbounce Bounce height when using the Bubble Bounce (SpongeBob only)
0x68 AssetID[3] animID Bounce animations?
0x74 Vector3 jmpdir Bounce direction (unit vector)
0x80 uint springflags
  • 1 - Lock view (look down)
  • 2 - ?
  • 4 - Lock movement (doesn't let you move)
0x84 byte[0xC] - null (Padding)
Teeter-Totter only
0x58 float itilt Initial tilt, in radians
0x5C float maxtilt In radians
0x60 float invmass Determines tilt speed
0x64 byte[0x2C] - null (Padding)
Paddle only
0x58 int startOrient Array index of Orients to start at (zero-indexed). Range is 0 ... Orient Count - 1.
0x5C int countOrient Number of rotations the paddle can be in (up to 6).
0x60 float orientLoop Max rotation? (In degrees)
0x64 float[6] orient Array of yaw rotations (in degrees) for the paddle (up to 6).
0x7C uint paddleFlags
0x80 float rotateSpeed
0x84 float accelTime
0x88 float decelTime
0x8C float hubRadius collision radius?
Fully Manipulable only
0x58 int nothingyet null
0x5C byte[0x34] - null (Padding)
0x90 Motion -
Events
0xC0 Event[numberOfEvents] Events

Format: The Spongebob Squarepants Movie

PLAT are entity assets, so they start with their 0x50 byte header, then are followed by:

Offset Type Variable Description
0x50 byte type This is always the same as the Type at 0x09 for every type except Platform, which can be one of the following subtypes:
  • 0 - Extend/Retract
  • 1 - Orbit
  • 2 - Spline
  • 3 - Move Point
  • 13 - Fully Manipulable
0x51 byte pad null (Padding)
0x52 short flags Collision type
  • 0, 1, 2, 3, 8, 9 - Nonsolid
  • 4, 6 - Normal collision
  • 5, 7 - Bouncy collision
Extend/Retract only
0x54 int nodata
0x58 byte[0x34] - null (Padding)
Orbit only
0x54 int nodata
0x58 byte[0x34] - null (Padding)
Spline only
0x54 int nodata
0x58 byte[0x34] - null (Padding)
Move Point only
0x54 int nodata
0x58 byte[0x34] - null (Padding)
Mechanism only
0x54 int nodata
0x58 byte[0x34] - null (Padding)
Pendulum only
0x54 int nodata
0x58 byte[0x34] - null (Padding)
Conveyor Belt only
0x54 float speed
0x58 byte[0x34] - null (Padding)
Falling Platform only
0x54 float speed
0x58 AssetID bustModelID
0x5C byte[0x30] - null (Padding)
FR only
0x54 float fspeed
0x58 float rspeed
0x5C float ret_delay
0x60 float post_ret_delay
0x64 byte[0x28] - null (Padding)
Breakaway Platform only
0x54 float warningTime Time in seconds to fall down after player stands on it
0x58 float collapseIdleTime Time in seconds after falling down to reset back to normal position
0x5C uint breakflags
0x60 float collisionOffTime
0x64 byte[0x28] - null (Padding)
Springboard only
0x54 float[3] jmph Jump height array, unknown why it's an array. The game seems to pick the highest of the 3 heights in this array
0x60 float jmpbounce Bounce height when using the Bubble Bounce (SpongeBob only)
0x64 AssetID[3] animID Bounce animations?
0x70 Vector3 jmpdir Bounce direction (unit vector)
0x7C uint springflags
0x80 byte[0xC] - null (Padding)
Teeter-Totter only
0x54 float itilt Initial tilt, in radians
0x58 float maxtilt In radians
0x5C float invmass Determines tilt speed
0x60 byte[0x28] - null (Padding)
Paddle only
0x54 int startOrient Array index of Orients to start at (zero-indexed). Range is 0 ... Orient Count - 1.
0x58 int countOrient Number of rotations the paddle can be in (up to 6).
0x5C float orientLoop Max rotation? (In degrees)
0x60 float[6] orient Array of yaw rotations (in degrees) for the paddle (up to 6).
0x78 uint paddleFlags
0x7C float rotateSpeed
0x80 float accelTime
0x84 float decelTime
0x88 float hubRadius collision radius?
Fully Manipulable only
0x54 int nothingyet null
0x58 byte[0x34] - null (Padding)
0x8C Motion -
Events
0xC8 Event[numberOfEvents] Events

Types (0x09)

  • 0 - Platform
  • 4 - Mechanism
  • 5 - Pendulum
  • 6 - Conveyor Belt
  • 7 - Falling Platform
  • 8 - FR? (Forward/Return?)
  • 9 - Breakaway Platform
  • 10 - Springboard
  • 11 - Teeter-Totter
  • 12 - Paddle (Not present in Scooby)