Path: blob/main/Scripts/R8/BladePole.txt
1319 views
//-----------------Sonic CD Blade Pole Script-----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer67// States8#alias 0 : BLADEPOLE_SETUP9#alias 1 : BLADEPOLE_MOVE_RIGHT10#alias 2 : BLADEPOLE_MOVE_LEFT1112// Collision Sides13#alias 0 : CSIDE_FLOOR141516sub ObjectMain17switch Object.State18case BLADEPOLE_SETUP19ObjectTileGrip(CSIDE_FLOOR, 0, 48, 0)20if CheckResult == true21Object.State = BLADEPOLE_MOVE_RIGHT22Object.Timer = -6423else24Object.YPos += 0x1000025end if26break2728case BLADEPOLE_MOVE_RIGHT29if Object.Timer < 9630Object.Timer++31Object.XPos += 0x1000032ObjectTileGrip(CSIDE_FLOOR, 0, 48, 0)33if CheckResult == false34Object.State = BLADEPOLE_MOVE_LEFT35Object.Timer = -6436end if37else38Object.State = BLADEPOLE_MOVE_LEFT39Object.Timer = -6440end if41break4243case BLADEPOLE_MOVE_LEFT44if Object.Timer < 9645Object.Timer++46Object.XPos -= 0x1000047ObjectTileGrip(CSIDE_FLOOR, 0, 48, 0)48if CheckResult == false49Object.State = BLADEPOLE_MOVE_RIGHT50Object.Timer = -6451end if52else53Object.State = BLADEPOLE_MOVE_RIGHT54Object.Timer = -6455end if56break57end switch5859switch Object.Frame60case 061case 262if Object.AnimationTimer < 463Object.AnimationTimer++64else65Object.AnimationTimer = 066Object.Frame++67end if68break6970case 171if Object.AnimationTimer < 7272Object.AnimationTimer++73else74Object.AnimationTimer = 075Object.Frame++76end if77break7879case 380if Object.AnimationTimer < 7281Object.AnimationTimer++82else83Object.AnimationTimer = 084Object.Frame = 085end if86break8788end switch89end sub909192sub ObjectPlayerInteraction93switch Object.Frame94case 1 // Upper Blade95PlayerObjectCollision(C_TOUCH, -28, -48, 28, -40)96if CheckResult == true97CallFunction(Player_Hit)98end if99break100101case 3 // Lower Blade102PlayerObjectCollision(C_TOUCH, -28, 16, 28, 24)103if CheckResult == true104CallFunction(Player_Hit)105end if106break107end switch108end sub109110111sub ObjectDraw112TempValue0 = Object.Timer113TempValue0 += 64114TempValue0 %= 18115TempValue0 /= 9116TempValue0 += 16117DrawSprite(TempValue0)118119switch Object.Frame120case 0121case 2122DrawSprite(0)123Object.Direction = 2124DrawSpriteFX(2, FX_FLIP, Object.XPos, Object.YPos)125break126127case 1128TempValue0 = Object.AnimationTimer129TempValue0 /= 3130TempValue0 %= 6131TempValue0 += 4132DrawSprite(TempValue0)133DrawSpriteFX(3, FX_FLIP, Object.XPos, Object.YPos)134break135136case 3137TempValue0 = Object.AnimationTimer138TempValue0 /= 3139TempValue0 %= 6140TempValue0 += 10141DrawSprite(1)142DrawSpriteFX(TempValue0, FX_FLIP, Object.XPos, Object.YPos)143break144end switch145end sub146147148sub ObjectStartup149LoadSpriteSheet("R8/Objects.gif")150151SpriteFrame(-16, -48, 32, 24, 67, 216) // #0 - Top Half-extended Blade152SpriteFrame(-12, -48, 24, 32, 34, 213) // #1 - Top Closed Blade153SpriteFrame(-16, -24, 32, 24, 67, 216) // #2 - Bottom Half-open Blade154SpriteFrame(-12, -24, 24, 32, 34, 213) // #3 - Bottom Closed Blade155156SpriteFrame(-32, -48, 64, 8, 50, 182) // #4 - Top Open Blade frame 0157SpriteFrame(-24, -48, 48, 8, 50, 191) // #5 - Top Open Blade frame 1158SpriteFrame(-16, -48, 32, 8, 99, 191) // #6 - Top Open Blade frame 2159SpriteFrame(-4, -48, 8, 8, 115, 182) // #7 - Top Open Blade frame 3160SpriteFrame(-16, -48, 32, 8, 222, 245) // #8 - Top Open Blade frame 4161SpriteFrame(-24, -48, 48, 8, 1, 246) // #9 - Top Open Blade frame 5162163SpriteFrame(-32, -24, 64, 8, 50, 182) // #10 - Bottom Open Blade frame 0164SpriteFrame(-24, -24, 48, 8, 50, 191) // #11 - Bottom Open Blade frame 1165SpriteFrame(-16, -24, 32, 8, 99, 191) // #12 - Bottom Open Blade frame 2166SpriteFrame(-4, -24, 8, 8, 115, 182) // #13 - Bottom Open Blade frame 3167SpriteFrame(-16, -24, 32, 8, 222, 245) // #14 - Bottom Open Blade frame 4168SpriteFrame(-24, -24, 48, 8, 1, 246) // #15 - Bottom Open Blade frame 5169170SpriteFrame(-8, -40, 16, 88, 222, 123) // #16 - Blade Pole frame 0171SpriteFrame(-8, -40, 16, 88, 239, 123) // #17 - Blade Pole frame 1172end sub173174175// ========================176// Editor Subs177// ========================178179sub RSDKDraw180DrawSprite(3)181DrawSprite(0)182Object.Direction = 2183DrawSpriteFX(2, FX_FLIP, Object.XPos, Object.YPos)184end sub185186187sub RSDKLoad188LoadSpriteSheet("R8/Objects.gif")189190SpriteFrame(-16, -48, 32, 24, 67, 216) // #0 - Top Half-extended Blade191SpriteFrame(-12, -48, 24, 32, 34, 213) // #1 - Top Closed Blade192SpriteFrame(-16, -24, 32, 24, 67, 216) // #2 - Bottom Half-open Blade193SpriteFrame(-8, -40, 16, 88, 222, 123) // #3 - Blade Pole194195SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")196end sub197198199