EvilEngine/PLAT: Difference between revisions

no edit summary
m (Seil moved page PLAT to EvilEngine/PLAT)
No edit summary
 
Line 10:
{{AutoAssetInfobox}}
 
This asset usually defines an entry for a moving object.
 
==Format: Night of 100 Frights==
PLAT are [[EvilEngine/Assets#Entity Assets|entity assets]], so they start with their 0x50 byte header, then are followed by:
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x50 || byte || '''type''' || This is always the same as the [[#Types (0x09)|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''' ||
|-
! colspan="4" | Extend/Retract only
|-
| 0x54 || int || '''nodata''' || ''null''
|-
| 0x58 || byte[0x20] || - || ''null'' (Padding)
|-
! colspan="4" | Orbit only
|-
| 0x54 || int || '''nodata''' || ''null''
|-
| 0x58 || byte[0x20] || - || ''null'' (Padding)
|-
! colspan="4" | Spline only
|-
| 0x54 || int || '''nodata''' || ''null''
|-
| 0x58 || byte[0x20] || - || ''null'' (Padding)
|-
! colspan="4" | Move Point only
|-
| 0x54 || int || '''nodata''' || ''null''
|-
| 0x58 || byte[0x20] || - || ''null'' (Padding)
|-
! colspan="4" | Mechanism only
|-
| 0x54 || int || '''nodata''' || ''null''
|-
| 0x58 || byte[0x20] || - || ''null'' (Padding)
|-
! colspan="4" | Pendulum only
|-
| 0x54 || int || '''nodata''' || ''null''
|-
| 0x58 || byte[0x20] || - || ''null'' (Padding)
|-
! colspan="4" | Conveyor Belt only
|-
| 0x54 || float || '''speed''' ||
|-
| 0x58 || byte[0x20] || - || ''null'' (Padding)
|-
! colspan="4" | Falling Platform only
|-
| 0x54 || float || '''speed''' ||
|-
| 0x58 || [[AssetID]] || '''bustModelID''' ||
|-
| 0x5C || byte[0x1C] || - || ''null'' (Padding)
|-
! colspan="4" | FR only
|-
| 0x54 || float || '''fspeed''' ||
|-
| 0x58 || float || '''rspeed''' ||
|-
| 0x5C || float || '''ret_delay''' ||
|-
| 0x60 || float || '''post_ret_delay''' ||
|-
| 0x64 || byte[0x14] || - || ''null'' (Padding)
|-
! colspan="4" | Breakaway Platform only
|-
| 0x54 || float || '''ba_delay''' ||
|-
| 0x58 || [[AssetID]] || '''bustModelID''' ||
|-
| 0x5C || float || '''reset_delay''' ||
|-
| 0x60 || byte[0x18] || - || ''null'' (Padding)
|-
! colspan="4" | Springboard only
|-
| 0x54 || float[3] || '''jmph''' ||
|-
| 0x60 || [[AssetID]][3] || '''animID''' ||
|-
| 0x6C || [[Vector3]] || '''jmpdir''' ||
|-
! colspan="4" | Teeter-Totter only
|-
| 0x54 || float || '''itilt''' ||
|-
| 0x58 || float || '''maxtilt''' ||
|-
| 0x5C || float || '''invmass''' ||
|-
| 0x60 || byte[0x18] || - || ''null'' (Padding)
|-
! colspan="4" |
|-
| 0x78 || [[Motion]] || - ||
|-
! colspan="4" | Events
|-
| 0xA8 || Events[numberOfEvents] || [[EvilEngine/Events|'''Events''']] ||
|}
 
 
==Format: Battle For Bikini Bottom==
PLAT are [[EvilEngine/Assets#Entity Assets|entity assets]], so they start with their 0x54 byte header, then are followed by:
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x54 || byte || '''Typetype''' -|| This is always the same as the [[#Types (0x09)|Type at 0x09]] for every type except Platform, which can be one of the following subtypes:
* 0 - Extend/Retract
* 1 - Orbit
Line 25 ⟶ 140:
* 13 - Fully Manipulable
|-
| 0x55 || byte || '''pad''' || Padding (always 0)
|-
| 0x56 || shortushort || '''Flagsflags''' ||
*1 - Shake - Shakes when player mounts/dismounts
*4 - Solid
|-
! colspan="34" | PlatformExtend/Retract only
|-
| 0x58 || byte[0x38]int || null'''nodata''' (no|| data)''null''
|-
| 0x5C || byte[0x34] || - || ''null'' (Padding)
! colspan="3" | Mechanism only
|-
! colspan="4" | Orbit only
| 0x58 || byte[0x38] || null (no data)
|-
| 0x58 || int || '''nodata''' || ''null''
! colspan="3" | Pendulum only
|-
| 0x580x5C || byte[0x380x34] || - || ''null'' (no dataPadding)
|-
! colspan="34" | Conveyor BeltSpline only
|-
| 0x58 || int || '''nodata''' || ''null''
| 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)
|-
! colspan="34" | FallingMove PlatformPoint only
|-
| 0x58 || floatint || '''Speednodata''' ||
|-
| 0x5C || byte[[Asset ID]0x34] || '''Bust- [[MODL|Model]]| ID''null'' (Padding)
|-
! colspan="4" | Mechanism only
| 0x60 || byte[0x30] || null
|-
| 0x58 || int || '''nodata''' || ''null''
! colspan="3" | FR only
|-
| 0x580x5C || floatbyte[0x34] || - || '''fspeed'null'' (Padding)
|-
! colspan="4" | Pendulum only
| 0x5C || float || '''rspeed'''
|-
| 0x600x58 || floatint || '''ret_delaynodata''' || ''null''
|-
| 0x640x5C || floatbyte[0x34] || - || '''post_ret_delay'null'' (Padding)
|-
! colspan="4" | Conveyor Belt only
| 0x68 || byte[0x28] || null
|-
| 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
! colspan="3" | Breakaway Platform only
|-
| 0x5C || byte[0x34] || - || ''null'' (Padding)
| 0x58 || float || '''Breakaway Delay''' - Time in seconds to fall down after player stands on it
|-
! colspan="4" | Falling Platform only
| 0x5C || [[Asset ID]] || '''Bust [[MODL|Model]] ID''' - Always 0 or 0xCE7F8131 (hash of "--Choose One--")
|-
| 0x600x58 || float || '''Reset Delayspeed''' - Time in seconds after falling down to reset back to normal position||
|-
| 0x640x5C || unsigned int[[AssetID]] || '''FlagsbustModelID''' || [[EvilEngine/MODL|Model]] ID
|-
| 0x60 || byte[0x30] || - || ''null'' (Padding)
|-
! colspan="4" | FR only
|-
| 0x58 || float || '''fspeed''' ||
|-
| 0x5C || float || '''rspeed''' ||
|-
| 0x60 || float || '''ret_delay''' ||
|-
| 0x64 || float || '''post_ret_delay''' ||
|-
| 0x68 || byte[0x28] || - || ''null'' (Padding)
|-
! colspan="4" | Breakaway Platform only
|-
| 0x58 || float || '''ba_delay''' || Time in seconds to fall down after player stands on it
|-
| 0x5C || [[AssetID]] || '''bustModelID''' || [[EvilEngine/MODL|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)
|-
! colspan="34" | Springboard only
|-
| 0x58 || float[3] || '''Heightsjmph''' -|| BounceJump height array, unknown why it's an array. The game seems to pick the highest of the 3 heights in this array
|-
| 0x64 || float || '''Height (Bubble Bounce)jmpbounce''' -|| Bounce height when using the Bubble Bounce (SpongeBob only)
|-
| 0x68 || [[AssetID]][3] || '''[[ANIM]] IDsanimID''' -|| Bounce animations?
|-
| 0x74 || [[Vector3]] || '''Directionjmpdir''' -|| Bounce direction (unit vector)
|-
| 0x80 || unsigned intuint || '''Flagsspringflags''' ||
*1 - Lock view (look down)
*2 - ?
*4 - Lock movement (doesn't let you move)
|-
| 0x84 || byte[0xC] || - || ''null'' (Padding)
|-
! colspan="34" | Teeter-Totter only
|-
| 0x58 || float || '''itilt''' -|| initialInitial tilt, in radians
|-
| 0x5C || float || '''Max Tiltmaxtilt''' -|| inIn radians
|-
| 0x60 || float || '''Inverse Massinvmass''' -|| determinesDetermines tilt speed
|-
| 0x64 || byte[0x2C] || - || ''null'' (Padding)
|-
! colspan="34" | Paddle only
|-
| 0x58 || int || '''Start OrientstartOrient''' -|| Array index of Orients to start at (zero-indexed). Range is 0 ... Orient Count - 1.
|-
| 0x5C || int || '''Orient CountcountOrient''' -|| Number of rotations the paddle can be in (up to 6).
|-
| 0x60 || float || '''Orient LooporientLoop''' -|| Max rotation? (In degrees)
|-
| 0x64 || float[6] || '''Orientsorient''' -|| Array of yaw rotations (in degrees) for the paddle (up to 6).
|-
| 0x7C || unsigned intuint || '''FlagspaddleFlags''' ||
|-
| 0x80 || float || '''Rotate SpeedrotateSpeed''' ||
|-
| 0x84 || float || '''Accel TimeaccelTime''' ||
|-
| 0x88 || float || '''Decel TimedecelTime''' ||
|-
| 0x8C || float || '''Hub RadiushubRadius''' -|| collision radius?
|-
! colspan="34" | Fully Manipulable only
|-
| 0x58 || byte[0x38]int || null'''nothingyet''' (no|| data)''null''
|-
| 0x5C || byte[0x34] || - || ''null'' (Padding)
! colspan="3" |
|-
! colspan="4" |
| 0x90 || [[Motion]] || '''Motion'''
|-
| 0x90 || [[Motion]] || - ||
! colspan="3" | Events
|-
! colspan="4" | Events
| 0xC0 || Event[numberOfEvents] || '''[[Events]]'''
|-
| 0xC0 || Event[numberOfEvents] || [[EvilEngine/Events|'''Events''']] ||
|}
 
==Format: The Spongebob Squarepants Movie==
PLAT are [[PlaceableEvilEngine/Assets#Entity AssetAssets|placeableentity assets]], so they start with their 0x50 byte header, then are followed by:
 
{| class="wikitable"
! Offset !! Type !! Variable !! Description
|-
| 0x50 || byte || '''Typetype''' -|| This is always the same as the [[#Types (0x09)|Type at 0x09]] for every type except Platform, which can be one of the following subtypes:
* 0 - Extend/Retract
* 1 - Orbit
Line 155 ⟶ 296:
* 13 - Fully Manipulable
|-
| 0x51 || byte || Padding'''pad''' (always|| 0''null'' (Padding)
|-
| 0x52 || short || '''Flagsflags''' -|| Collision type
*0, 1, 2, 3, 8, 9 - Nonsolid
*4, 6 - Normal collision
*5, 7 - Bouncy collision
|-
! colspan="34" | PlatformExtend/Retract only
|-
| 0x54 || byte[0x38]int || null'''nodata''' (no data)||
|-
| 0x58 || byte[0x34] || - || ''null'' (Padding)
! colspan="3" | Mechanism only
|-
! colspan="4" | Orbit only
| 0x54 || byte[0x38] || null (no data)
|-
| 0x54 || int || '''nodata''' ||
! colspan="3" | Pendulum only
|-
| 0x540x58 || byte[0x380x34] || - || ''null'' (no dataPadding)
|-
! colspan="34" | Conveyor BeltSpline only
|-
| 0x54 || floatint || '''Speednodata''' ||
|-
| 0x58 || byte[0x34] || - || ''null'' (Padding)
|-
! colspan="34" | FallingMove PlatformPoint only
|-
| 0x54 || floatint || '''Speednodata''' ||
|-
| 0x58 || byte[[Asset ID]0x34] || '''Bust- [[MODL|Model]]| ID''null'' (Padding)
|-
! colspan="4" | Mechanism only
| 0x5C || byte[0x30] || null
|-
| 0x54 || int || '''nodata''' ||
! colspan="3" | FR only
|-
| 0x540x58 || floatbyte[0x34] || - || '''fspeed'null'' (Padding)
|-
! colspan="4" | Pendulum only
| 0x58 || float || '''rspeed'''
|-
| 0x5C0x54 || floatint || '''ret_delaynodata''' ||
|-
| 0x600x58 || floatbyte[0x34] || - || '''post_ret_delay'null'' (Padding)
|-
! colspan="4" | Conveyor Belt only
| 0x64 || byte[0x28] || null
|-
| 0x54 || float || '''speed''' ||
! colspan="3" | Breakaway Platform only
|-
| 0x58 || byte[0x34] || - || ''null'' (Padding)
| 0x54 || float || '''Breakaway Delay''' - Time in seconds to fall down after player stands on it
|-
! colspan="4" | Falling Platform only
| 0x58 || [[Asset ID]] || '''Bust [[MODL|Model]] ID''' - Always 0 or 0xCE7F8131 (hash of "--Choose One--")
|-
| 0x5C0x54 || float || '''Reset Delayspeed''' - Time in seconds after falling down to reset back to normal position||
|-
| 0x600x58 || unsigned int[[AssetID]] || '''FlagsbustModelID''' - Always 0 or 1||
|-
| 0x640x5C || floatbyte[0x30] || - || '''collisionOffTime'null'' (Padding)
|-
! colspan="34" | SpringboardFR only
|-
| 0x54 || float || '''fspeed''' ||
| 0x54 || float[3] || '''Heights''' - Bounce height array, unknown why it's an array. The game seems to pick the highest of the 3 heights in this array
|-
| 0x600x58 || float || '''Height (Bubble Bounce)rspeed''' - Bounce height when using the Bubble Bounce (SpongeBob only)||
|-
| 0x640x5C || [[AssetID]][3]float || '''[[ANIM]] IDsret_delay''' - Bounce animations?||
|-
| 0x700x60 || [[Vector3]]float || '''Directionpost_ret_delay''' - Bounce direction||
|-
| 0x7C0x64 || unsignedbyte[0x28] int|| - || ''null'Flags''' - Movement lock mode(Padding)
|-
! colspan="4" | Breakaway Platform only
| 0x80 || byte[0xC] || null
|-
| 0x54 || float || '''warningTime''' || Time in seconds to fall down after player stands on it
! colspan="3" | Teeter-Totter only
|-
| 0x540x58 || float || '''itiltcollapseIdleTime''' -|| unknown,Time in radiansseconds after falling down to reset back to normal position
|-
| 0x580x5C || floatuint || '''Max Tiltbreakflags''' - in radians||
|-
| 0x5C0x60 || float || '''Inverse MasscollisionOffTime''' - determines tilt speed||
|-
| 0x600x64 || byte[0x2C0x28] || - || ''null'' (Padding)
|-
! colspan="34" | PaddleSpringboard only
|-
| 0x54 || intfloat[3] || '''Start Orientjmph''' -|| ArrayJump indexheight ofarray, Orientsunknown towhy startit's atan (zero-indexed)array. RangeThe isgame 0seems ...to Orientpick Countthe -highest 1.of the 3 heights in this array
|-
| 0x580x60 || intfloat || '''Orient Countjmpbounce''' -|| NumberBounce ofheight rotationswhen using the paddleBubble can be inBounce (up toSpongeBob 6only).
|-
| 0x5C0x64 || float[[AssetID]][3] || '''Orient LoopanimID''' -|| MaxBounce rotationanimations? (In degrees)
|-
| 0x600x70 || float[6[Vector3]] || '''Orientsjmpdir''' -|| ArrayBounce of yaw rotationsdirection (in degrees) for the paddle (up tounit 6vector).
|-
| 0x780x7C || unsigned intuint || '''Flagsspringflags''' ||
|-
| 0x7C0x80 || floatbyte[0xC] || '''Rotate- || Speed''null'' (Padding)
|-
! colspan="4" | Teeter-Totter only
| 0x80 || float || '''Accel Time'''
|-
| 0x840x54 || float || '''Decel Timeitilt''' || Initial tilt, in radians
|-
| 0x880x58 || float || '''Hub Radiusmaxtilt''' -|| collisionIn radius?radians
|-
| 0x5C || float || '''invmass''' || Determines tilt speed
! colspan="3" | Fully Manipulable only
|-
| 0x540x60 || byte[0x380x28] || - || ''null'' (no dataPadding)
|-
! colspan="34" | Paddle only
|-
| 0x54 || int || '''startOrient''' || Array index of Orients to start at (zero-indexed). Range is 0 ... Orient Count - 1.
| 0x8C || [[Motion]] || '''Motion'''
|-
| 0x58 || int || '''countOrient''' || Number of rotations the paddle can be in (up to 6).
! colspan="3" | Events
|-
| 0x5C || float || '''orientLoop''' || Max rotation? (In degrees)
| 0xC8 || Event[numberOfEvents] || '''[[Events]]'''
|-
| 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?
|-
! colspan="4" | Fully Manipulable only
|-
| 0x54 || int || '''nothingyet''' || ''null''
|-
| 0x58 || byte[0x34] || - || ''null'' (Padding)
|-
! colspan="4" |
|-
| 0x8C || [[Motion]] || - ||
|-
! colspan="4" | Events
|-
| 0xC8 || Event[numberOfEvents] || [[EvilEngine/Events|'''Events''']] ||
|}
 
Line 272 ⟶ 439:
* 0 - Platform
* 4 - Mechanism
* 5 - Pendulum? (unused)
* 6 - Conveyor Belt
* 7 - Falling Platform? (unused)
* 8 - FR? (Forward/Return?) (unused)
* 9 - Breakaway Platform
* 10 - Springboard
* 11 - Teeter-Totter
* 12 - Paddle '''(Not present in Scooby)'''
* 13 - Fully Manipulable
 
== Events ==
* Forward
* Reverse
* Run
* Arrive
 
{{Assets}}
2,079

edits