Path: blob/main/Scripts/Secrets/StageSelect.txt
1319 views
//----------------Sonic CD Stage Select Script----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.Value0 : Object.Fade // Also used for timing6#alias Object.Value1 : Object.Level7#alias Object.Value2 : Object.HoldTimer8#alias Object.Value3 : Object.TouchButton910// States11#alias 0 : STAGESELECT_SETUP12#alias 1 : STAGESELECT_FADE_IN13#alias 2 : STAGESELECT_CONTROLS14#alias 3 : STAGESELECT_LOAD_LEVEL15#alias 4 : STAGESELECT_EXIT1617// Presentation Stages18#alias 1 : STAGE_P_MENU1920// Global SFX21#alias 27 : SFX_G_SELECT2223// Game Mode Aliases24#alias 0 : MODE_NOSAVE2526//Engine & CallBacks27#alias 2 : MESSAGE_LOSTFOCUS2829// Device Type30#alias 1 : RETRO_MOBILE313233sub ObjectMain34switch Object.State35case STAGESELECT_SETUP36if Object.Fade < 837Object.Fade++38else39Object.Fade = 25440Object.State++41end if42SetScreenFade(0, 0, 0, 255)43break4445case STAGESELECT_FADE_IN46if Object.Fade > 047SetScreenFade(0, 0, 0, Object.Fade)48Object.Fade -= 849else50Object.State++51end if52break5354case STAGESELECT_CONTROLS55if KeyPress[0].Up == true56Object.HoldTimer = 057Object.Level--58if Object.Level < 059Object.Level = 6960end if61else62if KeyPress[0].Down == true63Object.HoldTimer = 064Object.Level++65if Object.Level > 6966Object.Level = 067end if68end if69end if7071if KeyDown[0].Up == true72Object.HoldTimer++73if Object.HoldTimer == 874Object.HoldTimer = 075Object.Level--76if Object.Level < 077Object.Level = 6978end if79end if80else81if KeyDown[0].Down == true82Object.HoldTimer++83if Object.HoldTimer == 884Object.HoldTimer = 085Object.Level++86if Object.Level > 6987Object.Level = 088end if89end if90end if91end if9293if KeyPress[0].Start == true94Object.State = STAGESELECT_LOAD_LEVEL95end if9697if KeyPress[0].ButtonA == true98Object.State = STAGESELECT_LOAD_LEVEL99end if100101if KeyPress[0].ButtonB == true102Object.State = STAGESELECT_EXIT103end if104105#platform: Use_Origins106if Engine.DeviceType == RETRO_MOBILE107TempValue0 = Screen.CenterX108TempValue0 -= 138109TempValue1 = Screen.CenterX110TempValue1 -= 76111CheckTouchRect(TempValue0, 20, TempValue1, 72)112if CheckResult > -1113KeyDown[0].Up = true114Object.HoldTimer++115if Object.HoldTimer == 8116Object.HoldTimer = 0117Object.Level--118if Object.Level < 0119Object.Level = 69120end if121end if122end if123CheckTouchRect(TempValue0, 162, TempValue1, 214)124if CheckResult > -1125KeyDown[0].Down = true126Object.HoldTimer++127if Object.HoldTimer == 8128Object.HoldTimer = 0129Object.Level++130if Object.Level > 69131Object.Level = 0132end if133end if134end if135if Engine.Message == MESSAGE_LOSTFOCUS136Object.TouchButton = 0137end if138TempValue0 = Screen.CenterX139TempValue0 += 28140TempValue1 = Screen.CenterX141TempValue1 += 68142CheckTouchRect(TempValue0, 162, TempValue1, 214)143if CheckResult > -1144Object.TouchButton = 1145else146CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)147if CheckResult < 0148if Object.TouchButton == 1149Object.TouchButton = 0150PlaySfx(SFX_G_SELECT, false)151Object.State = STAGESELECT_EXIT152end if153else154if Object.TouchButton == 1155Object.TouchButton = 0156end if157end if158end if159TempValue0 += 48160TempValue1 += 48161CheckTouchRect(TempValue0, 162, TempValue1, 214)162if CheckResult > -1163Object.TouchButton = 2164else165CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)166if CheckResult < 0167if Object.TouchButton == 2168Object.TouchButton = 0169PlaySfx(SFX_G_SELECT, false)170Object.State = STAGESELECT_LOAD_LEVEL171end if172else173if Object.TouchButton == 2174Object.TouchButton = 0175end if176end if177end if178end if179#endplatform180181#platform: Use_Standalone182#platform: Mobile183TempValue0 = Screen.CenterX184TempValue0 -= 138185TempValue1 = Screen.CenterX186TempValue1 -= 76187CheckTouchRect(TempValue0, 20, TempValue1, 72)188if CheckResult > -1189KeyDown[0].Up = true190Object.HoldTimer++191if Object.HoldTimer == 8192Object.HoldTimer = 0193Object.Level--194if Object.Level < 0195Object.Level = 69196end if197end if198end if199200CheckTouchRect(TempValue0, 162, TempValue1, 214)201if CheckResult > -1202KeyDown[0].Down = true203Object.HoldTimer++204if Object.HoldTimer == 8205Object.HoldTimer = 0206Object.Level++207if Object.Level > 69208Object.Level = 0209end if210end if211end if212213if Engine.Message == MESSAGE_LOSTFOCUS214Object.TouchButton = 0215end if216TempValue0 = Screen.CenterX217TempValue0 += 28218TempValue1 = Screen.CenterX219TempValue1 += 68220CheckTouchRect(TempValue0, 162, TempValue1, 214)221if CheckResult > -1222Object.TouchButton = 1223else224CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)225if CheckResult < 0226if Object.TouchButton == 1227Object.TouchButton = 0228PlaySfx(SFX_G_SELECT, false)229Object.State = STAGESELECT_EXIT230end if231else232if Object.TouchButton == 1233Object.TouchButton = 0234end if235end if236end if237TempValue0 += 48238TempValue1 += 48239CheckTouchRect(TempValue0, 162, TempValue1, 214)240if CheckResult > -1241Object.TouchButton = 2242else243CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)244if CheckResult < 0245if Object.TouchButton == 2246Object.TouchButton = 0247PlaySfx(SFX_G_SELECT, false)248Object.State = STAGESELECT_LOAD_LEVEL249end if250else251if Object.TouchButton == 2252Object.TouchButton = 0253end if254end if255end if256#endplatform257#endplatform258break259260case STAGESELECT_LOAD_LEVEL261if Object.Fade < 288262Object.Fade += 8263else264Options.GameMode = MODE_NOSAVE265Player.Lives = 3266Stage.ActiveList = REGULAR_STAGE267Stage.ListPos = Object.Level268LoadStage()269end if270TempValue0 = Object.Fade271if TempValue0 > 255272TempValue0 = 255273end if274SetScreenFade(0, 0, 0, TempValue0)275break276277case STAGESELECT_EXIT278if Object.Fade < 288279Object.Fade += 8280else281Options.GameMode = MODE_NOSAVE282Stage.ActiveList = PRESENTATION_STAGE283Stage.ListPos = STAGE_P_MENU284LoadStage()285end if286TempValue0 = Object.Fade287if TempValue0 > 255288TempValue0 = 255289end if290SetScreenFade(0, 0, 0, TempValue0)291break292293end switch294end sub295296297sub ObjectDraw298TempValue0 = 0299while TempValue0 < 240300TempValue1 = 0301while TempValue1 < Screen.XSize302DrawSpriteScreenXY(15, TempValue1, TempValue0)303TempValue1 += 224304loop305TempValue0 += 48306loop307DrawSpriteScreenXY(16, Screen.CenterX, 80)308309TempValue0 = Screen.CenterX310TempValue0 -= 48311TempValue1 = Object.Level312TempValue1 /= 10313switch TempValue1314case 0315DrawSpriteScreenXY(1, TempValue0, 112)316break317case 1318DrawSpriteScreenXY(3, TempValue0, 112)319break320case 2321DrawSpriteScreenXY(4, TempValue0, 112)322break323case 3324DrawSpriteScreenXY(5, TempValue0, 112)325break326case 4327DrawSpriteScreenXY(6, TempValue0, 112)328break329case 5330DrawSpriteScreenXY(7, TempValue0, 112)331break332case 6333DrawSpriteScreenXY(8, TempValue0, 112)334break335end switch336TempValue0 += 8337DrawSpriteScreenXY(14, TempValue0, 112)338339TempValue0 += 8340TempValue1 = Object.Level341TempValue1 %= 10342TempValue1 >>= 2343TempValue1++344DrawSpriteScreenXY(TempValue1, TempValue0, 112)345346TempValue0 += 8347DrawSpriteScreenXY(14, TempValue0, 112)348349TempValue0 += 8350TempValue1 = Object.Level351TempValue1 %= 10352switch TempValue1353case 0354case 4355DrawSpriteScreenXY(10, TempValue0, 112)356break357358case 1359case 5360DrawSpriteScreenXY(11, TempValue0, 112)361break362363case 2364case 6365case 8366DrawSpriteScreenXY(12, TempValue0, 112)367break368369case 3370case 7371case 9372DrawSpriteScreenXY(13, TempValue0, 112)373break374375end switch376#platform: Use_Origins377if Engine.DeviceType == RETRO_MOBILE378TempValue0 -= 96379if KeyDown[0].Up == true380DrawSpriteScreenXY(18, TempValue0, 48)381else382DrawSpriteScreenXY(17, TempValue0, 48)383end if384if KeyDown[0].Down == true385DrawSpriteScreenXY(20, TempValue0, 192)386else387DrawSpriteScreenXY(19, TempValue0, 192)388end if389TempValue0 += 160390if Object.TouchButton == 1391DrawSpriteScreenXY(24, TempValue0, 192)392else393DrawSpriteScreenXY(23, TempValue0, 192)394end if395TempValue0 += 48396if Object.TouchButton == 2397DrawSpriteScreenXY(22, TempValue0, 192)398else399DrawSpriteScreenXY(21, TempValue0, 192)400end if401end if402#endplatform403404#platform: Use_Standalone405#platform: Mobile406TempValue0 -= 96407if KeyDown[0].Up == true408DrawSpriteScreenXY(18, TempValue0, 48)409else410DrawSpriteScreenXY(17, TempValue0, 48)411end if412413if KeyDown[0].Down == true414DrawSpriteScreenXY(20, TempValue0, 192)415else416DrawSpriteScreenXY(19, TempValue0, 192)417end if418419TempValue0 += 160420if Object.TouchButton == 1421DrawSpriteScreenXY(24, TempValue0, 192)422else423DrawSpriteScreenXY(23, TempValue0, 192)424end if425426TempValue0 += 48427if Object.TouchButton == 2428DrawSpriteScreenXY(22, TempValue0, 192)429else430DrawSpriteScreenXY(21, TempValue0, 192)431end if432#endplatform433#endplatform434end sub435436437sub ObjectStartup438LoadSpriteSheet("Secrets/SecretMenus.gif")439SpriteFrame(0, 0, 8, 16, 1, 49) // #0 - 0440SpriteFrame(0, 0, 8, 16, 10, 49) // #1 - 1441SpriteFrame(0, 0, 8, 16, 19, 49) // #2 - 2442SpriteFrame(0, 0, 8, 16, 28, 49) // #3 - 3443SpriteFrame(0, 0, 8, 16, 1, 66) // #4 - 4444SpriteFrame(0, 0, 8, 16, 10, 66) // #5 - 5445SpriteFrame(0, 0, 8, 16, 19, 66) // #6 - 6446SpriteFrame(0, 0, 8, 16, 28, 66) // #7 - 7447SpriteFrame(0, 0, 8, 16, 1, 83) // #8 - 8448SpriteFrame(0, 0, 8, 16, 10, 83) // #9 - 9449SpriteFrame(0, 0, 8, 16, 37, 49) // #10 - A450SpriteFrame(0, 0, 8, 16, 46, 49) // #11 - B451SpriteFrame(0, 0, 8, 16, 55, 49) // #12 - C452SpriteFrame(0, 0, 8, 16, 64, 49) // #13 - D453SpriteFrame(0, 0, 8, 16, 19, 83) // #14 - "-"454SpriteFrame(0, 0, 224, 48, 0, 0) // #15 - Background455SpriteFrame(-48, 0, 96, 16, 136, 66) // #16 - Stage Select456SpriteFrame(-10, -10, 20, 20, 136, 117) // #17 - Up Arrow457SpriteFrame(-10, -10, 20, 20, 136, 138) // #18 - Up Arrow Highlight458SpriteFrame(-10, -10, 20, 20, 157, 117) // #19 - Down Arrow459SpriteFrame(-10, -10, 20, 20, 157, 138) // #20 - Down Arrow Highlight460SpriteFrame(-20, -10, 40, 20, 159, 159) // #21 - GO Button461SpriteFrame(-20, -10, 40, 20, 159, 180) // #22 - GO Button Highlight462SpriteFrame(-20, -10, 40, 20, 200, 159) // #23 - Exit Button463SpriteFrame(-20, -10, 40, 20, 200, 180) // #24 - Exit Button Highlight464end sub465466467// ========================468// Editor Subs469// ========================470471sub RSDKDraw472DrawSprite(0)473end sub474475476sub RSDKLoad477LoadSpriteSheet("Secrets/SecretMenus.gif")478SpriteFrame(-48, 0, 96, 16, 136, 66) // #0 - Stage Select479480SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")481end sub482483484