Path: blob/main/Scripts/Global/PauseMenu.txt
1319 views
//-----------------Sonic CD Pause Menu Script-----------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//34// Aliases5#alias Object.PropertyValue : Object.TimerThreshold6#alias Object.Value0 : Object.Timer7#alias Object.Value1 : Object.SelectedButton8#alias Object.Value2 : Object.SpritesXPos9#alias Object.Value3 : Object.BlackBarXPos10#alias Object.Value4 : Object.BlackBarYPos11#alias Object.Value5 : Object.BlackBarHeight12#alias Object.Value6 : Object.BlockRestart1314// States15#alias 0 : PAUSEMENU_START_PAUSE16#alias 1 : PAUSEMENU_SLIDE_IN17#alias 2 : PAUSEMENU_SPRITES_FADE_IN18#alias 3 : PAUSEMENU_CONTROLS19#alias 4 : PAUSEMENU_CONFIRMED20#alias 5 : PAUSEMENU_RESUME_GAME21#alias 6 : PAUSEMENU_EXIT_LEVEL // Not the best name but is essentially what will happen here2223// Ink24#alias 2 : INK_ALPHA2526// Player27#alias 1 : PLAYER_TAILS_A2829// Languages30#alias 0 : LANG_ENGLISH31#alias 1 : LANG_FRENCH32#alias 2 : LANG_ITALIAN33#alias 3 : LANG_DEUTSCH34#alias 4 : LANG_SPANISH35#alias 5 : LANG_JAPANESE3637// Game Mode Aliases38#alias 2 : MODE_TIMEATTACK3940// Presentation Stages41#alias 0 : STAGE_P_TITLE42#alias 2 : STAGE_P_TATTACK4344// Global SFX45#alias 23 : SFX_G_MENUBUTTON46#alias 24 : SFX_G_FLYING47#alias 27 : SFX_G_SELECT4849// Engine & Callbacks50#alias 2 : MESSAGE_LOSTFOCUS51#alias 3 : MESSAGE_YES_SELECTED52#alias 4 : MESSAGE_NO_SELECTED5354#alias 6 : CALLBACK_RESTART_SELECTED55#alias 7 : CALLBACK_EXIT_SELECTED56#alias 8 : CALLBACK_BUY_FULL_GAME_SELECTED575859sub ObjectMain60switch Object.State61case PAUSEMENU_START_PAUSE62PauseMusic()63Object.XPos = Screen.XSize64Object.BlackBarXPos = 065Object.Timer = 066Object.InkEffect = INK_ALPHA67Object.Alpha = 068switch Engine.Language69case LANG_ENGLISH70case LANG_JAPANESE71Object.TimerThreshold = 1272break7374case LANG_FRENCH75Object.TimerThreshold = 1576break7778case LANG_ITALIAN79case LANG_DEUTSCH80case LANG_SPANISH81Object.TimerThreshold = 1382break8384end switch8586if Player.Lives < 287Object.BlockRestart = true88else8990#platform: Use_Origins91if Stage.ActiveList == 392Object.BlockRestart = true93else94Object.BlockRestart = false95end if96#endplatform9798#platform: Use_Standalone99if Stage.ActiveList == SPECIAL_STAGE100Object.BlockRestart = true101else102Object.BlockRestart = false103end if104#endplatform105106end if107108#platform: Use_Origins109Options.PhysicalControls = true110#endplatform111112#platform: Use_Haptics113HapticEffect(-1, 0, 0, 0)114#endplatform115116#platform: Mobile117if Options.TouchControls == true118Object.SelectedButton = -1119Options.PhysicalControls = false120else121Options.PhysicalControls = true122end if123#endplatform124125Object.State++126break127128case PAUSEMENU_SLIDE_IN129Object.BlackBarXPos = Object.Timer130Object.BlackBarXPos *= Screen.XSize131Object.BlackBarXPos /= 12132133Object.BlackBarYPos = Object.Timer134Object.BlackBarYPos *= 240135Object.BlackBarYPos /= 12136137TempValue0 = Object.Timer138TempValue0 <<= 7139TempValue0 /= 12140Object.XPos = Screen.XSize141Object.XPos -= TempValue0142143if Object.Timer < Object.TimerThreshold144Object.Timer++145else146PauseMusic()147Object.SpritesXPos = Object.XPos148Object.SpritesXPos += 48149Object.Timer = 0150Object.State++151end if152break153154case PAUSEMENU_SPRITES_FADE_IN155if Object.Timer < 256156Object.Timer += 16157if Object.Timer < 255158Object.Alpha = Object.Timer159else160Object.Alpha = 255161end if162else163Object.Timer = 0164Object.Alpha = 255165Object.State++166end if167break168169case PAUSEMENU_CONTROLS170#platform: Standard171CheckResult = true172#endplatform173174#platform: Mobile175CheckEqual(Options.PhysicalControls, true)176#endplatform177178#platform: Use_Origins179Menu.ExitFlag = true180CheckEqual(Options.PhysicalControls, true)181#endplatform182183// 2011 Steam lacks Options.PhysicalControls, so we force it here first and the other platforms can override it184if CheckResult == true185if KeyPress[0].Up == true186PlaySfx(SFX_G_MENUBUTTON, false)187188Object.Timer = 0189Object.AnimationTimer = 0190Object.Frame = 0191Object.SpritesXPos = Screen.XSize192Object.SelectedButton--193194if Options.DevMenuFlag == true195if Object.SelectedButton < 0196Object.SelectedButton = 3197end if198else199if Object.SelectedButton < 0200if Engine.TrialMode == true201Object.SelectedButton = 3202else203Object.SelectedButton = 2204endif205end if206end if207208if Object.BlockRestart == true209if Object.SelectedButton == 1210Object.SelectedButton--211end if212end if213end if214215if KeyPress[0].Down == true216PlaySfx(SFX_G_MENUBUTTON, false)217218Object.Timer = 0219Object.AnimationTimer = 0220Object.Frame = 0221Object.SpritesXPos = Screen.XSize222Object.SelectedButton++223224if Options.DevMenuFlag == true225if Object.SelectedButton > 3226Object.SelectedButton = 0227end if228else229if Engine.TrialMode == true230if Object.SelectedButton > 3231Object.SelectedButton = 0232endif233else234if Object.SelectedButton > 2235Object.SelectedButton = 0236endif237endif238end if239240if Object.BlockRestart == true241if Object.SelectedButton == 1242Object.SelectedButton++243end if244end if245end if246247if KeyPress[0].Start == true248PlaySfx(SFX_G_SELECT, false)249250Object.State = PAUSEMENU_CONFIRMED251Object.Alpha = 248252Object.Timer = 0253end if254255if KeyPress[0].ButtonA == true256PlaySfx(SFX_G_SELECT, false)257258Object.State = PAUSEMENU_CONFIRMED259Object.Alpha = 248260Object.Timer = 0261end if262263CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)264if CheckResult > -1265266#platform: Use_Origins267Options.PhysicalControls = false268Object.SelectedButton = -1269#endplatform270271#platform: Mobile272Options.PhysicalControls = false273Object.SelectedButton = -1274#endplatform275276end if277else278if Engine.Message == MESSAGE_LOSTFOCUS279Object.SelectedButton = -1280end if281282CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)283TempValue3 = CheckResult284CheckTouchRect(TempValue0, 32, Screen.XSize, 64)285if CheckResult > -1286Object.SelectedButton = 0287else288if TempValue3 < 0289if Object.SelectedButton == 0290PlaySfx(SFX_G_SELECT, false)291292Object.State = PAUSEMENU_CONFIRMED293Object.Alpha = 248294Object.Timer = 0295end if296else297if Object.SelectedButton == 0298Object.SelectedButton = -1299end if300end if301end if302303if Object.BlockRestart == false304CheckTouchRect(TempValue0, 80, Screen.XSize, 112)305if CheckResult > -1306Object.SelectedButton = 1307else308if TempValue3 < 0309if Object.SelectedButton == 1310PlaySfx(SFX_G_SELECT, false)311312Object.State = PAUSEMENU_CONFIRMED313Object.Alpha = 248314Object.Timer = 0315end if316else317if Object.SelectedButton == 1318Object.SelectedButton = -1319end if320end if321end if322end if323324CheckTouchRect(TempValue0, 128, Screen.XSize, 160)325if CheckResult > -1326Object.SelectedButton = 2327else328if TempValue3 < 0329if Object.SelectedButton == 2330PlaySfx(SFX_G_SELECT, false)331332Object.State = PAUSEMENU_CONFIRMED333Object.Alpha = 248334Object.Timer = 0335end if336else337if Object.SelectedButton == 2338Object.SelectedButton = -1339end if340end if341end if342343if Options.DevMenuFlag == true344CheckTouchRect(TempValue0, 176, Screen.XSize, 208)345if CheckResult > -1346Object.SelectedButton = 3347else348if TempValue3 < 0349if Object.SelectedButton == 3350PlaySfx(SFX_G_SELECT, false)351352Object.State = PAUSEMENU_CONFIRMED353Object.Alpha = 248354Object.Timer = 0355end if356else357if Object.SelectedButton == 3358Object.SelectedButton = -1359end if360end if361end if362end if363364if Engine.TrialMode == true365CheckTouchRect(TempValue0, 176, Screen.XSize, 208)366if CheckResult > -1367Object.SelectedButton = 3368else369if TempValue3 < 0370if Object.SelectedButton == 3371PlaySfx(SFX_G_SELECT, false)372373Object.State = PAUSEMENU_CONFIRMED374Object.Alpha = 248375Object.Timer = 0376end if377else378if Object.SelectedButton == 3379Object.SelectedButton = -1380end if381end if382end if383end if384385if KeyPress[0].Up == true386if Options.DevMenuFlag == true387Object.SelectedButton = 3388else389Object.SelectedButton = 2390end if391392#platform: Use_Origins393Options.PhysicalControls = true394#endplatform395396#platform: Mobile397Options.PhysicalControls = true398#endplatform399400end if401402if KeyPress[0].Down == true403Object.SelectedButton = 0404405#platform: Use_Origins406Options.PhysicalControls = true407#endplatform408409#platform: Mobile410Options.PhysicalControls = true411#endplatform412413end if414end if415416if Object.Timer < 60417Object.Timer++418else419Object.Frame = Object.AnimationTimer420Object.Frame >>= 4421Object.Frame++422423Object.AnimationTimer++424Object.AnimationTimer &= 31425end if426break427428case PAUSEMENU_CONFIRMED429Object.Timer++430Object.Timer &= 3431432Object.SpritesXPos += 4433if Object.Alpha > 0434Object.Alpha -= 8435else436if Object.SelectedButton == 0437Object.SpritesXPos = Object.XPos438Object.SpritesXPos += 48439Object.BlackBarYPos = 202440441Object.Timer = 0442Object.Alpha = 128443444Object.State = PAUSEMENU_RESUME_GAME445Stage.State = STAGE_RUNNING446else447// Blit/Origins method of this process448Object.SpritesXPos = Object.XPos449Object.SpritesXPos += 48450StopMusic()451Object.State = PAUSEMENU_EXIT_LEVEL452453//#platform: Mobile454// Old mobile method of this process455// if Engine.Message < MESSAGE_YES_SELECTED456// switch Object.SelectedButton457// case 1458// EngineCallback(CALLBACK_RESTART_SELECTED)459// break460// case 2461// EngineCallback(CALLBACK_EXIT_SELECTED)462// break463// case 3464// if Engine.TrialMode == false465// Object.SpritesXPos = Object.XPos466// Object.SpritesXPos += 48467// StopMusic()468// Object.State = PAUSEMENU_EXIT_LEVEL // Dev Menu469// else470// EngineCallback(CALLBACK_BUY_FULL_GAME_SELECTED) // Demo End471// Object.Timer = 0472// Object.AnimationTimer = 0473// Object.Frame = 0474// Object.SpritesXPos = Screen.XSize475// if Options.PhysicalControls == false476// Object.SelectedButton = -1477// end if478// Object.State = PAUSEMENU_CONTROLS479// Object.Alpha = 255480// end if481// break482// end switch483// else484// if Engine.Message == MESSAGE_NO_SELECTED485// Object.Timer = 0486// Object.AnimationTimer = 0487// Object.Frame = 0488// Object.SpritesXPos = Screen.XSize489// if Options.PhysicalControls == false490// Object.SelectedButton = -1491// end if492// Object.State = PAUSEMENU_CONTROLS493// Object.Alpha = 255494// else495// Object.SpritesXPos = Object.XPos496// Object.SpritesXPos += 48497// StopMusic()498// Object.State = PAUSEMENU_EXIT_LEVEL499// end if500// end if501//#endplatform502end if503end if504break505506case PAUSEMENU_RESUME_GAME507if Object.Alpha > 0508Object.Alpha -= 8509Object.XPos += 16510Object.SpritesXPos += 16511Object.BlackBarYPos += 16512else513ResumeMusic()514ResetObjectEntity(Object.EntityNo, TypeName[Blank Object], 0, 0, 0)515if Player.Animation == ANI_FLYING516PlaySfx(SFX_G_FLYING, true)517end if518519if Player.Animation == ANI_FLYINGTIRED520PlaySfx(SFX_G_FLYING, true)521end if522523if Engine.FrameSkipSetting > 0524Engine.FrameSkipTimer = 0525end if526end if527break528529case PAUSEMENU_EXIT_LEVEL530if Object.XPos > -64531Object.XPos -= 16532Object.SpritesXPos += 16533else534switch Object.SelectedButton535case 1 // Restart536LampPost.Check = 0537if Options.GameMode == MODE_TIMEATTACK538Player.Lives = 1539Player.Score = 0540else541Player.Lives--542end if543LoadStage()544break545case 2 // Exit546Good_Future_Count = 0547Good_Future_List = 0548549Good_Future = false550Transporter_Destroyed = false551MetalSonic_Destroyed = false552553Stage.ActiveList = PRESENTATION_STAGE554LampPost.Check = 0555556if Options.GameMode == MODE_TIMEATTACK557Stage.ListPos = STAGE_P_TATTACK558TimeAttack.Result = 0559else560Stage.ListPos = STAGE_P_TITLE561end if562LoadStage()563break564565case 3 // Dev Menu566TimeAttack.Round = -1567Engine.State = RESET_GAME568break569end switch570end if571break572end switch573end sub574575576sub ObjectDraw577SetActivePalette(0, 0, Screen.YSize)578579switch Object.State580case PAUSEMENU_START_PAUSE581case PAUSEMENU_SLIDE_IN582case PAUSEMENU_SPRITES_FADE_IN583// Pause White BG584if Object.BlackBarHeight < 240585if Object.BlackBarYPos > Object.BlackBarHeight586TempValue0 = Object.BlackBarYPos587TempValue0 -= Object.BlackBarHeight588DrawRect(0, Object.BlackBarHeight, 384, TempValue0, 255, 255, 255, 128)589Object.BlackBarHeight = Object.BlackBarYPos590end if591end if592// Fall-through593case PAUSEMENU_CONTROLS594DrawSpriteScreenXY(3, Object.XPos, 0)595DrawSpriteScreenXY(3, Object.XPos, 32)596DrawSpriteScreenXY(3, Object.XPos, 64)597DrawSpriteScreenXY(3, Object.XPos, 96)598DrawSpriteScreenXY(3, Object.XPos, 128)599DrawSpriteScreenXY(3, Object.XPos, 160)600DrawSpriteScreenXY(3, Object.XPos, 192)601DrawSpriteScreenXY(3, Object.XPos, 224)602603// Black Bar position604TempValue0 = Object.XPos605TempValue0 += 128606DrawRect(TempValue0, 0, 128, Screen.YSize, 0, 0, 0, 255)607DrawRect(0, 202, Object.BlackBarXPos, 13, 0, 0, 0, 255)608609DrawSpriteScreenFX(4, FX_INK, 0, 202)610TempValue0 = Object.XPos611TempValue0 += 48612613if Object.SpritesXPos > TempValue0614TempValue1 = TempValue0615TempValue1 -= Object.SpritesXPos616TempValue1 >>= 3617Object.SpritesXPos += TempValue1618end if619620TempValue1 = 48621DrawSpriteScreenFX(6, FX_INK, TempValue0, TempValue1)622if Object.SelectedButton == 0623DrawSpriteScreenFX(5, FX_INK, Object.SpritesXPos, TempValue1)624DrawSpriteScreenFX(Object.Frame, FX_INK, TempValue0, TempValue1)625end if626627TempValue1 += 48628if Object.BlockRestart == false629DrawSpriteScreenFX(7, FX_INK, TempValue0, TempValue1)630else631TempValue2 = Object.Alpha632Object.Alpha >>= 1633DrawSpriteScreenFX(7, FX_INK, TempValue0, TempValue1)634Object.Alpha = TempValue2635end if636637if Object.SelectedButton == 1638DrawSpriteScreenFX(5, FX_INK, Object.SpritesXPos, TempValue1)639DrawSpriteScreenFX(Object.Frame, FX_INK, TempValue0, TempValue1)640end if641642TempValue1 += 48643DrawSpriteScreenFX(8, FX_INK, TempValue0, TempValue1)644if Object.SelectedButton == 2645DrawSpriteScreenFX(5, FX_INK, Object.SpritesXPos, TempValue1)646DrawSpriteScreenFX(Object.Frame, FX_INK, TempValue0, TempValue1)647end if648649TempValue1 += 48650if Options.DevMenuFlag == true651DrawSpriteScreenFX(9, FX_INK, TempValue0, TempValue1)652if Object.SelectedButton == 3653DrawSpriteScreenFX(5, FX_INK, Object.SpritesXPos, TempValue1)654DrawSpriteScreenFX(Object.Frame, FX_INK, TempValue0, TempValue1)655end if656else657if Engine.TrialMode == true658DrawSpriteScreenFX(10, FX_INK, TempValue0, TempValue1)659if Object.SelectedButton == 3660DrawSpriteScreenFX(5, FX_INK, Object.SpritesXPos, TempValue1)661DrawSpriteScreenFX(Object.Frame, FX_INK, TempValue0, TempValue1)662end if663end if664end if665break666667case PAUSEMENU_CONFIRMED668DrawSpriteScreenXY(3, Object.XPos, 0)669DrawSpriteScreenXY(3, Object.XPos, 32)670DrawSpriteScreenXY(3, Object.XPos, 64)671DrawSpriteScreenXY(3, Object.XPos, 96)672DrawSpriteScreenXY(3, Object.XPos, 128)673DrawSpriteScreenXY(3, Object.XPos, 160)674DrawSpriteScreenXY(3, Object.XPos, 192)675DrawSpriteScreenXY(3, Object.XPos, 224)676677// Black Bar position678TempValue0 = Object.XPos679TempValue0 += 128680DrawRect(TempValue0, 0, 128, Screen.YSize, 0, 0, 0, 255)681682DrawRect(0, 202, Object.BlackBarXPos, 13, 0, 0, 0, 255)683DrawSpriteScreenXY(4, 0, 202)684685TempValue0 = Object.XPos686TempValue0 += 48687TempValue1 = 48688689if Object.SelectedButton == 0 // Continue690if Object.Timer < 2691DrawSpriteScreenXY(6, TempValue0, TempValue1)692end if693DrawSpriteScreenXY(5, Object.SpritesXPos, TempValue1)694DrawSpriteScreenXY(Object.Frame, TempValue0, TempValue1)695else696DrawSpriteScreenFX(6, FX_INK, TempValue0, TempValue1)697end if698699TempValue1 += 48700if Object.SelectedButton == 1 // Reset701if Object.Timer < 2702DrawSpriteScreenXY(7, TempValue0, TempValue1)703end if704DrawSpriteScreenXY(5, Object.SpritesXPos, TempValue1)705DrawSpriteScreenXY(Object.Frame, TempValue0, TempValue1)706else707if Object.BlockRestart == false708DrawSpriteScreenFX(7, FX_INK, TempValue0, TempValue1)709else710TempValue2 = Object.Alpha711Object.Alpha >>= 1712DrawSpriteScreenFX(7, FX_INK, TempValue0, TempValue1)713Object.Alpha = TempValue2714end if715end if716717TempValue1 += 48718if Object.SelectedButton == 2 // Exit719if Object.Timer < 2720DrawSpriteScreenXY(8, TempValue0, TempValue1)721end if722DrawSpriteScreenXY(5, Object.SpritesXPos, TempValue1)723DrawSpriteScreenXY(Object.Frame, TempValue0, TempValue1)724else725DrawSpriteScreenFX(8, FX_INK, TempValue0, TempValue1)726end if727728TempValue1 += 48729if Options.DevMenuFlag == true730if Object.SelectedButton == 3 // Dev Menu731if Object.Timer < 2732DrawSpriteScreenXY(9, TempValue0, TempValue1)733end if734DrawSpriteScreenXY(5, Object.SpritesXPos, TempValue1)735DrawSpriteScreenXY(Object.Frame, TempValue0, TempValue1)736else737DrawSpriteScreenFX(9, FX_INK, TempValue0, TempValue1)738end if739else740if Engine.TrialMode == true741if Object.SelectedButton == 3 // Buy Demo742if Object.Timer < 2743DrawSpriteScreenXY(10, TempValue0, TempValue1)744end if745DrawSpriteScreenXY(5, Object.SpritesXPos, TempValue1)746DrawSpriteScreenXY(Object.Frame, TempValue0, TempValue1)747else748DrawSpriteScreenFX(10, FX_INK, TempValue0, TempValue1)749end if750end if751end if752break753754case PAUSEMENU_RESUME_GAME755if Object.Alpha < 128756DrawRect(0, 0, Screen.XSize, 240, 255, 255, 255, Object.Alpha)757end if758759DrawSpriteScreenXY(3, Object.XPos, 0)760DrawSpriteScreenXY(3, Object.XPos, 32)761DrawSpriteScreenXY(3, Object.XPos, 64)762DrawSpriteScreenXY(3, Object.XPos, 96)763DrawSpriteScreenXY(3, Object.XPos, 128)764DrawSpriteScreenXY(3, Object.XPos, 160)765DrawSpriteScreenXY(3, Object.XPos, 192)766DrawSpriteScreenXY(3, Object.XPos, 224)767768// Black Bar position769TempValue0 = Object.XPos770TempValue0 += 128771DrawRect(TempValue0, 0, 128, Screen.YSize, 0, 0, 0, 255)772DrawRect(0, Object.BlackBarYPos, Screen.XSize, 13, 0, 0, 0, 255)773DrawSpriteScreenXY(4, 0, Object.BlackBarYPos)774775switch Object.SelectedButton776case 0 // Continue777DrawSpriteScreenXY(6, Object.SpritesXPos, 48)778DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 48)779break780case 1 // Reset781DrawSpriteScreenXY(6, Object.SpritesXPos, 96)782DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 96)783break784case 2 // Exit785DrawSpriteScreenXY(8, Object.SpritesXPos, 144)786DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 144)787break788case 3 // Dev Menu789if Options.DevMenuFlag == true790DrawSpriteScreenXY(9, Object.SpritesXPos, 192)791DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 192)792else793if Engine.TrialMode == true794DrawSpriteScreenXY(10, Object.SpritesXPos, 192)795DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 192)796end if797end if798break799end switch800break801802case PAUSEMENU_EXIT_LEVEL803804TempValue0 = Screen.XSize805TempValue0 -= 96806DrawRect(TempValue0, 0, 96, 240, 0, 0, 0, 255)807DrawSpriteScreenXY(3, Object.XPos, 0)808DrawSpriteScreenXY(3, Object.XPos, 32)809DrawSpriteScreenXY(3, Object.XPos, 64)810DrawSpriteScreenXY(3, Object.XPos, 96)811DrawSpriteScreenXY(3, Object.XPos, 128)812DrawSpriteScreenXY(3, Object.XPos, 160)813DrawSpriteScreenXY(3, Object.XPos, 192)814DrawSpriteScreenXY(3, Object.XPos, 224)815816// Black Bar position817TempValue0 = Object.XPos818TempValue0 += 128819DrawRect(TempValue0, 0, 128, Screen.YSize, 0, 0, 0, 255)820821switch Object.SelectedButton822case 0 // Continue823DrawSpriteScreenXY(6, Object.SpritesXPos, 48)824DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 48)825break826case 1 // Reset827DrawSpriteScreenXY(6, Object.SpritesXPos, 96)828DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 96)829break830case 2 // Exit831DrawSpriteScreenXY(8, Object.SpritesXPos, 144)832DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 144)833break834case 3 // Dev Menu835if Options.DevMenuFlag == true836DrawSpriteScreenXY(9, Object.SpritesXPos, 192)837DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 192)838else839if Engine.TrialMode == true840DrawSpriteScreenXY(10, Object.SpritesXPos, 192)841DrawSpriteScreenXY(Object.Frame, Object.SpritesXPos, 192)842end if843end if844break845end switch846break847endswitch848end sub849850851sub ObjectStartup852switch Engine.Language853case LANG_ENGLISH854case LANG_JAPANESE855LoadSpriteSheet("Global/Pause_EN.gif")856break857case LANG_FRENCH858LoadSpriteSheet("Global/Pause_FR.gif")859break860case LANG_ITALIAN861LoadSpriteSheet("Global/Pause_IT.gif")862break863case LANG_DEUTSCH864LoadSpriteSheet("Global/Pause_DE.gif")865break866case LANG_SPANISH867LoadSpriteSheet("Global/Pause_ES.gif")868break869end switch870871// if Stage.PlayerListPos == PLAYER_SONIC_A in Standalone872if Stage.PlayerListPos != PLAYER_TAILS_A // PLAYER_TAILS in origins873SpriteFrame(-28, -14, 16, 24, 1, 103) // #0 - Sonic874SpriteFrame(-28, -14, 16, 24, 18, 103) // #1 - Sonic Waiting Frame 0875SpriteFrame(-28, -14, 16, 24, 35, 103) // #2 - Sonic Waiting Frame 1876else877SpriteFrame(-28, -14, 16, 24, 52, 103) // #0 - Tails878SpriteFrame(-28, -14, 16, 24, 69, 103) // #1 - Tails Waiting Frame 0879SpriteFrame(-28, -14, 16, 24, 86, 103) // #2 - Tails Waiting Frame 1880end if881882SpriteFrame(0, 0, 128, 32, 0, 0) // #3 - Menu BG Section883SpriteFrame(0, -19, 128, 32, 0, 32) // #4 - Pause884SpriteFrame(-6, 7, 128, 3, 0, 65) // #5 - White Bar885886switch Engine.Language887case LANG_ENGLISH888case LANG_JAPANESE889SpriteFrame(0, -5, 65, 11, 0, 69) // #6 - Continue890SpriteFrame(0, -5, 55, 11, 0, 81) // #7 - Restart891SpriteFrame(0, -5, 30, 11, 66, 69) // #8 - Exit892SpriteFrame(0, -5, 64, 11, 56, 81) // #9 - Dev Menu893SpriteFrame(0, -5, 72, 11, 0, 92) // #10 - Full Game (Unused)894break895896case LANG_FRENCH897SpriteFrame(0, -5, 73, 11, 0, 69) // #6 - Continue898SpriteFrame(0, -5, 95, 11, 0, 81) // #7 - Restart899SpriteFrame(0, -5, 53, 11, 74, 69) // #8 - Exit900SpriteFrame(0, -5, 23, 11, 96, 81) // #9 - Dev Menu901SpriteFrame(0, -5, 72, 11, 0, 92) // #10 - Full Game (Unused)902break903904case LANG_ITALIAN905SpriteFrame(0, -5, 65, 11, 0, 69) // #6 - Continue906SpriteFrame(0, -5, 78, 11, 0, 81) // #7 - Restart907SpriteFrame(0, -5, 28, 11, 66, 69) // #8 - Exit908SpriteFrame(0, -5, 23, 11, 79, 81) // #9 - Dev Menu909SpriteFrame(0, -5, 72, 11, 0, 92) // #10 - Full Game (Unused)910break911912case LANG_DEUTSCH913SpriteFrame(0, -5, 48, 11, 0, 69) // #6 - Continue914SpriteFrame(0, -5, 65, 11, 0, 81) // #7 - Restart915SpriteFrame(0, -5, 71, 11, 49, 69) // #8 - Exit916SpriteFrame(0, -5, 23, 11, 66, 81) // #9 - Dev Menu917SpriteFrame(0, -5, 72, 11, 0, 92) // #10 - Full Game (Unused)918break919920case LANG_SPANISH921SpriteFrame(0, -5, 73, 11, 0, 69) // #6 - Continue922SpriteFrame(0, -5, 67, 11, 0, 81) // #7 - Restart923SpriteFrame(0, -5, 36, 11, 74, 69) // #8 - Exit924SpriteFrame(0, -5, 23, 11, 68, 81) // #9 - Dev Menu925SpriteFrame(0, -5, 55, 11, 0, 92) // #10 - Full Game (Unused)926break927928end switch929end sub930931932// ========================933// Editor Subs934// ========================935936sub RSDKDraw937TempValue1 = Object.YPos938939// Menu Draw940DrawSpriteXY(0, Object.XPos, TempValue1)941TempValue1 += 0x200000942943DrawSpriteXY(0, Object.XPos, TempValue1)944TempValue1 += 0x200000945946DrawSpriteXY(0, Object.XPos, TempValue1)947TempValue1 += 0x200000948949DrawSpriteXY(0, Object.XPos, TempValue1)950TempValue1 += 0x200000951952DrawSpriteXY(0, Object.XPos, TempValue1)953TempValue1 += 0x200000954955DrawSpriteXY(0, Object.XPos, TempValue1)956TempValue1 += 0x200000957958DrawSpriteXY(0, Object.XPos, TempValue1)959TempValue1 += 0x200000960961DrawSpriteXY(0, Object.XPos, TempValue1)962end sub963964965sub RSDKLoad966LoadSpriteSheet("Global/Pause_EN.gif")967SpriteFrame(0, 0, 128, 32, 0, 0) // #0 - Menu BG Section968969SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")970end sub971972973