Path: blob/main/Scripts/DAGarden/MenuControl.txt
1319 views
//----------------Sonic CD Menu Control Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Fade // Also used as a timer67// Little Planet Aliases8#alias Object[32].Frame : LittlePlanet.Frame910// Music Selector Aliases11#alias Object[33].Frame : MusicSelector.Frame12#alias Object[33].XPos : MusicSelector.XPos13#alias Object[33].State : MusicSelector.State14#alias Object[33].DrawOrder : MusicSelector.DrawOrder15#alias Object[33].Priority : MusicSelector.Priority1617// Touch Buttons Aliases18#alias Object[35].PropertyValue : Object.Button1Value19#alias Object[36].PropertyValue : Object.Button2Value20#alias Object[37].PropertyValue : Object.Button3Value2122// States23#alias 0 : MENUCONTROL_SETUP24#alias 1 : MENUCONTROL_FADE_IN25#alias 2 : MENUCONTROL_IDLE26#alias 3 : MENUCONTROL_MUSIC_CONTROLS27#alias 4 : MENUCONTROL_SET_MUSIC28#alias 5 : MENUCONTROL_TIMETRAVEL29#alias 6 : MENUCONTROL_EXIT3031// Music Selector States32#alias 0 : MUSICSELECTOR_BLANK33#alias 1 : MUSICSELECTOR_STOP_MOVE_L34#alias 2 : MUSICSELECTOR_MOVE_L35#alias 4 : MUSICSELECTOR_MOVE_R3637// Little Planet Sprite Frame Aliases38#alias 0 : LPFRAME_PRESENT39#alias 11 : LPFRAME_GOODFUTURE40#alias 22 : LPFRAME_BADFUTURE4142// Priority43#alias 0 : PRIORITY_BOUNDS44#alias 1 : PRIORITY_ACTIVE4546// Presentation Stage47#alias 1 : STAGE_P_MENU4849// Device Type50#alias 1 : RETRO_MOBILE5152// Function Declarations53#function MenuControl_ChangeTrack545556function MenuControl_ChangeTrack57switch MusicSelector.Frame58case 059SetMusicTrack("JP/R1A.ogg", 0, 142428)60SetMusicTrack("US/R1A.ogg", 1, 153038)61LittlePlanet.Frame = LPFRAME_PRESENT62break6364case 165SetMusicTrack("JP/R1C.ogg", 0, 142902)66SetMusicTrack("US/R1C.ogg", 1, 152346)67LittlePlanet.Frame = LPFRAME_GOODFUTURE68break6970case 271SetMusicTrack("JP/R1D.ogg", 0, 1)72SetMusicTrack("US/R1D.ogg", 1, 774998)73LittlePlanet.Frame = LPFRAME_BADFUTURE74break7576case 377SetMusicTrack("JP/R3A.ogg", 0, 358725)78SetMusicTrack("US/R3A.ogg", 1, 1)79LittlePlanet.Frame = LPFRAME_PRESENT80break8182case 483SetMusicTrack("JP/R3C.ogg", 0, 1)84SetMusicTrack("US/R3C.ogg", 1, 173494)85LittlePlanet.Frame = LPFRAME_GOODFUTURE86break8788case 589SetMusicTrack("JP/R3D.ogg", 0, 717648)90SetMusicTrack("US/R3D.ogg", 1, 1)91LittlePlanet.Frame = LPFRAME_BADFUTURE92break9394case 695SetMusicTrack("JP/R4A.ogg", 0, 1)96SetMusicTrack("US/R4A.ogg", 1, 415148)97LittlePlanet.Frame = LPFRAME_PRESENT98break99100case 7101SetMusicTrack("JP/R4C.ogg", 0, 1)102SetMusicTrack("US/R4C.ogg", 1, 1)103LittlePlanet.Frame = LPFRAME_GOODFUTURE104break105106case 8107SetMusicTrack("JP/R4D.ogg", 0, 1)108SetMusicTrack("US/R4D.ogg", 1, 145616)109LittlePlanet.Frame = LPFRAME_BADFUTURE110break111112case 9113SetMusicTrack("JP/R5A.ogg", 0, 1)114SetMusicTrack("US/R5A.ogg", 1, 1)115LittlePlanet.Frame = LPFRAME_PRESENT116break117118case 10119SetMusicTrack("JP/R5C.ogg", 0, 367046)120SetMusicTrack("US/R5C.ogg", 1, 705830)121LittlePlanet.Frame = LPFRAME_GOODFUTURE122break123124case 11125SetMusicTrack("JP/R5D.ogg", 0, 1)126SetMusicTrack("US/R5D.ogg", 1, 93672)127LittlePlanet.Frame = LPFRAME_BADFUTURE128break129130case 12131SetMusicTrack("JP/R6A.ogg", 0, 1)132SetMusicTrack("US/R6A.ogg", 1, 926048)133LittlePlanet.Frame = LPFRAME_PRESENT134break135136case 13137SetMusicTrack("JP/R6C.ogg", 0, 1)138SetMusicTrack("US/R6C.ogg", 1, 181704)139LittlePlanet.Frame = LPFRAME_GOODFUTURE140break141142case 14143SetMusicTrack("JP/R6D.ogg", 0, 1)144SetMusicTrack("US/R6D.ogg", 1, 45355)145LittlePlanet.Frame = LPFRAME_BADFUTURE146break147148case 15149SetMusicTrack("JP/R7A.ogg", 0, 1)150SetMusicTrack("US/R7A.ogg", 1, 617728)151LittlePlanet.Frame = LPFRAME_PRESENT152break153154case 16155SetMusicTrack("JP/R7C.ogg", 0, 103060)156SetMusicTrack("US/R7C.ogg", 1, 136670)157LittlePlanet.Frame = LPFRAME_GOODFUTURE158break159160case 17161SetMusicTrack("JP/R7D.ogg", 0, 1)162SetMusicTrack("US/R7D.ogg", 1, 92324)163LittlePlanet.Frame = LPFRAME_BADFUTURE164break165166case 18167SetMusicTrack("JP/R8A.ogg", 0, 146030)168SetMusicTrack("US/R8A.ogg", 1, 1)169LittlePlanet.Frame = LPFRAME_PRESENT170break171172case 19173SetMusicTrack("JP/R8C.ogg", 0, 1)174SetMusicTrack("US/R8C.ogg", 1, 1)175LittlePlanet.Frame = LPFRAME_GOODFUTURE176break177178case 20179SetMusicTrack("JP/R8D.ogg", 0, 1)180SetMusicTrack("US/R8D.ogg", 1, 563962)181LittlePlanet.Frame = LPFRAME_BADFUTURE182break183184case 21185SetMusicTrack("JP/FinalBoss.ogg", 0, 1)186SetMusicTrack("US/FinalBoss.ogg", 1, 1)187LittlePlanet.Frame = LPFRAME_PRESENT188break189190case 22191SetMusicTrack("JP/DAGarden.ogg", 0, 1)192SetMusicTrack("US/DAGarden.ogg", 1, 117382)193LittlePlanet.Frame = LPFRAME_PRESENT194break195196case 23197SetMusicTrack("JP/GameOver.ogg", 0, 0)198SetMusicTrack("US/GameOver.ogg", 1, 0)199LittlePlanet.Frame = LPFRAME_PRESENT200break201202case 24203SetMusicTrack("JP/ZoneComplete.ogg", 0, 0)204SetMusicTrack("US/ZoneComplete.ogg", 1, 0)205LittlePlanet.Frame = LPFRAME_PRESENT206break207208case 25209SetMusicTrack("JP/Boss.ogg", 0, 1)210SetMusicTrack("US/Boss.ogg", 1, 196526)211LittlePlanet.Frame = LPFRAME_PRESENT212break213214case 26215SetMusicTrack("JP/Invincibility.ogg", 0, 0)216SetMusicTrack("US/Invincibility.ogg", 1, 0)217LittlePlanet.Frame = LPFRAME_PRESENT218break219220case 27221SetMusicTrack("JP/SpeedShoes.ogg", 0, 0)222SetMusicTrack("US/SpeedShoes.ogg", 1, 0)223LittlePlanet.Frame = LPFRAME_PRESENT224break225226case 28227SetMusicTrack("JP/TitleScreen.ogg", 0, 0)228SetMusicTrack("US/TitleScreen.ogg", 1, 0)229LittlePlanet.Frame = LPFRAME_PRESENT230break231232case 29233SetMusicTrack("JP/SpecialStage.ogg", 0, 1)234SetMusicTrack("US/SpecialStage.ogg", 1, 270972)235LittlePlanet.Frame = LPFRAME_PRESENT236break237238case 30239SetMusicTrack("JP/TimeAttack.ogg", 0, 100512)240SetMusicTrack("US/DAGarden.ogg", 1, 117382)241LittlePlanet.Frame = LPFRAME_PRESENT242break243end switch244245PlayMusic(Options.Soundtrack)246end function247248249sub ObjectMain250switch Object.State251case MENUCONTROL_SETUP252Object.State = MENUCONTROL_FADE_IN253Object.Fade = 384254SetScreenFade(0, 0, 0, 255)255PlayMusic(Options.Soundtrack)256break257258case MENUCONTROL_FADE_IN259if Object.Fade > 0260Object.Fade -= 8261else262Object.State = MENUCONTROL_IDLE263end if264SetScreenFade(0, 0, 0, Object.Fade)265break266267case MENUCONTROL_IDLE268#platform: Use_Standalone269if KeyPress[0].Start == true270#endplatform271#platform: Use_Origins272if KeyPress[0].ButtonB == true273#endplatform274StopMusic()275Object.State = MENUCONTROL_EXIT276end if277278if KeyPress[0].ButtonA == true279Object.State = MENUCONTROL_MUSIC_CONTROLS280MusicSelector.XPos = Screen.XSize281MusicSelector.XPos += 96282MusicSelector.XPos <<= 16283284MusicSelector.State = MUSICSELECTOR_STOP_MOVE_L285MusicSelector.DrawOrder = 5286MusicSelector.Priority = PRIORITY_ACTIVE287288Object.Button1Value = 4289Object.Button2Value = 5290Object.Button3Value = 6291end if292break293294case MENUCONTROL_MUSIC_CONTROLS295if MusicSelector.State == MUSICSELECTOR_BLANK296if KeyPress[0].Left == true297MusicSelector.State = MUSICSELECTOR_MOVE_L298end if299300if KeyPress[0].Right == true301MusicSelector.State = MUSICSELECTOR_MOVE_R302end if303304if KeyPress[0].ButtonA == true305Object.State = MENUCONTROL_SET_MUSIC306StopMusic()307end if308309#platform: Use_Standalone310if KeyPress[0].ButtonB == true311#endplatform312#platform: Use_Origins313if KeyPress[0].Start == true314#endplatform315Object.State = MENUCONTROL_SET_MUSIC316StopMusic()317end if318319if KeyPress[0].ButtonC == true320Object.State = MENUCONTROL_SET_MUSIC321StopMusic()322end if323end if324325#platform: Use_Standalone326if KeyPress[0].Start == true327#endplatform328#platform: Use_Origins329if KeyPress[0].ButtonB == true330#endplatform331StopMusic()332Object.State = MENUCONTROL_EXIT333end if334break335336case MENUCONTROL_SET_MUSIC337if Object.Fade < 288338Object.Fade += 8339else340MusicSelector.XPos = Screen.XSize341MusicSelector.XPos += 96342MusicSelector.XPos <<= 16343344MusicSelector.State = MUSICSELECTOR_BLANK345MusicSelector.Priority = PRIORITY_BOUNDS346347Object.Button1Value = 0348Object.Button2Value = 2349Object.Button3Value = 7350351CallFunction(MenuControl_ChangeTrack)352Object.State++353end if354SetScreenFade(208, 255, 224, Object.Fade)355break356357case MENUCONTROL_TIMETRAVEL358if Object.Fade > 0359Object.Fade -= 8360else361Object.State = MENUCONTROL_IDLE362end if363SetScreenFade(208, 255, 224, Object.Fade)364break365366case MENUCONTROL_EXIT367if Object.Fade < 384368Object.Fade += 8369else370// Return to the Menu scene371Stage.ListPos = STAGE_P_MENU372LoadStage()373end if374SetScreenFade(0, 0, 0, Object.Fade)375break376end switch377end sub378379380sub ObjectStartup381SetMusicTrack("JP/DAGarden.ogg", 0, 1)382SetMusicTrack("US/DAGarden.ogg", 1, 117382)383Object[0].Type = TypeName[Menu Control]384Object[0].DrawOrder = 1385Object[0].Priority = PRIORITY_ACTIVE386387#platform: Use_Origins388if Engine.DeviceType == RETRO_MOBILE389Object[34].DrawOrder = 5390Object[35].DrawOrder = 5391Object[36].DrawOrder = 5392Object[37].DrawOrder = 5393394TempValue0 = Screen.XSize395TempValue0 >>= 2396397TempValue1 = TempValue0398TempValue1 >>= 1399Object[34].iXPos = TempValue1400401TempValue1 += TempValue0402Object[35].iXPos = TempValue1403404TempValue1 += TempValue0405Object[36].iXPos = TempValue1406407TempValue1 += TempValue0408Object[37].iXPos = TempValue1409else410Object[34].Type = TypeName[Blank Object]411Object[35].Type = TypeName[Blank Object]412Object[36].Type = TypeName[Blank Object]413Object[37].Type = TypeName[Blank Object]414end if415#endplatform416417#platform: Use_Standalone418#platform: Mobile419// Setup all the Touch Buttons for the player to tap420Object[34].DrawOrder = 5421Object[35].DrawOrder = 5422Object[36].DrawOrder = 5423Object[37].DrawOrder = 5424425TempValue0 = Screen.XSize426TempValue0 >>= 2427428TempValue1 = TempValue0429TempValue1 >>= 1430Object[34].iXPos = TempValue1431432TempValue1 += TempValue0433Object[35].iXPos = TempValue1434435TempValue1 += TempValue0436Object[36].iXPos = TempValue1437438TempValue1 += TempValue0439Object[37].iXPos = TempValue1440#endplatform441#endplatform442443#platform: Use_Standalone444#platform: Standard445// Touch controls aren't needed446Object[34].Type = TypeName[Blank Object]447Object[35].Type = TypeName[Blank Object]448Object[36].Type = TypeName[Blank Object]449Object[37].Type = TypeName[Blank Object]450#endplatform451#endplatform452end sub453454455// ========================456// Editor Subs457// ========================458459sub RSDKDraw460DrawSprite(0)461end sub462463464sub RSDKLoad465LoadSpriteSheet("Global/Display.gif")466SpriteFrame(-16, -16, 32, 32, 1, 143) // #0 - "Script" Icon467468SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")469end sub470471472