0% found this document useful (0 votes)
5 views8 pages

Sonic CD Help Menu Script Guide

Booooooffffff
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views8 pages

Sonic CD Help Menu Script Guide

Booooooffffff
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

//-----------------Sonic CD Help Menu Script------------------//

//--------Scripted by Christian Whitehead 'The Taxman'--------//


//-------Unpacked By Rubberduckycooly's Script Unpacker-------//

// Aliases
#alias Object.Value0 : [Link] //Also used for fading
#alias Object.Value2 : [Link]
#alias Object.Value3 : [Link]
#alias Object.Value4 : [Link]

// States
#alias 0 : HELPMENU_SETUP
#alias 1 : HELPMENU_FADEIN
#alias 2 : HELPMENU_CONTROLS
#alias 3 : HELPMENU_PAGEDOWN
#alias 4 : HELPMENU_PAGEUP
#alias 5 : HELPMENU_LEAVE

// 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 26 : SFX_G_OUTTAHERE
#alias 27 : SFX_G_SELECT

// Soundtrack
#alias 0 : OST_JP

// Presentation Stages
#alias 1 : STAGE_P_MENU

// Engine & Callbacks


#alias 5 : ENGINE_ENTER_HIRESMODE
#alias 6 : ENGINE_EXIT_HIRESMODE

// Priority
#alias 1 : PRIORITY_ACTIVE

// Function declarations
#function HelpMenu_PageLoad

function HelpMenu_PageLoad
switch [Link]
case 0
switch [Link]
case LANG_ENGLISH
LoadTextFile(MENU_1, "Data/Game/EN_Help/SCD_Pg1_EN.txt", 1)
break
case LANG_FRENCH
LoadTextFile(MENU_1, "Data/Game/FR_Help/SCD_Pg1_FR.txt", 1)
break
case LANG_ITALIAN
LoadTextFile(MENU_1, "Data/Game/IT_Help/SCD_Pg1_IT.txt", 1)
break
case LANG_DEUTSCH
LoadTextFile(MENU_1, "Data/Game/DE_Help/SCD_Pg1_DE.txt", 1)
break
case LANG_SPANISH
LoadTextFile(MENU_1, "Data/Game/ES_Help/SCD_Pg1_ES.txt", 1)
break
case LANG_JAPANESE
LoadTextFile(MENU_1, "Data/Game/JP_Help/SCD_Pg1_JP.txt", 1)
break
end switch
break
case 1
switch [Link]
case LANG_ENGLISH
LoadTextFile(MENU_1, "Data/Game/EN_Help/SCD_Pg2_EN.txt", 1)
break
case LANG_FRENCH
LoadTextFile(MENU_1, "Data/Game/FR_Help/SCD_Pg2_FR.txt", 1)
break
case LANG_ITALIAN
LoadTextFile(MENU_1, "Data/Game/IT_Help/SCD_Pg2_IT.txt", 1)
break
case LANG_DEUTSCH
LoadTextFile(MENU_1, "Data/Game/DE_Help/SCD_Pg2_DE.txt", 1)
break
case LANG_SPANISH
LoadTextFile(MENU_1, "Data/Game/ES_Help/SCD_Pg2_ES.txt", 1)
break
case LANG_JAPANESE
LoadTextFile(MENU_1, "Data/Game/JP_Help/SCD_Pg2_JP.txt", 1)
break
end switch
break
case 2
switch [Link]
case LANG_ENGLISH
LoadTextFile(MENU_1, "Data/Game/EN_Help/SCD_Pg3_EN.txt", 1)
break
case LANG_FRENCH
LoadTextFile(MENU_1, "Data/Game/FR_Help/SCD_Pg3_FR.txt", 1)
break
case LANG_ITALIAN
LoadTextFile(MENU_1, "Data/Game/IT_Help/SCD_Pg3_IT.txt", 1)
break
case LANG_DEUTSCH
LoadTextFile(MENU_1, "Data/Game/DE_Help/SCD_Pg3_DE.txt", 1)
break
case LANG_SPANISH
LoadTextFile(MENU_1, "Data/Game/ES_Help/SCD_Pg3_ES.txt", 1)
break
case LANG_JAPANESE
LoadTextFile(MENU_1, "Data/Game/JP_Help/SCD_Pg3_JP.txt", 1)
break
end switch
break
case 3
switch [Link]
case LANG_ENGLISH
LoadTextFile(MENU_1, "Data/Game/EN_Help/SCD_Pg4_EN.txt", 1)
break
case LANG_FRENCH
LoadTextFile(MENU_1, "Data/Game/FR_Help/SCD_Pg4_FR.txt", 1)
break
case LANG_ITALIAN
LoadTextFile(MENU_1, "Data/Game/IT_Help/SCD_Pg4_IT.txt", 1)
break
case LANG_DEUTSCH
LoadTextFile(MENU_1, "Data/Game/DE_Help/SCD_Pg4_DE.txt", 1)
break
case LANG_SPANISH
LoadTextFile(MENU_1, "Data/Game/ES_Help/SCD_Pg4_ES.txt", 1)
break
case LANG_JAPANESE
LoadTextFile(MENU_1, "Data/Game/JP_Help/SCD_Pg4_JP.txt", 1)
break
end switch
break
case 4
switch [Link]
case LANG_ENGLISH
LoadTextFile(MENU_1, "Data/Game/EN_Help/SCD_Pg5_EN.txt", 1)
break
case LANG_FRENCH
LoadTextFile(MENU_1, "Data/Game/FR_Help/SCD_Pg5_FR.txt", 1)
break
case LANG_ITALIAN
LoadTextFile(MENU_1, "Data/Game/IT_Help/SCD_Pg5_IT.txt", 1)
break
case LANG_DEUTSCH
LoadTextFile(MENU_1, "Data/Game/DE_Help/SCD_Pg5_DE.txt", 1)
break
case LANG_SPANISH
LoadTextFile(MENU_1, "Data/Game/ES_Help/SCD_Pg5_ES.txt", 1)
break
case LANG_JAPANESE
LoadTextFile(MENU_1, "Data/Game/JP_Help/SCD_Pg5_JP.txt", 1)
break
end switch
break
case 5
switch [Link]
case LANG_ENGLISH
LoadTextFile(MENU_1, "Data/Game/EN_Help/SCD_Pg6_EN.txt", 1)
break
case LANG_FRENCH
LoadTextFile(MENU_1, "Data/Game/FR_Help/SCD_Pg6_FR.txt", 1)
break
case LANG_ITALIAN
LoadTextFile(MENU_1, "Data/Game/IT_Help/SCD_Pg6_IT.txt", 1)
break
case LANG_DEUTSCH
LoadTextFile(MENU_1, "Data/Game/DE_Help/SCD_Pg6_DE.txt", 1)
break
case LANG_SPANISH
LoadTextFile(MENU_1, "Data/Game/ES_Help/SCD_Pg6_ES.txt", 1)
break
case LANG_JAPANESE
LoadTextFile(MENU_1, "Data/Game/JP_Help/SCD_Pg6_JP.txt", 1)
break
end switch
break
case 6
switch [Link]
case LANG_ENGLISH
LoadTextFile(MENU_1, "Data/Game/EN_Help/SCD_Pg7_EN.txt", 1)
break
case LANG_FRENCH
LoadTextFile(MENU_1, "Data/Game/FR_Help/SCD_Pg7_FR.txt", 1)
break
case LANG_ITALIAN
LoadTextFile(MENU_1, "Data/Game/IT_Help/SCD_Pg7_IT.txt", 1)
break
case LANG_DEUTSCH
LoadTextFile(MENU_1, "Data/Game/DE_Help/SCD_Pg7_DE.txt", 1)
break
case LANG_SPANISH
LoadTextFile(MENU_1, "Data/Game/ES_Help/SCD_Pg7_ES.txt", 1)
break
case LANG_JAPANESE
LoadTextFile(MENU_1, "Data/Game/JP_Help/SCD_Pg7_JP.txt", 1)
break
end switch
break
case 7
switch [Link]
case LANG_ENGLISH
LoadTextFile(MENU_1, "Data/Game/EN_Help/SCD_Pg8_EN.txt", 1)
break
case LANG_FRENCH
LoadTextFile(MENU_1, "Data/Game/FR_Help/SCD_Pg8_FR.txt", 1)
break
case LANG_ITALIAN
LoadTextFile(MENU_1, "Data/Game/IT_Help/SCD_Pg8_IT.txt", 1)
break
case LANG_DEUTSCH
LoadTextFile(MENU_1, "Data/Game/DE_Help/SCD_Pg8_DE.txt", 1)
break
case LANG_SPANISH
LoadTextFile(MENU_1, "Data/Game/ES_Help/SCD_Pg8_ES.txt", 1)
break
case LANG_JAPANESE
LoadTextFile(MENU_1, "Data/Game/JP_Help/SCD_Pg8_JP.txt", 1)
break
end switch
break
case 8
switch [Link]
case LANG_ENGLISH
LoadTextFile(MENU_1, "Data/Game/EN_Help/SCD_Pg9_EN.txt", 1)
break
case LANG_FRENCH
LoadTextFile(MENU_1, "Data/Game/FR_Help/SCD_Pg9_FR.txt", 1)
break
case LANG_ITALIAN
LoadTextFile(MENU_1, "Data/Game/IT_Help/SCD_Pg9_IT.txt", 1)
break
case LANG_DEUTSCH
LoadTextFile(MENU_1, "Data/Game/DE_Help/SCD_Pg9_DE.txt", 1)
break
case LANG_SPANISH
LoadTextFile(MENU_1, "Data/Game/ES_Help/SCD_Pg9_ES.txt", 1)
break
case LANG_JAPANESE
LoadTextFile(MENU_1, "Data/Game/JP_Help/SCD_Pg9_JP.txt", 1)
break
end switch
break
end switch
end function

sub ObjectMain
switch [Link]
case HELPMENU_SETUP
TempValue0 = 256
TempValue0 -= [Link]
[Link] = TempValue0
[Link] = 0
CallFunction(HelpMenu_PageLoad)
PlayMusic(1)
[Link] = 384
[Link]++
SetScreenFade(0, 0, 0, 255)
break

case HELPMENU_FADEIN
if [Link] > 0
[Link] -= 8
else
[Link]++
end if
SetScreenFade(0, 0, 0, [Link])
break

case HELPMENU_CONTROLS
if KeyPress[0].Down == true
if [Link] < 8
PlaySfx(SFX_G_SELECT, false)
[Link] = 256
[Link] = HELPMENU_PAGEDOWN
end if
end if

if KeyPress[0].Up == true
if [Link] > 0
PlaySfx(SFX_G_SELECT, false)
[Link] = HELPMENU_PAGEUP
end if
end if

if KeyPress[0].ButtonB == true
PlaySfx(SFX_G_OUTTAHERE, false)
[Link] = HELPMENU_LEAVE
end if
break
case HELPMENU_PAGEDOWN
if [Link] > 0
Cos(TempValue0, [Link])
TempValue0 >>= 1
TempValue0 += 256
TempValue1 = [Link]
TempValue1 += TempValue0
[Link] = TempValue1

TempValue1 += 256
TempValue1 >>= 9
if TempValue1 > [Link]
[Link]++
if [Link] == 2
SetActivePalette(1, 0, [Link])
else
SetActivePalette(0, 0, [Link])
end if
CallFunction(HelpMenu_PageLoad)
end if

[Link] -= 3
if [Link] < 0
[Link] = 0
end if
else
[Link] += 512
[Link] = [Link]
[Link] = HELPMENU_CONTROLS
end if
break

case HELPMENU_PAGEUP
if [Link] < 256
Cos(TempValue0, [Link])
TempValue0 >>= 1
TempValue0 -= 256
TempValue1 = [Link]
TempValue1 += TempValue0
[Link] = TempValue1

TempValue1 += 256
TempValue1 >>= 9
if TempValue1 < [Link]
[Link]--
if [Link] == 2
SetActivePalette(1, 0, [Link])
else
SetActivePalette(0, 0, [Link])
end if
CallFunction(HelpMenu_PageLoad)
end if

[Link] += 3
if [Link] > 256
[Link] = 256
end if
else
[Link] -= 512
[Link] = [Link]

[Link] = 0
[Link] = HELPMENU_CONTROLS
end if
break

case HELPMENU_LEAVE
if [Link] < 348
[Link] += 8
else
[Link] = STAGE_P_MENU
[Link] = ENGINE_EXIT_HIRESMODE
LoadStage()
end if
SetScreenFade(0, 0, 0, [Link])
break

end switch
end sub

sub ObjectDraw
[Link]--
if [Link] < -31
[Link] += 32
end if
TempValue1 = [Link]
TempValue1 >>= 1
while TempValue1 < [Link]
TempValue0 = [Link]
TempValue0 >>= 1
while TempValue0 < [Link]
DrawSpriteScreenXY(0, TempValue0, TempValue1)
TempValue0 += 128
loop
TempValue1 += 128
loop
end sub

sub ObjectStartup
LoadSpriteSheet("Menu/[Link]")

SpriteFrame(0, 0, 128, 128, 1, 1)

if [Link] == LANG_JAPANESE
Object[59].XPos -= 0x100000
Object[60].XPos -= 0x100000
Object[61].XPos -= 0x100000
Object[62].XPos -= 0x100000
Object[63].XPos -= 0x100000
Object[64].XPos += 0x500000
Object[59].YPos += 0x180000
Object[60].YPos += 0x180000
Object[61].YPos += 0x180000
Object[62].YPos += 0x180000
Object[63].YPos += 0x180000
Object[64].YPos -= 0x2F0000
end if

LoadPalette("[Link]", 0, 0, 0, 256)
LoadPalette("[Link]", 1, 0, 0, 256)
LoadTextFont("Data/Game/[Link]")

if [Link] == OST_JP
SetMusicTrack("JP/[Link]", 1, 1)
else
SetMusicTrack("US/[Link]", 1, 117382)
end if

[Link] = ENGINE_ENTER_HIRESMODE
[Link] = false

Object[0].Type = TypeName[Help Menu]


Object[0].Priority = PRIORITY_ACTIVE
Object[0].DrawOrder = 0
end sub

// ========================
// Editor Subs
// ========================

sub RSDKDraw
DrawSprite(0)
end sub

sub RSDKLoad
LoadSpriteSheet("Menu/MenuGfx2_EN.gif")
SpriteFrame(16, 0, 46, 30, 1, 677) // Help

SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")
end sub

You might also like