Path: blob/main/Scripts/Menu/OptionsMenuH.txt
1319 views
//------------Sonic CD Options Menu Haptics Script------------//1//--------Scripted by Christian Whitehead 'The Taxman'--------//2//-------Unpacked By Rubberduckycooly's Script Unpacker-------//3//---This Object is normally only used by Mobile Data files---//45// Aliases6#alias Object.Value0 : Object.Timer7#alias Object.Value1 : Object.CurrentSelection8#alias Object.Value3 : Object.BGMDecreaseTimer9#alias Object.Value4 : Object.BGMIncreaseTimer10#alias Object.Value5 : Object.SFXDecreaseTimer11#alias Object.Value6 : Object.SFXIncreaseTimer12#alias Object.Value7 : Object.TouchDelay1314//Object[+ArrayPos0] can be the BlankObjects 63, 64, 65 and 66. Depending of the CurrentSelection value15#alias Object[+ArrayPos0].Value2 : Object.FlickerText1617//Object[+4] is Empty, only used to set the Maximum amount of options for the controls18#alias Object[+4].Value1 : Object.OptionCount1920//Object[33] is MenuHeading21#alias Object[33].State : MenuHeading.State22#alias Object[33].PropertyValue : MenuHeading.Header2324//Object[-1] is MenuWindow25#alias Object[-1].State : MenuWindow.State2627// Object[1] is a blank object just to share values28#alias Object[1].Value4 : Object.BackTouchPress2930// States31#alias 0 : OPTIONS_SETUP32#alias 1 : OPTIONS_CONTROLS33#alias 2 : OPTIONS_SELECTED34#alias 3 : OPTIONS_STAGE_LOAD35#alias 4 : OPTIONS_SETTINGS_SETUP36#alias 5 : OPTIONS_SETTINGS_POPIN37#alias 6 : OPTIONS_SETTINGS_CONTROLS38#alias 7 : OPTIONS_UNUSED39#alias 8 : OPTIONS_UNUSED240#alias 9 : OPTIONS_EXIT_SETTINGS41#alias 10 : OPTIONS_LEAVE_SUBMENU42#alias 11 : OPTIONS_EXIT43#alias 12 : OPTIONS_ENTER_ABOUT_MENU44#alias 13 : OPTIONS_ENTER_ABOUTMENU45#alias 14 : OPTIONS_ABOUTMENU_CONTROLS46#alias 15 : OPTIONS_EXIT_ABOUTMENU4748// Menu Window States49#alias 3 : MENUWINDOW_SHRINK5051// Menu Button States52#alias 1 : MENUBUTTON_BUTTONS_IN5354// Menu Heading States55#alias 1 : MENUHEADING_LEAVE_SCREEN5657// Menu Heading Property Values58#alias 5 : MAINMENU_HEADER5960// Ink Effects61#alias 2 : INK_ALPHA6263// Presentation Stages64#alias 6 : STAGE_P_HELP65#alias 7 : STAGE_P_STAFFCREDITS6667// Global SFX68#alias 23 : SFX_G_MENUBUTTON69#alias 27 : SFX_G_SELECT7071// Stage SFX72#alias 1 : SFX_S_BACKBUTTON7374// Languages75#alias 0 : LANG_ENGLISH76#alias 1 : LANG_FRENCH77#alias 2 : LANG_ITALIAN78#alias 3 : LANG_DEUTSCH79#alias 4 : LANG_SPANISH80#alias 5 : LANG_JAPANESE8182// Device Type83#alias 1 : RETRO_MOBILE8485// Callbacks86#alias 5 : CALLBACK_RETURNSTORE_SELECTED8788// SaveRAM Values89// 32 : SavedSettings90// 33 : BGM91// 34 : SFX92// 35 : Control Type93// 40 : Haptic9495// Function declarations96#function OptionsMenuH_DrawOptions9798function OptionsMenuH_DrawOptions99switch Object.FlickerText100case false101if ArrayPos0 == Object.CurrentSelection102DrawSpriteScreenFX(9, FX_INK, Object.XPos, Object.YPos)103TempValue0 = ArrayPos0104TempValue0 += 14105DrawSpriteScreenFX(TempValue0, FX_INK, Object.XPos, Object.YPos)106else107TempValue0 = ArrayPos0108TempValue0 += 10109DrawSpriteScreenFX(TempValue0, FX_INK, Object.XPos, Object.YPos)110end if111break112113case true114TempValue0 = Object.Timer115TempValue0 &= 3116TempValue0 >>= 1117DrawSpriteScreenFX(9, FX_INK, Object.XPos, Object.YPos)118if TempValue0 == 0119TempValue0 = ArrayPos0120TempValue0 += 14121DrawSpriteScreenFX(TempValue0, FX_INK, Object.XPos, Object.YPos)122end if123break124125end switch126127DrawSpriteScreenFX(8, FX_INK, Object.XPos, Object.YPos)128DrawSpriteScreenFX(ArrayPos0, FX_INK, Object.XPos, Object.YPos)129end function130131132sub ObjectMain133switch Object.State134case OPTIONS_SETUP135if Options.PhysicalControls == false136Object.CurrentSelection = -1137end if138139Object.XPos = Screen.CenterX140Object.XPos -= 126141142if Object.Timer < 256143Object.Alpha = Object.Timer144Object.Timer += 6145else146Object.Timer = 0147Object.Alpha = 255148Object.State++149end if150break151152case OPTIONS_CONTROLS153154if Options.PhysicalControls == true155if KeyPress[0].Up == true156Object.CurrentSelection--157if Object.CurrentSelection < 0158Object.CurrentSelection = 3159end if160PlaySfx(SFX_G_MENUBUTTON, false)161end if162163if KeyPress[0].Down == true164Object.CurrentSelection++165if Object.CurrentSelection > 3166Object.CurrentSelection = 0167end if168PlaySfx(SFX_G_MENUBUTTON, false)169end if170171CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)172if CheckResult > -1173Options.PhysicalControls = false174Object.CurrentSelection = -1175end if176else177CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)178TempValue3 = CheckResult179180TempValue0 = 0181CallFunction(LoadSaveMenu_CheckTouchSave)182if CheckResult > -1183Object.CurrentSelection = 0184else185if TempValue3 < 0186if Object.CurrentSelection == 0187KeyPress[0].Start = true188end if189else190if Object.CurrentSelection == 0191Object.CurrentSelection = -1192end if193end if194end if195196TempValue0 = 1197CallFunction(LoadSaveMenu_CheckTouchSave)198if CheckResult > -1199Object.CurrentSelection = 1200else201if TempValue3 < 0202if Object.CurrentSelection == 1203KeyPress[0].Start = true204end if205else206if Object.CurrentSelection == 1207Object.CurrentSelection = -1208end if209end if210end if211212TempValue0 = 2213CallFunction(LoadSaveMenu_CheckTouchSave)214if CheckResult > -1215Object.CurrentSelection = 2216else217if TempValue3 < 0218if Object.CurrentSelection == 2219KeyPress[0].Start = true220end if221else222if Object.CurrentSelection == 2223Object.CurrentSelection = -1224end if225end if226end if227228TempValue0 = 3229CallFunction(LoadSaveMenu_CheckTouchSave)230if CheckResult > -1231Object.CurrentSelection = 3232else233if TempValue3 < 0234if Object.CurrentSelection == 3235KeyPress[0].Start = true236end if237else238if Object.CurrentSelection == 3239Object.CurrentSelection = -1240end if241end if242end if243CallFunction(MenuHeading_CheckTouchBack)244245if KeyPress[0].Up == true246Object.CurrentSelection = 3247Options.PhysicalControls = true248end if249250if KeyPress[0].Down == true251Object.CurrentSelection = 0252Options.PhysicalControls = true253end if254end if255256CheckResult = false257if Object.CurrentSelection > -1258if KeyPress[0].Start == true259CheckResult = true260end if261if KeyPress[0].ButtonA == true262CheckResult = true263end if264end if265266if CheckResult == true267if Object.CurrentSelection < 4268ArrayPos0 = Object.CurrentSelection269Object.FlickerText = 1270Object.State++271switch Object.CurrentSelection272case 0273StopMusic()274break275case 1276break277case 2278StopMusic()279break280case 3281break282end switch283PlaySfx(SFX_G_SELECT, false)284end if285end if286287if KeyPress[0].ButtonB == true288Object.Timer = 248289Object.State = OPTIONS_EXIT290PlayStageSfx(SFX_S_BACKBUTTON, false)291end if292break293294case OPTIONS_SELECTED295if Object.Timer < 30296Object.Timer++297else298Object.Timer = 0299ArrayPos0 = Object.CurrentSelection300Object.FlickerText = 0301switch Object.CurrentSelection302case 0303Object.State = OPTIONS_STAGE_LOAD304break305306case 1307ReadSaveRAM()308if SaveRAM[32] == false309SaveRAM[33] = 100310SaveRAM[34] = 100311SaveRAM[35] = 0312SaveRAM[40] = true // Haptics313end if314315Object.State = OPTIONS_SETTINGS_SETUP316317Object.YPos = 40318Object.YPos *= Object.CurrentSelection319Object.YPos += Screen.CenterY320Object.YPos -= 87321break322323case 2324Object.State = OPTIONS_STAGE_LOAD325break326327case 3328Object.State = OPTIONS_ENTER_ABOUT_MENU329Object.YPos = 40330Object.YPos *= Object.CurrentSelection331Object.YPos += Screen.CenterY332Object.YPos -= 87333break334end switch335end if336break337338case OPTIONS_STAGE_LOAD339if Object.Timer < 320340Object.Timer += 8341else342switch Object.CurrentSelection343case 0344if Options.DevMenuFlag == true345Engine.State = RESET_GAME346else347#platform: Use_Standalone348Stage.ListPos = STAGE_P_HELP349#endplatform350#platform: Use_Origins351if Engine.DeviceType == RETRO_MOBILE352Stage.ListPos = STAGE_P_HELP353else354EngineCallback(CALLBACK_RETURNSTORE_SELECTED)355end if356#endplatform357LoadStage()358end if359break360361case 2362Stage.ListPos = STAGE_P_STAFFCREDITS363LoadStage()364break365366case 3 // Unused, seems to just be here to summon the Dev Menu though367Engine.State = RESET_GAME368break369end switch370end if371372TempValue0 = Object.Timer373if TempValue0 > 255374TempValue0 = 255375end if376SetScreenFade(0, 0, 0, TempValue0)377break378379case OPTIONS_SETTINGS_SETUP380TempValue0 = Screen.CenterY381TempValue0 -= 87382if Object.YPos > TempValue0383Object.YPos -= 8384if Object.YPos < TempValue0385Object.YPos = TempValue0386end if387else388Object.State++389Object.Alpha = 0390Object.OptionCount = 0391if Options.PhysicalControls == false392ArrayPos0 = Object.CurrentSelection393Object.OptionCount = -1394end if395end if396break397398case OPTIONS_SETTINGS_POPIN399if Object.Timer < 256400Object.Alpha = Object.Timer401Object.Timer += 8402else403Object.Timer = 0404Object.Alpha = 255405Object.State++406end if407break408case OPTIONS_SETTINGS_CONTROLS409ArrayPos0 = Object.CurrentSelection410if Options.PhysicalControls == true411if KeyPress[0].Up == true412Object.OptionCount--413PlaySfx(SFX_G_MENUBUTTON, false)414if Object.OptionCount < 0415Object.OptionCount = 3416end if417end if418if KeyPress[0].Down == true419Object.OptionCount++420PlaySfx(SFX_G_MENUBUTTON, false)421if Object.OptionCount > 3422Object.OptionCount = 0423end if424end if425switch Object.OptionCount426case 0 // BGM427if KeyPress[0].Left == true428Object.BGMDecreaseTimer = 10429SaveRAM[33] -= 10430if SaveRAM[33] < 0431SaveRAM[33] = 0432Engine.BGMVolume = SaveRAM[33]433else434Engine.BGMVolume = SaveRAM[33]435PlaySfx(SFX_G_MENUBUTTON, false)436end if437end if438439if KeyPress[0].Right == true440Object.BGMIncreaseTimer = 10441SaveRAM[33] += 10442if SaveRAM[33] > 100443SaveRAM[33] = 100444Engine.BGMVolume = SaveRAM[33]445else446Engine.BGMVolume = SaveRAM[33]447PlaySfx(SFX_G_MENUBUTTON, false)448end if449end if450break451452case 1 // SFX453if KeyPress[0].Left == true454Object.SFXDecreaseTimer = 10455SaveRAM[34] -= 10456if SaveRAM[34] < 0457SaveRAM[34] = 0458Engine.SFXVolume = SaveRAM[34]459else460PlaySfx(SFX_G_MENUBUTTON, false)461Engine.SFXVolume = SaveRAM[34]462end if463end if464465if KeyPress[0].Right == true466Object.SFXIncreaseTimer = 10467SaveRAM[34] += 10468if SaveRAM[34] > 100469SaveRAM[34] = 100470else471PlaySfx(SFX_G_MENUBUTTON, false)472Engine.SFXVolume = SaveRAM[34]473end if474end if475break476477case 2 // Control Type478if KeyPress[0].Left == true479SaveRAM[35]--480if SaveRAM[35] < 0481SaveRAM[35] = 1482end if483PlaySfx(SFX_G_MENUBUTTON, false)484end if485486if KeyPress[0].Right == true487SaveRAM[35]++488if SaveRAM[35] > 1489SaveRAM[35] = 0490end if491PlaySfx(SFX_G_MENUBUTTON, false)492end if493break494495case 3 // Haptics496if KeyPress[0].Left == true497SaveRAM[40]--498if SaveRAM[40] < false499SaveRAM[40] = true500HapticEffect(30, 0, 0, 0)501end if502PlaySfx(SFX_G_MENUBUTTON, false)503end if504505if KeyPress[0].Right == true506SaveRAM[40]++507if SaveRAM[40] > true508SaveRAM[40] = false509end if510PlaySfx(SFX_G_MENUBUTTON, false)511end if512break513end switch514515CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)516if CheckResult > -1517Options.PhysicalControls = false518Object.OptionCount = -1519end if520else521CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)522if CheckResult > -1523Object.TouchDelay++524Object.TouchDelay %= 24525else526Object.TouchDelay = 0527end if528529TempValue3 = CheckResult530TempValue0 = Screen.CenterX531TempValue0 += 16532TempValue1 = Screen.CenterX533TempValue1 += 48534CheckTouchRect(TempValue0, 70, TempValue1, 97)535if CheckResult > -1536Object.OptionCount = 3537Object.BGMDecreaseTimer = 10538if Object.TouchDelay == 23539SaveRAM[33] -= 10540if SaveRAM[33] < 0541SaveRAM[33] = 0542Engine.BGMVolume = SaveRAM[33]543else544Engine.BGMVolume = SaveRAM[33]545PlaySfx(SFX_G_MENUBUTTON, false)546end if547end if548else549if TempValue3 < 0550if Object.OptionCount == 3551Object.BGMDecreaseTimer = 0552SaveRAM[33] -= 10553if SaveRAM[33] < 0554SaveRAM[33] = 0555Engine.BGMVolume = SaveRAM[33]556else557Engine.BGMVolume = SaveRAM[33]558PlaySfx(SFX_G_MENUBUTTON, false)559end if560Object.OptionCount = -1561end if562else563if Object.OptionCount == 3564Object.OptionCount = -1565end if566end if567end if568CheckTouchRect(TempValue0, 99, TempValue1, 126)569if CheckResult > -1570Object.OptionCount = 4571Object.SFXDecreaseTimer = 10572if Object.TouchDelay == 23573SaveRAM[34] -= 10574if SaveRAM[34] < 0575SaveRAM[34] = 0576Engine.SFXVolume = SaveRAM[34]577else578Engine.SFXVolume = SaveRAM[34]579PlaySfx(SFX_G_MENUBUTTON, false)580end if581end if582else583if TempValue3 < 0584if Object.OptionCount == 4585Object.SFXDecreaseTimer = 0586SaveRAM[34] -= 10587if SaveRAM[34] < 0588SaveRAM[34] = 0589Engine.SFXVolume = SaveRAM[34]590else591Engine.SFXVolume = SaveRAM[34]592PlaySfx(SFX_G_MENUBUTTON, false)593end if594Object.OptionCount = -1595end if596else597if Object.OptionCount == 4598Object.OptionCount = -1599end if600end if601end if602603TempValue0 = Screen.CenterX604TempValue0 += 84605TempValue1 = Screen.CenterX606TempValue1 += 120607CheckTouchRect(TempValue0, 70, TempValue1, 97)608if CheckResult > -1609Object.OptionCount = 5610Object.BGMIncreaseTimer = 10611if Object.TouchDelay == 23612SaveRAM[33] += 10613if SaveRAM[33] > 100614SaveRAM[33] = 100615Engine.BGMVolume = SaveRAM[33]616else617Engine.BGMVolume = SaveRAM[33]618PlaySfx(SFX_G_MENUBUTTON, false)619end if620end if621else622if TempValue3 < 0623if Object.OptionCount == 5624Object.BGMIncreaseTimer = 0625SaveRAM[33] += 10626if SaveRAM[33] > 100627SaveRAM[33] = 100628Engine.BGMVolume = SaveRAM[33]629else630Engine.BGMVolume = SaveRAM[33]631PlaySfx(SFX_G_MENUBUTTON, false)632end if633Object.OptionCount = -1634end if635else636if Object.OptionCount == 5637Object.OptionCount = -1638end if639end if640end if641642CheckTouchRect(TempValue0, 99, TempValue1, 126)643if CheckResult > -1644Object.OptionCount = 6645Object.SFXIncreaseTimer = 10646if Object.TouchDelay == 23647SaveRAM[34] += 10648if SaveRAM[34] > 100649SaveRAM[34] = 100650Engine.SFXVolume = SaveRAM[34]651else652Engine.SFXVolume = SaveRAM[34]653PlaySfx(SFX_G_MENUBUTTON, false)654end if655end if656else657if TempValue3 < 0658if Object.OptionCount == 6659Object.SFXIncreaseTimer = 0660SaveRAM[34] += 10661if SaveRAM[34] > 100662SaveRAM[34] = 100663Engine.SFXVolume = SaveRAM[34]664else665Engine.SFXVolume = SaveRAM[34]666PlaySfx(SFX_G_MENUBUTTON, false)667end if668Object.OptionCount = -1669end if670else671if Object.OptionCount == 6672Object.OptionCount = -1673end if674end if675end if676677TempValue0 = Screen.CenterX678TempValue0 += 14679TempValue1 = Screen.CenterX680TempValue1 += 64681CheckTouchRect(TempValue0, 130, TempValue1, 158)682if CheckResult > -1683Object.OptionCount = 7684else685if TempValue3 < 0686if Object.OptionCount == 7687SaveRAM[35] = 0688PlaySfx(SFX_G_MENUBUTTON, false)689Object.OptionCount = -1690end if691else692if Object.OptionCount == 7693Object.OptionCount = -1694end if695end if696end if697698TempValue0 = Screen.CenterX699TempValue0 += 68700TempValue1 = Screen.CenterX701TempValue1 += 114702CheckTouchRect(TempValue0, 130, TempValue1, 158)703if CheckResult > -1704Object.OptionCount = 8705else706if TempValue3 < 0707if Object.OptionCount == 8708SaveRAM[35] = 1709PlaySfx(SFX_G_MENUBUTTON, false)710Object.OptionCount = -1711end if712else713if Object.OptionCount == 8714Object.OptionCount = -1715end if716end if717end if718719TempValue0 = Screen.CenterX720TempValue0 += 14721TempValue1 = Screen.CenterX722TempValue1 += 64723CheckTouchRect(TempValue0, 160, TempValue1, 188)724if CheckResult > -1725Object.OptionCount = 9726else727if TempValue3 < 0728if Object.OptionCount == 9729SaveRAM[40] = true730Engine.HapticsEnabled = true731PlaySfx(SFX_G_MENUBUTTON, false)732Object.OptionCount = -1733HapticEffect(30, 0, 0, 0)734end if735else736if Object.OptionCount == 9737Object.OptionCount = -1738end if739end if740end if741742TempValue0 = Screen.CenterX743TempValue0 += 68744TempValue1 = Screen.CenterX745TempValue1 += 114746CheckTouchRect(TempValue0, 160, TempValue1, 188)747if CheckResult > -1748Object.OptionCount = 10749else750if TempValue3 < 0751if Object.OptionCount == 10752SaveRAM[40] = false753Engine.HapticsEnabled = false754PlaySfx(SFX_G_MENUBUTTON, false)755Object.OptionCount = -1756end if757else758if Object.OptionCount == 10759Object.OptionCount = -1760end if761end if762end if763764TempValue0 = Screen.XSize765TempValue0 -= 96766CheckTouchRect(TempValue0, 192, Screen.XSize, Screen.YSize)767if CheckResult > -1768Object.OptionCount = 11769Object.BackTouchPress = true770else771Object.BackTouchPress = false772if TempValue3 < 0773if Object.OptionCount == 11774KeyPress[0].ButtonB = 1775end if776else777if Object.OptionCount == 11778Object.OptionCount = -1779end if780end if781end if782783if KeyPress[0].Up == true784Object.OptionCount = 2785Options.PhysicalControls = true786end if787788if KeyPress[0].Down == true789Object.OptionCount = 0790Options.PhysicalControls = true791end if792end if793794if KeyPress[0].ButtonB == true795Object.State = OPTIONS_EXIT_SETTINGS796Object.Timer = 248797Options.OriginalControls = SaveRAM[35]798Engine.HapticsEnabled = SaveRAM[40]799SaveRAM[32] = true800WriteSaveRAM()801PlayStageSfx(SFX_S_BACKBUTTON, false)802end if803break804805case OPTIONS_UNUSED806if Object.Timer < 30807Object.Timer++808else809Object.Timer = 0810Object.State++811end if812break813814case OPTIONS_UNUSED2815if Object.Timer > 0816Object.Timer -= 8817else818if Options.PhysicalControls == false819Object.CurrentSelection = -1820end if821Object.State = OPTIONS_CONTROLS822PlayMusic(0)823end if824825TempValue0 = Object.Timer826if TempValue0 > 255827TempValue0 = 255828end if829SetScreenFade(0, 0, 0, TempValue0)830break831832case OPTIONS_EXIT_SETTINGS833if Object.Timer > 0834Object.Alpha = Object.Timer835Object.Timer -= 8836else837Object.Alpha = 0838Object.State++839end if840break841842case OPTIONS_LEAVE_SUBMENU843TempValue0 = Object.CurrentSelection844TempValue0 *= 40845TempValue0 += Screen.CenterY846TempValue0 -= 87847848if Object.YPos < TempValue0849Object.YPos += 8850if Object.YPos > TempValue0851Object.YPos = TempValue0852end if853Object.Alpha = 0854else855if Options.PhysicalControls == false856Object.CurrentSelection = -1857end if858Object.State = OPTIONS_CONTROLS859Object.Alpha = 255860end if861break862863case OPTIONS_EXIT864if Object.Timer > 0865Object.Alpha = Object.Timer866Object.Timer -= 8867else868Object.Type = TypeName[Blank Object]869MenuWindow.State = MENUWINDOW_SHRINK870//All of this is MenuButton objects871Object[34].State = MENUBUTTON_BUTTONS_IN872Object[35].State = MENUBUTTON_BUTTONS_IN873Object[36].State = MENUBUTTON_BUTTONS_IN874Object[37].State = MENUBUTTON_BUTTONS_IN875Object[38].State = MENUBUTTON_BUTTONS_IN876Object[39].State = MENUBUTTON_BUTTONS_IN877Object[40].State = MENUBUTTON_BUTTONS_IN878Object[41].State = MENUBUTTON_BUTTONS_IN879Object[42].State = MENUBUTTON_BUTTONS_IN880//End881MenuHeading.State = MENUHEADING_LEAVE_SCREEN882MenuHeading.Header = MAINMENU_HEADER883end if884break885886case OPTIONS_ABOUTMENU_SETUP887TempValue0 = Screen.CenterY888TempValue0 -= 87889if Object.YPos > TempValue0890Object.YPos -= 8891if Object.YPos < TempValue0892Object.YPos = TempValue0893end if894else895TempValue0 = Object.EntityNo896TempValue0 += 10897ResetObjectEntity(TempValue0, TypeName[About Menu F], 0, 0, 0)898SetupMenu(MENU_1, 0, 3, 1)899GetVersionNumber(MENU_1, 1)900Object[+10].InkEffect = INK_ALPHA901Object.State++902Object.Alpha = 0903Object.OptionCount = 0904if Options.PhysicalControls == false905ArrayPos0 = Object.CurrentSelection906Object.OptionCount = -1907end if908end if909break910911case OPTIONS_ENTER_ABOUTMENU912if Object.Timer < 256913Object.Alpha = Object.Timer914Object.Timer += 8915else916Object.Timer = 0917Object.Alpha = 255918Object.State++919end if920break921922case OPTIONS_ABOUTMENU_CONTROLS923#platform: Mobile924CheckTouchRect(0, 0, Screen.XSize, Screen.YSize)925TempValue3 = CheckResult926TempValue0 = Screen.XSize927TempValue0 -= 96928CheckTouchRect(TempValue0, 192, Screen.XSize, Screen.YSize)929if CheckResult > -1930Object.OptionCount = 9931Object.BackTouchPress = true932else933Object.BackTouchPress = false934if TempValue3 < 0935if Object.OptionCount == 9936KeyPress[0].ButtonB = true937end if938else939if Object.OptionCount == 9940Object.OptionCount = -1941end if942end if943end if944#endplatform945946if KeyPress[0].ButtonB == true947Object.State = OPTIONS_EXIT_ABOUTMENU948Object.Timer = 248949PlayStageSfx(SFX_S_BACKBUTTON, false)950end if951break952953case OPTIONS_EXIT_ABOUTMENU954if Object.Timer > 0955Object.Alpha = Object.Timer956Object.Timer -= 8957else958Object.Alpha = 0959Object.State = OPTIONS_LEAVE_SUBMENU960Object[+10].Type = TypeName[Blank Object]961end if962break963964end switch965end sub966967968sub ObjectDraw969switch Object.State970case OPTIONS_SETUP971case OPTIONS_CONTROLS972case OPTIONS_SELECTED973case OPTIONS_STAGE_LOAD974case OPTIONS_UNUSED2975case OPTIONS_EXIT976Object.YPos = Screen.CenterY977Object.YPos -= 87978ArrayPos0 = 0979CallFunction(OptionsMenuH_DrawOptions)980Object.YPos += 40981ArrayPos0++982CallFunction(OptionsMenuH_DrawOptions)983Object.YPos += 40984ArrayPos0++985CallFunction(OptionsMenuH_DrawOptions)986Object.YPos += 40987ArrayPos0++988CallFunction(OptionsMenuH_DrawOptions)989break990991case OPTIONS_SETTINGS_SETUP992case OPTIONS_ENTER_ABOUT_MENU993ArrayPos0 = Object.CurrentSelection994CallFunction(OptionsMenuH_DrawOptions)995break996997case OPTIONS_SETTINGS_POPIN998case OPTIONS_SETTINGS_CONTROLS999case OPTIONS_EXIT_SETTINGS1000case OPTIONS_LEAVE_SUBMENU1001ArrayPos0 = Object.CurrentSelection1002TempValue0 = Screen.CenterX1003TempValue0 += 231004if Object.OptionCount == 71005DrawSpriteScreenFX(40, FX_INK, TempValue0, 135)1006else1007DrawSpriteScreenFX(29, FX_INK, TempValue0, 135)1008end if1009TempValue0 += 531010if Object.OptionCount == 81011DrawSpriteScreenFX(41, FX_INK, TempValue0, 135)1012else1013DrawSpriteScreenFX(30, FX_INK, TempValue0, 135)1014end if1015TempValue0 = Screen.CenterX1016TempValue0 += 231017if Object.OptionCount == 91018DrawSpriteScreenFX(46, FX_INK, TempValue0, 164)1019else1020DrawSpriteScreenFX(44, FX_INK, TempValue0, 164)1021end if1022TempValue0 += 531023if Object.OptionCount == 101024DrawSpriteScreenFX(47, FX_INK, TempValue0, 164)1025else1026DrawSpriteScreenFX(45, FX_INK, TempValue0, 164)1027end if1028TempValue0 = Screen.CenterX1029if SaveRAM[40] == true1030TempValue0 += 181031else1032TempValue0 += 711033end if1034DrawSpriteScreenFX(39, FX_INK, TempValue0, 161)1035TempValue0 = Screen.CenterX1036TempValue0 -= 1171037if Options.PhysicalControls == true1038switch Object.OptionCount1039case 01040DrawSpriteScreenFX(32, FX_INK, TempValue0, 79)1041DrawSpriteScreenFX(33, FX_INK, TempValue0, 108)1042DrawSpriteScreenFX(35, FX_INK, TempValue0, 132)1043DrawSpriteScreenFX(42, FX_INK, TempValue0, 167)1044break10451046case 11047DrawSpriteScreenFX(31, FX_INK, TempValue0, 79)1048DrawSpriteScreenFX(34, FX_INK, TempValue0, 108)1049DrawSpriteScreenFX(35, FX_INK, TempValue0, 132)1050DrawSpriteScreenFX(42, FX_INK, TempValue0, 167)1051break10521053case 21054DrawSpriteScreenFX(31, FX_INK, TempValue0, 79)1055DrawSpriteScreenFX(33, FX_INK, TempValue0, 108)1056DrawSpriteScreenFX(36, FX_INK, TempValue0, 132)1057DrawSpriteScreenFX(42, FX_INK, TempValue0, 167)1058break10591060case 31061DrawSpriteScreenFX(31, FX_INK, TempValue0, 79)1062DrawSpriteScreenFX(33, FX_INK, TempValue0, 108)1063DrawSpriteScreenFX(35, FX_INK, TempValue0, 132)1064DrawSpriteScreenFX(43, FX_INK, TempValue0, 167)1065break10661067end switch1068else1069DrawSpriteScreenFX(31, FX_INK, TempValue0, 79)1070DrawSpriteScreenFX(33, FX_INK, TempValue0, 108)1071DrawSpriteScreenFX(35, FX_INK, TempValue0, 132)1072DrawSpriteScreenFX(42, FX_INK, TempValue0, 167)1073end if10741075//Controls Drawing1076if SaveRAM[35] == 01077DrawSpriteScreenFX(37, FX_INK, TempValue0, 148)1078TempValue0 += 1351079DrawSpriteScreenFX(39, FX_INK, TempValue0, 132)1080else1081DrawSpriteScreenFX(38, FX_INK, TempValue0, 148)1082TempValue0 += 1881083DrawSpriteScreenFX(39, FX_INK, TempValue0, 132)1084end if10851086//BGM Drawing1087TempValue1 = Screen.CenterX1088TempValue1 += 231089if Object.BGMDecreaseTimer > 01090Object.BGMDecreaseTimer--1091DrawSpriteScreenFX(5, FX_INK, TempValue1, 74)1092else1093DrawSpriteScreenFX(4, FX_INK, TempValue1, 74)1094end if10951096TempValue1 += 661097if Object.BGMIncreaseTimer > 01098Object.BGMIncreaseTimer--1099DrawSpriteScreenFX(7, FX_INK, TempValue1, 74)1100else1101DrawSpriteScreenFX(6, FX_INK, TempValue1, 74)1102end if11031104TempValue1 -= 421105DrawSpriteScreenFX(18, FX_INK, TempValue1, 74)1106TempValue0 = SaveRAM[33]1107TempValue0 /= 101108TempValue0 += 181109DrawSpriteScreenFX(TempValue0, FX_INK, TempValue1, 74)11101111//SFX Drawing1112TempValue1 = Screen.CenterX1113TempValue1 += 231114if Object.SFXDecreaseTimer > 01115Object.SFXDecreaseTimer--1116DrawSpriteScreenFX(5, FX_INK, TempValue1, 103)1117else1118DrawSpriteScreenFX(4, FX_INK, TempValue1, 103)1119end if1120TempValue1 += 661121if Object.SFXIncreaseTimer > 01122Object.SFXIncreaseTimer--1123DrawSpriteScreenFX(7, FX_INK, TempValue1, 103)1124else1125DrawSpriteScreenFX(6, FX_INK, TempValue1, 103)1126end if1127TempValue1 -= 421128DrawSpriteScreenFX(18, FX_INK, TempValue1, 103)1129TempValue0 = SaveRAM[34]1130TempValue0 /= 101131TempValue0 += 181132DrawSpriteScreenFX(TempValue0, FX_INK, TempValue1, 103)1133Object.Alpha = 2551134CallFunction(OptionsMenuH_DrawOptions)1135break11361137case OPTIONS_ENTER_ABOUTMENU1138case OPTIONS_ABOUTMENU_CONTROLS1139case OPTIONS_EXIT_ABOUTMENU1140ArrayPos0 = Object.CurrentSelection1141Object.Alpha = 2551142CallFunction(OptionsMenuH_DrawOptions)1143break11441145end switch11461147end sub114811491150sub ObjectStartup1151switch Engine.Language1152case LANG_ENGLISH1153LoadSpriteSheet("Menu/MenuGfx2_EN.gif")1154break1155case LANG_FRENCH1156LoadSpriteSheet("Menu/MenuGfx2_FR.gif")1157break1158case LANG_ITALIAN1159LoadSpriteSheet("Menu/MenuGfx2_IT.gif")1160break1161case LANG_DEUTSCH1162LoadSpriteSheet("Menu/MenuGfx2_DE.gif")1163break1164case LANG_SPANISH1165LoadSpriteSheet("Menu/MenuGfx2_ES.gif")1166break1167case LANG_JAPANESE1168LoadSpriteSheet("Menu/MenuGfx2_JP.gif")1169break1170end switch11711172if SaveRAM[32] == false1173SaveRAM[33] = 1001174SaveRAM[34] = 1001175SaveRAM[35] = 01176SaveRAM[40] = true1177end if1178Options.OriginalControls = SaveRAM[35]1179Engine.HapticsEnabled = SaveRAM[40]1180SpriteFrame(4, 2, 32, 32, 479, 34) // #0 - Gear1181SpriteFrame(4, 2, 32, 32, 479, 34) // #1 - Gear Again1182SpriteFrame(4, 2, 32, 32, 479, 34) // #2 - Why is this a Gear again1183SpriteFrame(4, 2, 32, 32, 479, 34) // #3 - Please Stop.1184SpriteFrame(0, 0, 20, 20, 168, 366) // #4 - Decrease button1185SpriteFrame(0, 0, 20, 20, 168, 387) // #5 - Decrease button Highlight1186SpriteFrame(0, 0, 20, 20, 189, 366) // #6 - Increase button1187SpriteFrame(0, 0, 20, 20, 189, 387) // #7 - Increase button Highlight1188SpriteFrame(45, 12, 13, 13, 488, 1) // #8 - Triangle detail1189SpriteFrame(0, 0, 250, 37, 259, 421) // #9 - Selection Border11901191if Options.DevMenuFlag == true1192SpriteFrame(64, 12, 66, 16, 259, 598) // #10 - Dev Menu1193else1194SpriteFrame(64, 12, 128, 16, 1, 188) // #10 - Instructions1195end if11961197SpriteFrame(64, 12, 128, 16, 1, 205) // #11 - Settings1198SpriteFrame(64, 12, 128, 16, 1, 222) // #12 - Staff Credits1199SpriteFrame(64, 12, 128, 16, 1, 239) // #13 - About12001201if Options.DevMenuFlag == true1202SpriteFrame(64, 12, 66, 16, 326, 598) // #14 - Dev Menu Highlight1203else1204SpriteFrame(64, 12, 128, 16, 130, 188) // #14 - Instructions Highlight1205end if12061207SpriteFrame(64, 12, 128, 16, 130, 205) // #15 - Settings Highlight1208SpriteFrame(64, 12, 128, 16, 130, 222) // #16 - Staff Credits Highlight1209SpriteFrame(64, 12, 128, 16, 130, 239) // #17 - About Highlight1210SpriteFrame(0, 0, 38, 20, 171, 324) // #18 - Minimal Volume1211SpriteFrame(0, 0, 4, 20, 171, 345) // #19 - Volume Bar 11212SpriteFrame(0, 0, 8, 20, 171, 345) // #20 - Volume Bar 21213SpriteFrame(0, 0, 12, 20, 171, 345) // #21 - Volume Bar 31214SpriteFrame(0, 0, 16, 20, 171, 345) // #22 - Volume Bar 41215SpriteFrame(0, 0, 20, 20, 171, 345) // #23 - Volume Bar 51216SpriteFrame(0, 0, 24, 20, 171, 345) // #24 - Volume Bar 61217SpriteFrame(0, 0, 28, 20, 171, 345) // #25 - Volume Bar 71218SpriteFrame(0, 0, 32, 20, 171, 345) // #26 - Volume Bar 81219SpriteFrame(0, 0, 36, 20, 171, 345) // #27 - Volume Bar 91220SpriteFrame(0, 0, 38, 20, 171, 345) // #28 - Volume Bar 101221SpriteFrame(0, 0, 33, 20, 330, 557) // #29 - S2 Spin Dash Icon1222SpriteFrame(0, 0, 33, 20, 364, 557) // #30 - CD Spin Dash Icon1223SpriteFrame(0, 0, 128, 16, 1, 256) // #31 - Music1224SpriteFrame(0, 0, 128, 16, 130, 256) // #32 - Music Highlight1225SpriteFrame(0, 0, 128, 16, 1, 273) // #32 - SFX1226SpriteFrame(0, 0, 128, 16, 130, 273) // #33 - SFX Highlight1227SpriteFrame(0, 0, 128, 16, 1, 307) // #34 - Spin Dash1228SpriteFrame(0, 0, 128, 16, 130, 307) // #35 - Spin Dash Highlight1229SpriteFrame(0, 0, 88, 8, 259, 44) // #36 - Genesis1230SpriteFrame(0, 0, 88, 8, 259, 35) // #37 - Original1231SpriteFrame(0, 0, 43, 26, 430, 525) // #38 - Icon Border1232SpriteFrame(0, 0, 33, 20, 398, 557) // #39 - S2 Spin Dash Icon1233SpriteFrame(0, 0, 33, 20, 432, 557) // #40 - CD Spin Dash Icon1234SpriteFrame(0, 0, 128, 16, 162, 615) // #41 - Haptic1235SpriteFrame(0, 0, 128, 16, 162, 632) // #42 - Haptic Highlight1236SpriteFrame(0, 0, 33, 20, 330, 578) // #43 - On1237SpriteFrame(0, 0, 33, 20, 364, 578) // #44 - Off1238SpriteFrame(0, 0, 33, 20, 398, 578) // #45 - On Highlight1239SpriteFrame(0, 0, 33, 20, 432, 578) // #46 - Off Highlight1240end sub124112421243// ========================1244// Editor Subs1245// ========================12461247sub RSDKDraw1248DrawSprite(0)1249end sub125012511252sub RSDKLoad1253LoadSpriteSheet("Menu/MenuGfx2_EN.gif")1254SpriteFrame(16, 0, 90, 30, 71, 677) // Options12551256SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")1257end sub125812591260