Path: blob/master/Sonic 2/Scripts/MPZ/VPlatform.txt
1478 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: V Platform 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 VPlatform_DebugDraw25reserve function VPlatform_DebugSpawn2627private function VPlatform_DebugDraw28DrawSprite(0)29end function303132private function VPlatform_DebugSpawn33CreateTempObject(TypeName[V Platform], 0, object.xpos, object.ypos)34object[tempObjectPos].centerPos.y = object.ypos35object[tempObjectPos].propertyValue = object.direction36end function373839// ========================40// Events41// ========================4243event ObjectUpdate44temp6 = object.ypos4546GetTableValue(temp0, 4, StageSetup_oscillationTable)47if object.propertyValue == 148FlipSign(temp0)49temp0 += 0x400050end if51temp0 <<= 85253object.ypos = object.centerPos.y54object.ypos += object.wrapOffset.y55object.ypos -= temp056temp6 &= 0xFFFF000057temp7 = object.ypos58temp7 &= 0xFFFF000059temp7 -= temp66061temp2 = 062foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)63GetBit(temp0, object.stoodPlayers, temp2)64if temp0 == true65player[currentPlayer].ypos += temp766end if6768SetBit(object.stoodPlayers, temp2, false)69BoxCollisionTest(C_SOLID, object.entityPos, -32, -12, 32, 12, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)70switch checkResult71case COL_TOP72SetBit(object.stoodPlayers, temp2, true)73break7475case COL_BOTTOM76if player[currentPlayer].gravity == 077CallFunction(Player_Kill)78end if79break8081end switch82temp2++83next84end event858687event ObjectDraw88DrawSprite(0)89end event909192event ObjectStartup93LoadSpriteSheet("MPZ/Objects.gif")94SpriteFrame(-32, -12, 64, 24, 383, 207)9596foreach (TypeName[V Platform], arrayPos0, ALL_ENTITIES)97object[arrayPos0].centerPos.y = object[arrayPos0].ypos98next99100SetTableValue(TypeName[V Platform], DebugMode_ObjCount, DebugMode_TypesTable)101SetTableValue(VPlatform_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)102SetTableValue(VPlatform_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)103DebugMode_ObjCount++104end event105106107// ========================108// Editor Events109// ========================110111event RSDKEdit112if editor.returnVariable == true113switch editor.variableID114case EDIT_VAR_PROPVAL // property value115checkResult = object.propertyValue116break117118case 0 // startDir119checkResult = object.propertyValue120break121122end switch123else124switch editor.variableID125case EDIT_VAR_PROPVAL // property value126object.propertyValue = editor.variableValue127break128129case 0 // startDir130object.propertyValue = editor.variableValue131break132133end switch134end if135end event136137138event RSDKDraw139DrawSprite(0)140end event141142143event RSDKLoad144LoadSpriteSheet("MPZ/Objects.gif")145SpriteFrame(-32, -12, 64, 24, 383, 207)146147AddEditorVariable("startDir")148SetActiveVariable("startDir")149AddEnumVariable("Up", 0)150AddEnumVariable("Down", 1)151end event152153154