Path: blob/master/Sonic 1/Scripts/Global/PSwitch_Loop.txt
1483 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Plane Sw L Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.extendTop12private alias object.value1 : object.extendBottom1314// Player Aliases15private alias object.speed : player.speed16private alias object.gravity : player.gravity17private alias object.collisionPlane : player.collisionPlane181920// ========================21// Events22// ========================2324event ObjectUpdate25foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)26if player[currentPlayer].gravity == GRAVITY_GROUND27BoxCollisionTest(C_TOUCH, object.entityPos, -12, object.extendTop, 12, object.extendBottom, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)28if checkResult == true29if player[currentPlayer].speed > 030player[currentPlayer].collisionPlane = 131else32player[currentPlayer].collisionPlane = 033end if34end if35end if36next37end event383940event ObjectStartup41foreach (TypeName[Plane Sw L], arrayPos0, ALL_ENTITIES)42object[arrayPos0].extendTop = object[arrayPos0].propertyValue43object[arrayPos0].extendTop <<= 344object[arrayPos0].extendBottom = object[arrayPos0].extendTop45FlipSign(object[arrayPos0].extendTop)46object[arrayPos0].extendTop -= 847object[arrayPos0].extendBottom += 848next49end event505152// ========================53// Editor Events54// ========================5556event RSDKEdit57if editor.returnVariable == true58switch editor.variableID59case EDIT_VAR_PROPVAL // property value60checkResult = object.propertyValue61checkResult &= 362break6364case 0 // size65checkResult = object.propertyValue66checkResult &= 367break6869end switch70else71switch editor.variableID72case EDIT_VAR_PROPVAL // property value73object.propertyValue = editor.variableValue74object.propertyValue &= 375break7677case 0 // size78temp1 = 379Not(temp1)80object.propertyValue &= temp18182temp0 = editor.variableValue83temp0 &= 384object.propertyValue = temp085break8687end switch88end if89end event909192event RSDKDraw93// Grabbed this and edited it from from S2's debug view, since S1 doesn't have one9495// size96temp1 = object.propertyValue97temp1 &= 398temp1 += 299100temp0 = 1101temp0 <<= temp1102temp1 = temp0103temp0 <<= 19104FlipSign(temp0)105temp0 += object.ypos106temp0 += 0x80000107108temp4 = 0109while temp4 < temp1110DrawSpriteXY(0, object.xpos, temp0)111temp0 += 0x100000112temp4++113loop114115if temp1 == 0116DrawSprite(0)117end if118end event119120121event RSDKLoad122LoadSpriteSheet("Global/Display.gif")123SpriteFrame(-8, -8, 16, 16, 222, 239)124125AddEditorVariable("size")126SetActiveVariable("size")127AddEnumVariable("4 Nodes", 0)128AddEnumVariable("8 Nodes", 1)129AddEnumVariable("16 Nodes", 2)130AddEnumVariable("32 Nodes", 3)131end event132133134