Path: blob/main/Scripts/R1/CLedge2.txt
1319 views
//---------------Sonic CD Crumble Ledge 2 Script--------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Timer6#alias Object.Value1 : Object.YVelocity78// States9#alias 0 : CLEDGE2_IDLE10#alias 1 : CLEDGE2_DEBRIS11#alias 2 : CLEDGE2_RESTORE // Unused1213// Stage SFX14#alias 0 : SFX_S_CRUMBLE1516// Priority17#alias 0 : PRIORITY_BOUNDS181920sub ObjectMain21switch Object.State22case CLEDGE2_DEBRIS23if Object.Timer > 024Object.Timer--25else26Object.YVelocity += 0x500027Object.YPos += Object.YVelocity28end if29if Object.OutOfBounds == true30Object.Type = TypeName[Blank Object]31end if32break3334case CLEDGE2_RESTORE3536if Object.OutOfBounds == true37Object.State = CLEDGE2_IDLE38Object.Priority = PRIORITY_BOUNDS39end if4041break42end switch43end sub444546sub ObjectPlayerInteraction47switch Object.PropertyValue48case 049if Object.State == CLEDGE2_IDLE50PlayerObjectCollision(C_PLATFORM, -40, -24, 40, -8)51if CheckResult == true52Object.Priority = PRIORITY_BOUNDS53Object.Type = TypeName[Blank Object]54// TempValue0 : Debris chunk value55// TempValue1 : Ledge section value56// TempValue2 : Debris for ledge section57// TempValue3 : Fall Timer58// TempValue4 : XPos59// TempValue5 : YPos60TempValue0 = 161TempValue1 = 062TempValue4 = Object.XPos63TempValue4 -= 0x20000064while TempValue1 < 565TempValue2 = 066TempValue5 = Object.YPos67TempValue5 += 0x20000068switch TempValue169case 070TempValue3 = 5871break72case 173TempValue3 = 4674break75case 276TempValue3 = 3477break78case 379TempValue3 = 2780break81case 482TempValue3 = 1083break84end switch8586while TempValue2 < 587CreateTempObject(TypeName[Crumble Ledge 2], TempValue0, TempValue4, TempValue5)88Object[TempObjectPos].Timer = TempValue389Object[TempObjectPos].State = CLEDGE2_DEBRIS90TempValue3 += 591TempValue0++92TempValue2++93TempValue5 -= 0x10000094loop9596TempValue3 -= 897TempValue1++98TempValue4 += 0x10000099loop100PlayStageSfx(SFX_S_CRUMBLE, false)101end if102end if103break104// The five debris chunks at the very top retains collision105case 4106case 9107case 14108case 19109case 24110if Object.Timer > 0111PlayerObjectCollision(C_PLATFORM, -8, -8, 8, 8)112end if113break114115end switch116end sub117118119sub ObjectDraw120if Object.State < CLEDGE2_RESTORE121DrawSprite(Object.PropertyValue)122end if123end sub124125126sub ObjectStartup127LoadSpriteSheet("R1/Objects2.gif")128129SpriteFrame(-40, -40, 80, 80, 82, 1) // #0 - Ledge130131// Debris chunks132TempValue1 = 82133while TempValue1 < 162134TempValue0 = 65135while TempValue0 > 0136SpriteFrame(-8, -8, 16, 16, TempValue1, TempValue0)137TempValue0 -= 16138loop139TempValue1 += 16140loop141end sub142143144// ========================145// Editor Subs146// ========================147148sub RSDKDraw149DrawSprite(0)150end sub151152153sub RSDKLoad154LoadSpriteSheet("R1/Objects2.gif")155156SpriteFrame(-40, -40, 80, 80, 82, 1) // #0 - Ledge157158SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")159end sub160161162