Sonic CD Menu Button Script Guide
Sonic CD Menu Button Script Guide
// Aliases
#alias Object.Value0 : [Link]
#alias Object.Value1 : [Link]
#alias Object.Value2 : [Link]
#alias Object.Value3 : [Link]
#alias Object.Value4 : [Link]
#alias Object.Value5 : [Link]
// MenuHeading Aliases
#alias Object[33].State : [Link]
#alias Object[33].PropertyValue : [Link]
// MenuControl Aliases
#alias Object[0].State : [Link]
#alias Object[0].Value0 : [Link]
#alias Object[0].Value1 : [Link]
#alias Object[0].Value2 : [Link]
#alias Object[0].Value3 : [Link]
#alias Object[0].Value7 : [Link]
// MenuWindow Aliases
#alias Object[61].State : [Link]
#alias Object[61].XPos : [Link]
#alias Object[61].YPos : [Link]
#alias Object[61].Value1 : [Link]
#alias Object[61].Value2 : [Link]
#alias Object[61].Value3 : [Link]
#alias Object[61].Value4 : [Link]
#alias Object[61].Value5 : [Link]
// States
#alias 0 : MENUBUTTON_DELAY
#alias 1 : MENUBUTTON_BUTTONS_IN
#alias 2 : MENUBUTTON_CONFIRM_SELECTION
#alias 3 : MENUBUTTON_MENU_SELECTED
#alias 4 : MENUBUTTON_BUTTONS_OUT
#alias 5 : MENUBUTTON_BLANK
#alias 6 : MENUBUTTON_BLANK2
#alias 7 : MENUBUTTON_RESET
// Menus
#alias 1 : Menu_LoadSaveMenu
#alias 2 : Menu_TimeAttack
#alias 3 : Menu_Achievements
#alias 4 : Menu_LeaderBoards
#alias 5 : Menu_Help&Options
#alias 6 : Menu_Extras
#alias 7 : Menu_UnlockFullGame
#alias 8 : Menu_Store
#alias 9 : Menu_Exit
#alias 10 : Menu_Soundtrack
#alias 11 : Menu_MoreGames
// Ink Effects
#alias 2 : INK_ALPHA
// Priority
#alias 1 : PRIORITY_ACTIVE
// Languages
#alias 0 : LANG_ENGLISH
#alias 1 : LANG_FRENCH
#alias 2 : LANG_ITALIAN
#alias 3 : LANG_DEUTSCH
#alias 4 : LANG_SPANISH
#alias 5 : LANG_JAPANESE
// Global SFX
#alias 27 : SFX_G_SELECT
// Online Menus
#alias 0 : ONLINEMENU_ACHIEVEMENTS
#alias 1 : ONLINEMENU_LEADERBOARDS
// [Link] Aliases
#alias 0 : MAINMENUMODE_NONE // Starts with this, but gets swapped on
MenuButton
// Function declarations
#function MenuButton_SetupMenuWindow
function MenuButton_SetupMenuWindow
ResetObjectEntity(61, TypeName[Menu Window], 0, [Link], [Link])
[Link] += 0x480000
[Link] = 144
[Link] = 21
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
end function
sub ObjectMain
[Link] = [Link]
[Link]--
[Link] *= 60
[Link] += [Link]
TempValue0 = [Link]
TempValue0 -= 160
[Link] = [Link]
[Link] *= 54
[Link] /= 60
[Link] -= 16
[Link] += TempValue0
switch [Link]
case MENUBUTTON_DELAY
if [Link] < 60
[Link]++
else
[Link] = 0
[Link]++
end if
break
case MENUBUTTON_BUTTONS_IN
TempValue0 = [Link]
TempValue0 <<= 16
TempValue0 -= [Link]
TempValue0 >>= 4
[Link] += TempValue0
TempValue0 = [Link]
TempValue0 <<= 16
TempValue0 -= [Link]
TempValue0 >>= 4
[Link] += TempValue0
if [Link] < 80
[Link]++
else
[Link] = 0
[Link]++
end if
break
case MENUBUTTON_CONFIRM_SELECTION
[Link] = [Link]
[Link] <<= 16
[Link] = [Link]
[Link] <<= 16
#platform: Mobile
CheckEqual([Link], false)
#endplatform
#platform: Use_Origins
CheckEqual([Link], false)
#endplatform
if CheckResult == true
TempValue0 = [Link]
TempValue0 -= 16
TempValue1 = [Link]
TempValue1 += 176
TempValue2 = [Link]
TempValue2 -= 20
TempValue3 = [Link]
TempValue3 += 20
CheckTouchRect(TempValue0, TempValue2, TempValue1, TempValue3)
if CheckResult > -1
TempValue0 = [Link]
TempValue0 >>= 2
if TempValue0 == 0
if [Link] == 0
[Link] = [Link]
end if
end if
else
CheckTouchRect(0, 0, [Link], [Link])
if CheckResult < 0
if [Link] == [Link]
if [Link] == 0
PlaySfx(SFX_G_SELECT, false)
[Link] = MENUCONTROL_BLANK
switch [Link]
case Menu_LoadSaveMenu
case Menu_Help&Options
case Menu_Extras
case Menu_Soundtrack //All of
this is MenuButton
Object[34].State =
MENUBUTTON_BUTTONS_OUT
Object[34].Timer = 0
Object[35].State =
MENUBUTTON_BUTTONS_OUT
Object[35].Timer = 0
Object[36].State =
MENUBUTTON_BUTTONS_OUT
Object[36].Timer = 0
Object[37].State =
MENUBUTTON_BUTTONS_OUT
Object[37].Timer = 0
Object[38].State =
MENUBUTTON_BUTTONS_OUT
Object[38].Timer = 0
Object[39].State =
MENUBUTTON_BUTTONS_OUT
Object[39].Timer = 0
Object[40].State =
MENUBUTTON_BUTTONS_OUT
Object[40].Timer = 0
Object[41].State =
MENUBUTTON_BUTTONS_OUT
Object[41].Timer = 0
Object[42].State =
MENUBUTTON_BUTTONS_OUT
Object[42].Timer = 0
Object[43].State =
MENUBUTTON_BUTTONS_OUT
Object[43].Timer = 0
break
case Menu_TimeAttack
if [Link] == false
StopMusic()
Object[34].State =
MENUBUTTON_BUTTONS_OUT
Object[34].Timer = 0
Object[35].State =
MENUBUTTON_BUTTONS_OUT
Object[35].Timer = 0
Object[36].State =
MENUBUTTON_BUTTONS_OUT
Object[36].Timer = 0
Object[37].State =
MENUBUTTON_BUTTONS_OUT
Object[37].Timer = 0
Object[38].State =
MENUBUTTON_BUTTONS_OUT
Object[38].Timer = 0
Object[39].State =
MENUBUTTON_BUTTONS_OUT
Object[39].Timer = 0
Object[40].State =
MENUBUTTON_BUTTONS_OUT
Object[40].Timer = 0
Object[41].State =
MENUBUTTON_BUTTONS_OUT
Object[41].Timer = 0
Object[42].State =
MENUBUTTON_BUTTONS_OUT
Object[42].Timer = 0
Object[43].State =
MENUBUTTON_BUTTONS_OUT
Object[43].Timer = 0
end if
break
end switch
[Link] = MENUBUTTON_MENU_SELECTED
end if
end if
else
if [Link] == [Link]
[Link] = 0
end if
end if
end if
else
if [Link] == [Link]
CheckResult = false
if KeyPress[0].Start == true
CheckResult = true
end if
if KeyPress[0].ButtonA == true
CheckResult = true
end if
if [Link] == Menu_Achievements
if [Link] == false
CheckResult = false
end if
end if
if CheckResult == true
PlaySfx(SFX_G_SELECT, false)
if [Link] == true
if [Link] != RETRO_ANDROID
if [Link] ==
Menu_LoadSaveMenu
StopMusic()
end if
end if
else
if [Link] == Menu_TimeAttack
StopMusic()
end if
end if
[Link] = MENUCONTROL_BLANK
switch [Link]
case Menu_LoadSaveMenu
case Menu_Help&Options
case Menu_Extras
case Menu_Soundtrack
Object[34].State = MENUBUTTON_BUTTONS_OUT
Object[34].Timer = 0
Object[35].State = MENUBUTTON_BUTTONS_OUT
Object[35].Timer = 0
Object[36].State = MENUBUTTON_BUTTONS_OUT
Object[36].Timer = 0
Object[37].State = MENUBUTTON_BUTTONS_OUT
Object[37].Timer = 0
Object[38].State = MENUBUTTON_BUTTONS_OUT
Object[38].Timer = 0
Object[39].State = MENUBUTTON_BUTTONS_OUT
Object[39].Timer = 0
Object[40].State = MENUBUTTON_BUTTONS_OUT
Object[40].Timer = 0
Object[41].State = MENUBUTTON_BUTTONS_OUT
Object[41].Timer = 0
Object[42].State = MENUBUTTON_BUTTONS_OUT
Object[42].Timer = 0
Object[43].State = MENUBUTTON_BUTTONS_OUT
Object[43].Timer = 0
break
case Menu_TimeAttack
if [Link] == false
Object[34].State = MENUBUTTON_BUTTONS_OUT
Object[34].Timer = 0
Object[35].State = MENUBUTTON_BUTTONS_OUT
Object[35].Timer = 0
Object[36].State = MENUBUTTON_BUTTONS_OUT
Object[36].Timer = 0
Object[37].State = MENUBUTTON_BUTTONS_OUT
Object[37].Timer = 0
Object[38].State = MENUBUTTON_BUTTONS_OUT
Object[38].Timer = 0
Object[39].State = MENUBUTTON_BUTTONS_OUT
Object[39].Timer = 0
Object[40].State = MENUBUTTON_BUTTONS_OUT
Object[40].Timer = 0
Object[41].State = MENUBUTTON_BUTTONS_OUT
Object[41].Timer = 0
Object[42].State = MENUBUTTON_BUTTONS_OUT
Object[42].Timer = 0
Object[43].State = MENUBUTTON_BUTTONS_OUT
Object[43].Timer = 0
end if
break
end switch
[Link] = MENUBUTTON_MENU_SELECTED
end if
end if
end if
if [Link] == RETRO_WP7
if KeyPress[0].ButtonB == true
EngineCallback(CALLBACK_EXIT_SELECTED)
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
[Link] = 0
end if
end if
break
case MENUBUTTON_MENU_SELECTED
if [Link] < 30
[Link]++
else
[Link] = 0
switch [Link]
case Menu_LoadSaveMenu
if [Link] == false
[Link] = MENUHEADING_LEAVE_SCREEN
[Link] = SAVESELECT_HEADER
CallFunction(MenuButton_SetupMenuWindow)
ResetObjectEntity(62, TypeName[Load Save Menu], 0, 0,
0)
[Link] = INK_ALPHA
[Link] = 0
[Link] = MODE_NOSAVE
[Link] = 0
[Link] = 3
[Link] = 50000
Transporter_Destroyed = false
MetalSonic_Destroyed = false
Good_Future = false
#endplatform
#platform: Mobile
[Link] = MENUHEADING_LEAVE_SCREEN
[Link] = STAGESELECT_HEADER
CallFunction(MenuButton_SetupMenuWindow)
[Link] = MENUWINDOW_SOUNDTRACK_EXPAND
ResetObjectEntity(62, TypeName[Demo Menu], 0, 0, 0)
[Link] = INK_ALPHA
[Link] = 0
case Menu_TimeAttack
if [Link] == false
[Link] = MENUBUTTON_BLANK
[Link] = MENUCONTROL_ENTER_TIMEATTACK
[Link] = 0
else
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
EngineCallback(CALLBACK_FULL_VERSION_ONLY)
#platform: Mobile
[Link] = 0
#endplatform
end if
break
case Menu_Achievements
if [Link] != RETRO_WP7
LoadOnlineMenu(ONLINEMENU_ACHIEVEMENTS)
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
#platform: Mobile
[Link] = 0
#endplatform
else
[Link] = MENUBUTTON_BLANK
[Link] = MENUCONTROL_ENTER_TROPHIES
[Link] = 0
end if
break
case Menu_LeaderBoards
if [Link]!=RETRO_WP7
LoadOnlineMenu(ONLINEMENU_LEADERBOARDS)
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
#platform: Mobile
[Link] = 0
#endplatform
else
if [Link] == false
[Link] = MENUBUTTON_BLANK
[Link] =
MENUCONTROL_ENTER_LEADERBOARDS
[Link] = 0
else
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
EngineCallback(CALLBACK_FULL_VERSION_ONLY)
end if
end if
break
case Menu_Help&Options
[Link] = MENUHEADING_LEAVE_SCREEN
[Link] = HELP&OPTIONS_HEADER
CallFunction(MenuButton_SetupMenuWindow)
#platform: Use_Standalone
#platform: Standard
ResetObjectEntity(62, TypeName[Options Menu C], 0, 0, 0)
#endplatform
#platform: Mobile
if [Link] == true
ResetObjectEntity(62, TypeName[Options Menu H], 0, 0,
0)
else
ResetObjectEntity(62, TypeName[Options Menu], 0, 0,
0)
end if
#endplatform
#endplatform
#platform: Use_Origins
if [Link] == true
ResetObjectEntity(62, TypeName[Options Menu H], 0, 0,
0)
else
ResetObjectEntity(62, TypeName[Options Menu], 0, 0,
0)
end if
#endplatform
[Link] = INK_ALPHA
[Link] = 0
case Menu_Extras
[Link] = MENUHEADING_LEAVE_SCREEN
[Link] = EXTRAS_HEADER
CallFunction(MenuButton_SetupMenuWindow)
ResetObjectEntity(62, TypeName[Extras Menu], 0, 0, 0)
[Link] = INK_ALPHA
[Link] = 0
case Menu_UnlockFullGame
EngineCallback(CALLBACK_BUY_FULL_GAME_SELECTED)
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
#platform: Mobile
[Link] = 0
#endplatform
break
case Menu_Store
EngineCallback(CALLBACK_RETURNSTORE_SELECTED)
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
#platform: Mobile
[Link] = 0
#endplatform
break
case Menu_Exit
EngineCallback(CALLBACK_EXIT_SELECTED)
#platform: Use_Decomp
[Link] = ENGINE_EXITGAME
#endplatform
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
#platform: Mobile
[Link] = 0
#endplatform
break
case Menu_Soundtrack
[Link] = MENUHEADING_LEAVE_SCREEN
[Link] = SOUNDTRACK_HEADER
CallFunction(MenuButton_SetupMenuWindow)
[Link] = MENUWINDOW_SOUNDTRACK_EXPAND
ResetObjectEntity(62, TypeName[Soundtrack Menu], 0, 0, 0)
[Link] = INK_ALPHA
[Link] = 0
#platform: Mobile
case Menu_MoreGames
EngineCallback(CALLBACK_MOREGAMES)
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
[Link] = 0
break
#endplatform
end switch
end if
break
case MENUBUTTON_BUTTONS_OUT
TempValue0 = [Link]
TempValue0 -= [Link]
TempValue0 >>= 4
[Link] += TempValue0
TempValue0 = [Link]
TempValue0 -= [Link]
TempValue0 >>= 4
[Link] += TempValue0
if [Link] < 80
[Link]++
else
[Link] = 0
[Link] = MENUBUTTON_BLANK2
end if
break
case MENUBUTTON_BLANK
case MENUBUTTON_BLANK2
//Nothing happens here
break
[Link] = MENUCONTROL_CONTROLS
#platform: Mobile
[Link] = 0
#endplatform
end if
else
if [Link] == MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUBUTTON_CONFIRM_SELECTION
[Link] = MENUCONTROL_CONTROLS
#platform: Mobile
[Link] = 0
#endplatform
end if
end if
break
end switch
end sub
sub ObjectDraw
DrawSprite(0)
switch [Link]
case MENUBUTTON_DELAY
case MENUBUTTON_BUTTONS_IN
case MENUBUTTON_CONFIRM_SELECTION
case MENUBUTTON_BUTTONS_OUT
case MENUBUTTON_BLANK
case MENUBUTTON_RESET
if [Link] == [Link]
TempValue0 = [Link]
TempValue0 += 11
DrawSprite(TempValue0)
else
DrawSprite([Link])
end if
break
case MENUBUTTON_MENU_SELECTED
TempValue0 = [Link]
TempValue0 &= 3
TempValue0 >>= 1
if TempValue0 == 0
TempValue0 = [Link]
TempValue0 += 11
DrawSprite(TempValue0)
end if
break
end switch
end sub
sub ObjectStartup
switch [Link]
case LANG_ENGLISH
LoadSpriteSheet("Menu/MenuGfx2_EN.gif")
break
case LANG_FRENCH
LoadSpriteSheet("Menu/MenuGfx2_FR.gif")
break
case LANG_ITALIAN
LoadSpriteSheet("Menu/MenuGfx2_IT.gif")
break
case LANG_DEUTSCH
LoadSpriteSheet("Menu/MenuGfx2_DE.gif")
break
case LANG_SPANISH
LoadSpriteSheet("Menu/MenuGfx2_ES.gif")
break
case LANG_JAPANESE
LoadSpriteSheet("Menu/MenuGfx2_JP.gif")
break
end switch
[Link] = 1
ArrayPos0 = 32
while ArrayPos0 < 1056
if Object[ArrayPos0].Type == TypeName[Menu Button]
Object[ArrayPos0].Priority = PRIORITY_ACTIVE
Object[ArrayPos0].ButtonLeaveXPos = Object[ArrayPos0].XPos
Object[ArrayPos0].ButtonLeaveYPos =
Object[ArrayPos0].ButtonLeaveYPos
end if
ArrayPos0++
loop
switch [Link]
case RETRO_WIN
case RETRO_OSX
if [Link] == true
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Help&Options
Object[37].PropertyValue = Menu_Soundtrack
Object[38].PropertyValue = Menu_Extras
Object[39].PropertyValue = Menu_Exit
[Link] = 6
else
if [Link] == true
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Achievements
Object[37].PropertyValue = Menu_LeaderBoards
Object[38].PropertyValue = Menu_Help&Options
Object[39].PropertyValue = Menu_Soundtrack
Object[40].PropertyValue = Menu_UnlockFullGame
Object[41].PropertyValue = Menu_Exit
[Link] = 8
else
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Achievements
Object[37].PropertyValue = Menu_LeaderBoards
Object[38].PropertyValue = Menu_Help&Options
Object[39].PropertyValue = Menu_Soundtrack
Object[40].PropertyValue = Menu_Extras
Object[41].PropertyValue = Menu_Exit
[Link] = 8
end if
end if
break
case RETRO_XBOX_360
if [Link] == true
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Achievements
Object[37].PropertyValue = Menu_LeaderBoards
Object[38].PropertyValue = Menu_Help&Options
Object[39].PropertyValue = Menu_Soundtrack
Object[40].PropertyValue = Menu_UnlockFullGame
Object[41].PropertyValue = Menu_Exit
[Link] = 8
else
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Achievements
Object[37].PropertyValue = Menu_LeaderBoards
Object[38].PropertyValue = Menu_Help&Options
Object[39].PropertyValue = Menu_Soundtrack
Object[40].PropertyValue = Menu_Extras
Object[41].PropertyValue = Menu_Exit
[Link] = 8
end if
break
case RETRO_PS3
if [Link] == true
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Achievements
Object[37].PropertyValue = Menu_LeaderBoards
Object[38].PropertyValue = Menu_Help&Options
Object[39].PropertyValue = Menu_Soundtrack
Object[40].PropertyValue = Menu_UnlockFullGame
[Link] = 7
else
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Achievements
Object[37].PropertyValue = Menu_LeaderBoards
Object[38].PropertyValue = Menu_Help&Options
Object[39].PropertyValue = Menu_Soundtrack
Object[40].PropertyValue = Menu_Extras
[Link] = 7
end if
break
case RETRO_ANDROID
if [Link] == true
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_Help&Options
Object[36].PropertyValue = Menu_Soundtrack
Object[37].PropertyValue = Menu_UnlockFullGame
Object[38].PropertyValue = Menu_Exit
[Link] = 5
else
if [Link] == true
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_LeaderBoards
Object[37].PropertyValue = Menu_Achievements
Object[38].PropertyValue = Menu_Help&Options
Object[39].PropertyValue = Menu_Soundtrack
Object[40].PropertyValue = Menu_Extras
Object[41].PropertyValue = Menu_Exit
[Link] = 8
else
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Help&Options
Object[37].PropertyValue = Menu_MoreGames
Object[38].PropertyValue = Menu_Soundtrack
Object[39].PropertyValue = Menu_Extras
Object[40].PropertyValue = Menu_Exit
[Link] = 7
Object[37].PropertyValue = Menu_Soundtrack
Object[38].PropertyValue = Menu_Extras
Object[39].PropertyValue = Menu_Exit
[Link] = 6
end if
end if
break
case RETRO_iOS
if [Link] == true
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_LeaderBoards
Object[37].PropertyValue = Menu_Help&Options
Object[38].PropertyValue = Menu_Soundtrack
Object[39].PropertyValue = Menu_Extras
[Link] = 6
else
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Help&Options
Object[37].PropertyValue = Menu_Soundtrack
Object[38].PropertyValue = Menu_Extras
[Link] = 5
end if
break
case RETRO_WP7
if [Link] == true
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_Help&Options
Object[36].PropertyValue = Menu_Soundtrack
Object[37].PropertyValue = Menu_MoreGames
Object[38].PropertyValue = Menu_Exit
[Link] = 5
else
if [Link] == true
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_LeaderBoards
Object[37].PropertyValue = Menu_Achievements
Object[38].PropertyValue = Menu_Help&Options
Object[39].PropertyValue = Menu_Soundtrack
Object[40].PropertyValue = Menu_Extras
Object[41].PropertyValue = Menu_Exit
[Link] = 8
else
Object[34].PropertyValue = Menu_LoadSaveMenu
Object[35].PropertyValue = Menu_TimeAttack
Object[36].PropertyValue = Menu_Help&Options
Object[37].PropertyValue = Menu_MoreGames
Object[38].PropertyValue = Menu_Soundtrack
Object[39].PropertyValue = Menu_Extras
Object[40].PropertyValue = Menu_Exit
[Link] = 7
end if
end if
break
end switch
ArrayPos0 = 34
TempValue0 = 0
while TempValue0 < [Link]
Object[ArrayPos0].ButtonYPos = TempValue0
Object[ArrayPos0].ButtonYPos++
ArrayPos0++
TempValue0++
loop
[Link] = [Link]
[Link] *= -30
[Link] <<= 8
SpriteFrame(0, -10, 144, 21, 259, 71) // #0 - Button
TempValue0 = 0
TempValue1 = 18
// (#1 - #2) - Start Game, Time Attack
while TempValue0 < 2
SpriteFrame(19, -7, 128, 16, 1, TempValue1)
TempValue1 += 17
TempValue0++
loop
// #3 - Achievements/ Trophies
switch [Link]
case RETRO_WIN
case RETRO_ANDROID
switch [Link]
case LANG_ENGLISH
case LANG_FRENCH
case LANG_SPANISH
case LANG_JAPANESE
SpriteFrame(19, -7, 128, 16, 1, TempValue1)
break
case LANG_ITALIAN
case LANG_DEUTSCH
SpriteFrame(19, -7, 128, 16, 1, 770)
break
end switch
break
case RETRO_PS3
SpriteFrame(19, -7, 128, 16, 1, 513)
break
case RETRO_XBOX_360
case RETRO_iOS
case RETRO_ANDROID
case RETRO_WP7
SpriteFrame(19, -7, 128, 16, 1, TempValue1)
break
end switch
TempValue1 += 17
TempValue0++
// #4 - Leaderboards
if [Link] == false
SpriteFrame(19, -7, 128, 16, 130, 460)
else
SpriteFrame(19, -7, 128, 16, 1, TempValue1)
end if
TempValue1 += 17
TempValue0++
// (#5 - #6) - Help & Options, Extras
while TempValue0 < 6
SpriteFrame(19, -7, 128, 16, 1, TempValue1)
TempValue1 += 17
TempValue0++
loop
TempValue0 = 0
TempValue1 = 547
// (#7 - #10) - Remove Ads(Mobile)/Unlock Full Game(Console), Unlock Full
Game(Mobile)/Return to Arcade(Xbox), Exit Game, Soundtrack
while TempValue0 < 4
SpriteFrame(19, -7, 128, 16, 1, TempValue1)
TempValue1 += 17
TempValue0++
loop
if [Link]==RETRO_PS3
SpriteFrame(19,-7,128,16,130,513)
else
if [Link]!=RETRO_IOS
SpriteFrame(19,-7,128,16,130,TempValue1)
else
SpriteFrame(19,-7,128,16,291,632)
end if
end if
TempValue1 += 17
TempValue0++
// (#14 - #16 Standard, #15 - #17 Mobile) - Leaderboards, Help & Options,
Extras
while TempValue0 < 6
SpriteFrame(19, -7, 128, 16, 130, TempValue1)
TempValue1 += 17
TempValue0++
loop
TempValue0 = 0
TempValue1 = 547
// (#17 - #20 Standard, #18 - #21 Mobile) - Remove Ads(Mobile)/Unlock Full
Game(Console), Unlock Full Game(Mobile)/Return to Arcade(Xbox), Exit Game,
Soundtrack
while TempValue0 < 4
SpriteFrame(19, -7, 128, 16, 130, TempValue1)
TempValue1 += 17
TempValue0++
loop
#platform: Use_Origins
if [Link] != MAINMENUMODE_NONE
Object[34].State = MENUBUTTON_BUTTONS_OUT
Object[34].Timer = 0
Object[35].State = MENUBUTTON_BUTTONS_OUT
Object[35].Timer = 0
Object[36].State = MENUBUTTON_BUTTONS_OUT
Object[36].Timer = 0
Object[37].State = MENUBUTTON_BUTTONS_OUT
Object[37].Timer = 0
Object[38].State = MENUBUTTON_BUTTONS_OUT
Object[38].Timer = 0
Object[39].State = MENUBUTTON_BUTTONS_OUT
Object[39].Timer = 0
Object[40].State = MENUBUTTON_BUTTONS_OUT
Object[40].Timer = 0
Object[41].State = MENUBUTTON_BUTTONS_OUT
Object[41].Timer = 0
Object[42].State = MENUBUTTON_BUTTONS_OUT
Object[42].Timer = 0
Object[43].State = MENUBUTTON_BUTTONS_OUT
Object[43].Timer = 0
if [Link] == MAINMENUMODE_VISUALMODE
[Link] = MENUHEADING_IDLE
[Link] = EXTRAS_HEADER
CallFunction(MenuButton_SetupMenuWindow)
ResetObjectEntity(62, TypeName[ExtrasMenu], 0, 0, 0)
[Link] = INK_ALPHA
[Link] = 0
CallFunction(MenuButton_SetupMenuWindow)
[Link] = MENUWINDOW_SOUNDTRACK_EXPAND
ResetObjectEntity(62,TypeName[Soundtrack Menu], 0, 0, 0)
[Link] = INK_ALPHA
[Link] = 0
CallFunction(MenuButton_SetupMenuWindow)
ResetObjectEntity(62,TypeName[Load Save Menu], 0, 0,
0)
[Link] = INK_ALPHA
[Link] = 0
CallFunction(MenuButton_SetupMenuWindow)
if [Link] == true
ResetObjectEntity(62,TypeName[Options
Menu H], 0, 0, 0)
else
ResetObjectEntity(62,TypeName[Options
Menu], 0, 0, 0)
end if
[Link] = INK_ALPHA
[Link] = 0
CallFunction(MenuButton_SetupMenuWindow)
ResetObjectEntity(62,TypeName[Extras
Menu], 0, 0, 0)
[Link] = INK_ALPHA
[Link] = 0
ResetObjectEntity(63, TypeName[Blank
Object], 0, 0, 0)
ResetObjectEntity(64, TypeName[Blank
Object], 0, 0, 0)
ResetObjectEntity(65, TypeName[Blank
Object], 0, 0, 0)
ResetObjectEntity(66, TypeName[Blank
Object], 0, 0, 0)
[Link] = TypeName[Blank Object]
else
if [Link] ==
MAINMENUMODE_SETTINGS
[Link] =
MENUHEADING_LEAVE_SCREEN
[Link] =
HELP&OPTIONS_HEADER
CallFunction(MenuButton_SetupMenuWindow)
ResetObjectEntity(62,TypeName[Options Menu], 0, 0, 0)
[Link] =
INK_ALPHA
[Link] = 0
ResetObjectEntity(63,
TypeName[Blank Object], 0, 0, 0)
ResetObjectEntity(64,
TypeName[Blank Object], 0, 0, 0)
ResetObjectEntity(65,
TypeName[Blank Object], 0, 0, 0)
ResetObjectEntity(66,
TypeName[Blank Object], 0, 0, 0)
[Link] = TypeName[Blank
Object]
end if
end if
end if
end if
end if
end if
end if
#endplatform
end sub
// ========================
// Editor Subs
// ========================
sub RSDKEdit
if [Link] == true
switch [Link]
case EDIT_VAR_PROPVAL // Property Value
CheckResult = [Link]
break
case 0 // Type
CheckResult = [Link]
break
end switch
else
switch [Link]
case EDIT_VAR_PROPVAL // Property Value
[Link] = [Link]
break
case 0 // Type
[Link] = [Link]
break
end switch
end if
end sub
sub RSDKDraw
DrawSprite(0)
end sub
sub RSDKLoad
LoadSpriteSheet("Menu/MenuGfx2_EN.gif")
SpriteFrame(0, -10, 144, 21, 259, 71) // #0 - Button