Path: blob/master/Sonic 2/Scripts/MPZ/VPlatform2.txt
1478 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: V Platform 2 Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.centerPos.y12private alias object.value1 : object.stoodPlayers13private alias object.value31 : object.wrapOffset.y1415// Player Aliases16private alias object.ypos : player.ypos17private alias object.gravity : player.gravity181920// ========================21// Function Declarations22// ========================2324reserve function VPlatform2_DebugDraw25reserve function VPlatform2_DebugSpawn2627private function VPlatform2_DebugDraw28DrawSprite(0)29end function303132private function VPlatform2_DebugSpawn33CreateTempObject(TypeName[V Platform 2], 0, object.xpos, object.ypos)34object[tempObjectPos].centerPos.y = object.ypos35object[tempObjectPos].propertyValue = object.direction36end function373839// ========================40// Events41// ========================4243event ObjectUpdate44temp6 = object.ypos45GetTableValue(temp0, 14, StageSetup_oscillationTable)46if object.propertyValue == 147FlipSign(temp0)48temp0 += 0x800049end if50temp0 <<= 85152object.ypos = object.centerPos.y53object.ypos += object.wrapOffset.y54object.ypos -= temp055temp6 &= 0xFFFF000056temp7 = object.ypos57temp7 &= 0xFFFF000058temp7 -= temp65960temp2 = 061foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)62GetBit(temp0, object.stoodPlayers, temp2)63if temp0 == true64player[currentPlayer].ypos += temp765end if6667SetBit(object.stoodPlayers, temp2, false)68BoxCollisionTest(C_SOLID, object.entityPos, -32, -12, 32, 12, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)69switch checkResult70case COL_TOP71SetBit(object.stoodPlayers, temp2, true)72break7374case COL_BOTTOM75if player[currentPlayer].gravity == 076CallFunction(Player_Kill)77end if78break7980end switch81temp2++82next83end event848586event ObjectDraw87DrawSprite(0)88end event899091event ObjectStartup92LoadSpriteSheet("MPZ/Objects.gif")93SpriteFrame(-32, -12, 64, 24, 383, 207)9495foreach (TypeName[V Platform 2], arrayPos0, ALL_ENTITIES)96object[arrayPos0].centerPos.y = object[arrayPos0].ypos97next9899SetTableValue(TypeName[V Platform 2], DebugMode_ObjCount, DebugMode_TypesTable)100SetTableValue(VPlatform2_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)101SetTableValue(VPlatform2_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)102DebugMode_ObjCount++103end event104105106// ========================107// Editor Events108// ========================109110event RSDKEdit111if editor.returnVariable == true112switch editor.variableID113case EDIT_VAR_PROPVAL // property value114checkResult = object.propertyValue115break116117case 0 // startDir118checkResult = object.propertyValue119break120121end switch122else123switch editor.variableID124case EDIT_VAR_PROPVAL // property value125object.propertyValue = editor.variableValue126break127128case 0 // startDir129object.propertyValue = editor.variableValue130break131132end switch133end if134end event135136137event RSDKDraw138DrawSprite(0)139end event140141142event RSDKLoad143LoadSpriteSheet("MPZ/Objects.gif")144SpriteFrame(-32, -12, 64, 24, 383, 207)145146AddEditorVariable("startDir")147SetActiveVariable("startDir")148AddEnumVariable("Up", 0)149AddEnumVariable("Down", 1)150end event151152153