Path: blob/master/Sonic 1/Scripts/LZ/DoorFlapping.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 12// Script Description: Flapping Door Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.timer12private alias object.value1 : object.interval13private alias object.value2 : object.frameTimer14private alias object.value3 : object.displayedFrame1516// States17private alias 0 : FLAPPINGDOOR_CLOSED18private alias 1 : FLAPPINGDOOR_OPENING19private alias 2 : FLAPPINGDOOR_OPENED2021// Player Aliases22private alias object.xpos : player.xpos232425// ========================26// Function Declarations27// ========================2829reserve function FlappingDoor_DebugDraw30reserve function FlappingDoor_DebugSpawn313233// ========================34// Function Definitions35// ========================3637private function FlappingDoor_DebugDraw38DrawSpriteFX(0, FX_FLIP, object.xpos, object.ypos)39end function404142private function FlappingDoor_DebugSpawn43CreateTempObject(TypeName[Flapping Door], 0, object.xpos, object.ypos)44object[tempObjectPos].direction = object.direction45object[tempObjectPos].interval = 5646object[tempObjectPos].timer = 5647end function484950// ========================51// Events52// ========================5354event ObjectUpdate55switch object.frame56case FLAPPINGDOOR_CLOSED57if player[0].xpos < object.xpos58CurrentTunnel_activateDelay = 459end if60// [Fallthrough]61case FLAPPINGDOOR_OPENING62object.timer--63if object.timer == -164temp0 = camera[0].xpos65temp0 -= object.ixpos66temp0 -= 867Abs(temp0)68if temp0 <= screen.xcenter69temp0 = camera[0].ypos70temp0 -= object.iypos71temp0 -= 3272Abs(temp0)73if temp0 <= screen.ycenter74PlaySfx(SfxName[Flapping Door], false)75end if76end if77end if7879if object.timer == -580object.frameTimer = 081object.frame = 282end if83break8485case FLAPPINGDOOR_OPENED86object.frameTimer++87if object.frameTimer == 488object.displayedFrame ^= 189object.frame = object.displayedFrame90object.timer = object.interval91end if92break9394end switch9596if object.frame == FLAPPINGDOOR_CLOSED97foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)98BoxCollisionTest(C_SOLID, object.entityPos, -8, -32, 8, 32, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)99next100end if101end event102103104event ObjectDraw105DrawSpriteFX(object.frame, FX_FLIP, object.xpos, object.ypos)106end event107108109event ObjectStartup110LoadSpriteSheet("LZ/Objects.gif")111SpriteFrame(-8, -32, 16, 64, 1, 191)112SpriteFrame(0, -40, 32, 80, 51, 175)113SpriteFrame(-5, -38, 32, 76, 18, 179)114115foreach (TypeName[Flapping Door], arrayPos0, ALL_ENTITIES)116object[arrayPos0].interval = object[arrayPos0].propertyValue117object[arrayPos0].interval *= 60118object[arrayPos0].interval -= 4119object[arrayPos0].timer = object[arrayPos0].interval120next121122SetTableValue(TypeName[Flapping Door], DebugMode_ObjCount, DebugMode_TypesTable)123SetTableValue(FlappingDoor_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)124SetTableValue(FlappingDoor_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)125DebugMode_ObjCount++126end event127128129// ========================130// Editor Events131// ========================132133event RSDKEdit134if editor.returnVariable == true135switch editor.variableID136case EDIT_VAR_PROPVAL // property value137checkResult = object.propertyValue138break139140case 0 // interval141checkResult = object.propertyValue142break143144end switch145else146switch editor.variableID147case EDIT_VAR_PROPVAL // property value148object.propertyValue = editor.variableValue149break150151case 0 // interval152object.propertyValue = editor.variableValue153break154155end switch156end if157end event158159160event RSDKDraw161DrawSprite(0)162end event163164165event RSDKLoad166LoadSpriteSheet("LZ/Objects.gif")167SpriteFrame(-8, -32, 16, 64, 1, 191)168169AddEditorVariable("interval")170SetActiveVariable("interval")171end event172173174