Files
firestorm/_UNUSED/GameleapCode5_03/Content/ShellScripts/Options.script
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

413 lines
11 KiB
Plaintext

#include "Content\\ShellScripts\\stddefs.h"
#include "Content\\ShellScripts\\ScriptStrings.h"
#include "Content\\ShellScripts\\common_shell.script"
#include "Content\\ShellScripts\\ShellFunctionHeaders.hpp"
#include "Content\\ShellScripts\\listboxes.script"
#include "Content\\ShellScripts\\mc_listboxes.script"
#include "Content\\ShellScripts\\buttons.script"
#include "Content\\ShellScripts\\c_Pane.script"
#include "Content\\ShellScripts\\c_MoviePlayer.script"
#include "Content\\ShellScripts\\c_text.script"
#include "Content\\ShellScripts\\c_rollover.script"
main
{
GUI_CREATE
{
object oRollover = s_HelpRegion
oRollover.nFontID = IDS_F_ROLLOVER_INFO
oRollover.cTextColor= 0xFFff7200
oRollover.location = 31,516,255
oRollover.nWidth = 538
oRollover.nHeight = 56
initialize(oRollover)
activate(oRollover)
object screen = o_OptionsScreen
focus(screen)
}
}
o_OptionsScreen
{
GUI_CREATE
{
location.z = 5
int nMPConsole = 0
int nMPServerBrowser= 0
object oPane = s_Pane
oPane.location = 0,0,0
oPane.szBitmap = GPATH "OM_Background.tga"
oPane.nFrames = 1
oPane.nCurrFrame = 0
oPane.nMode = 0
oPane.fVolatile = 0
oPane.fRegion = 0
oPane.nHelpID = -1
initialize(oPane)
object o_frame = frame
o_frame.type = 1
o_frame.location = 0, 0, 150 //100
o_frame.screen_name = localize$(IDS_OM_TITLE)
initialize(o_frame)
object o_mouselines = mouselines
o_mouselines.location = 0, 0, o_frame.location.z - 1
//Buttons
object o_ok_button = s_multistatepane
o_ok_button.total_states = 3
o_ok_button.textsize = 1
o_ok_button.text = localize$(IDS_GN_OK)
o_ok_button.file = WPATH "button_main_196x41m_3state.tga"
o_ok_button.location = 580, 540, o_frame.location.z + 1
initialize(o_ok_button)
sound btnTriggeredSound = SPATH "sfx_button5.wav"
string currentPilotName = ""
callback($$Shell_CallbackHandler$$, ShellGetPilotName, currentPilotName)
object oPilotName = s_Text
oPilotName.location = 350, 35,nZ_TEXT
oPilotName.nFontID = IDS_F_OM_TAB_TITLE
oPilotName.szText = localize$(IDS_OM_PILOT_NAME) " " currentPilotName
oPilotName.cTextColor = cWhite
oPilotName.nJustify = 0
oPilotName.nLayoutWidth = 350
oPilotName.nLayoutHeight = 20
initialize(oPilotName)
object oTabs = s_OptionTabs
if(exists(@SHELL@))
{
initialize(this)
}
int TabX = 34
int TabXSpace = 3
int TabY = 58
int TabW = 143
int boxwidth = 727
int boxheight = 369
int boxx1 = TabX + 2
int boxy1 = TabY + 41
int boxx2 = boxx1 + boxwidth
int boxy2 = boxy1 + boxheight
int tabsy1 = TabY + 2
int tabsy2 = TabY + 41
int tabsx1 = boxx1
int tabsx2 = tabsx1 + TabW
int tabsx3 = tabsx1 + TabW + tabxSpace
int tabsx4 = tabsx1 + (2 * TabW) + tabxSpace
int tabsx5 = tabsx1 + (2 * TabW) + (2 * tabxSpace)
int tabsx6 = tabsx1 + (3 * TabW) + (2 * tabxSpace)
int tabsx7 = tabsx1 + (3 * TabW) + (3 * tabxSpace)
int tabsx8 = tabsx1 + (4 * TabW) + (3 * tabxSpace)
int tabsx9 = tabsx1 + (4 * TabW) + (4 * tabxSpace)
int tabsx10 = tabsx1 + (5 * TabW) + (4 * tabxSpace)
}
GUI_DRAW
{
setpencolor(0, 0, 0, 150)
drawrect boxx1, boxy1 to boxx2, boxy2
drawrect tabsx1, tabsy1 to tabsx2, tabsy2
drawrect tabsx3, tabsy1 to tabsx4, tabsy2
drawrect tabsx5, tabsy1 to tabsx6, tabsy2
drawrect tabsx7, tabsy1 to tabsx8, tabsy2
drawrect tabsx9, tabsy1 to tabsx10, tabsy2
setpencolor (0xffffffff)
drawline boxx1, boxy1 to boxx1, boxy2
drawline tabsx2 - 2, tabsy2 to tabsx3 + 2, tabsy2
drawline tabsx4 - 2, tabsy2 to tabsx5 + 2, tabsy2
drawline tabsx6 - 2, tabsy2 to tabsx7 + 2, tabsy2
drawline tabsx8 - 2, tabsy2 to tabsx9 + 2, tabsy2
setpencolor (0xffbbbbcc)
drawline boxx1 + 1, boxy1 - 1 to boxx1 + 1, boxy2 - 1
drawline boxx1 + 1, boxy2 - 2 to boxx2 - 2, boxy2 - 2
drawline boxx2 - 2, boxy1 to boxx2 - 2, boxy2 - 2
drawline tabsx2 - 2, tabsy2 + 1 to tabsx3 + 2, tabsy2 + 1
drawline tabsx4 - 2, tabsy2 + 1 to tabsx5 + 2, tabsy2 + 1
drawline tabsx6 - 2, tabsy2 + 1 to tabsx7 + 2, tabsy2 + 1
drawline tabsx8 - 2, tabsy2 + 1 to tabsx9 + 2, tabsy2 + 1
setpencolor (0xff777777)
drawline boxx1, boxy2 - 1 to boxx2 - 1, boxy2 - 1
drawline boxx2 - 1, boxy1 to boxx2 - 1, boxy2 - 1
}
GUI_INIT
{
if(nMPConsole == 1 || nMPServerBrowser == 1)
{
o_ok_button.nRollover = 1
o_ok_button.nHelpID = IDS_HELP_OM_M_MULTI
initialize(o_ok_button)
}
else
{
o_ok_button.nRollover = 1
o_ok_button.nHelpID = IDS_GN_HELP_MAINMENU_BUTTON
initialize(o_ok_button)
}
initialize(oTabs)
}
GUI_MAILBOX
{
switch (sender)
{
case o_ok_button:
{
play btnTriggeredSound,1
// BUGBUG DAN Fix the name on the callback and uncomment
@OM_Controls@nMouseSlid = @OM_Controls@oSMouseSlid.nSelected
callback($$Shell_CallbackHandler$$,SetMouseSensitivity,@OM_Controls@nMouseSlid)
// Handle multiplayer name errors
if (equal$(@OM_Multi@oEName.boxValue, ""))
{
@OM_Multi@nErrorActivated = 1
@OM_Multi@oErrorBox = o_ErrorScreen
@OM_Multi@oErrorBox.error_message = localize$(IDS_ERROR_OM_M_NAME_MSG)
initialize(@OM_Multi@oErrorBox)
activate(@OM_Multi@oErrorBox)
return
}
else
{
mail(MSG_SETOPTIONS, @OM_Multi@)
@OM_Multi@szName = @OM_Multi@oEName.boxValue
@OM_Multi@szTeam = @OM_Multi@oETeam.boxValue
@OM_Multi@szPass = @OM_Multi@oEPass.boxValue
@OM_Multi@nPassToggle = @OM_Multi@nPassToggle - 1
@OM_Multi@nAllowToggle= @OM_Multi@nAllowToggle - 1
if (callback($$LeaveMultiplayerOptionsScreen$$,@OM_Multi@szName,@OM_Multi@szTeam,@OM_Multi@nPassToggle,@OM_Multi@szPass,@OM_Multi@nPlayerI,@OM_Multi@nTeamI, @OM_Multi@szInsiginia[], @OM_Multi@szInsigniaFullName[], @OM_Multi@nInsigTotal,@OM_Multi@nAllowToggle) == -1)
{
@OM_Multi@nErrorActivated = 1
@OM_Multi@oErrorBox = o_ErrorScreen
@OM_Multi@oErrorBox.error_message = localize$(IDS_ERROR_OM_M_CHAR_MSG)
initialize(@OM_Multi@oErrorBox)
activate(@OM_Multi@oErrorBox)
return
}
@OM_Multi@nPassToggle = @OM_Multi@nPassToggle + 1
@OM_Multi@nAllowToggle= @OM_Multi@nAllowToggle + 1
}
callback($$Shell_CallbackHandler$$, ShellSaveOptions)
unfocus
mail(nMSG_ENDOPTIONS,this)
if(nMPConsole == 1)
{
script_run szPATH_SCRIPTS "\\multiplayer\\multiplayerconsole.script", 0x1000
script_end
}
else
if(nMPServerBrowser == 1)
{
script_run szPATH_SCRIPTS "\\multiplayer\\listofgames.script", 0x1000
script_end
}
else
if (exists(@SHELL@))
{
@SHELL@currentScreen = @SHELL@lastScreen[@SHELL@lastScreenDepth]
@SHELL@lastScreenDepth--
}
if exists(@shell)
{
initialize(@shell@)
}
}
break
}
switch (getmessage())
{
case nMSG_ENDOPTIONS:
{
script_end "OM_Game.script"
script_end "OM_Video.script"
script_end "OM_Audio.script"
script_end "OM_Controls.script"
script_end "OM_Multi.script"
}
break
}
}
GUI_DESTROY
{
unfocus
}
}
s_OptionTabs
{
GUI_CREATE
{
//Tabs
int TabX = 36
int TabXSpace = 3
int TabY = 58
int TabW = 143
int total_buttons = 5
int i
string szScripts[total_buttons]
szScripts[0] = "OM_Game.script"
szScripts[1] = "OM_Video.script"
szScripts[2] = "OM_Audio.script"
szScripts[3] = "OM_Controls.script"
szScripts[4] = "OM_Multi.script"
object oOMTab[total_buttons]
for(i = 0; i < total_buttons; i++)
{
oOMTab[i] = s_multistatepanetoggle
oOMTab[i].location = TabX + (i * (TabW + TabXSpace)), TabY, nZ_BUTTON
oOMTab[i].file = szPATH_GRAPHICS "3state_OM_tabs.tga"
oOMTab[i].total_states = 3
oOMTab[i].nRollover = 1
oOMTab[i].id = i
}
oOMTab[0].text = localize$(IDS_OM_GAME)
oOMTab[0].nHelpID = IDS_HELP_OM_GAME
oOMTab[1].text = localize$(IDS_OM_VIDEO)
oOMTab[1].nHelpID = IDS_HELP_OM_VIDEO
oOMTab[2].text = localize$(IDS_OM_AUDIO)
oOMTab[2].nHelpID = IDS_HELP_OM_AUDIO
oOMTab[3].text = localize$(IDS_OM_CONTROLS)
oOMTab[3].nHelpID = IDS_HELP_OM_CONTROLS
oOMTab[4].text = localize$(IDS_OM_MULTIPLAYER)
oOMTab[4].nHelpID = IDS_HELP_OM_MULTIPLAYER
for(i = 0; i < total_buttons; i++)
{
initialize(oOMTab[i])
script_run szPATH_SCRIPTS szScripts[i], 0x1000
script_pause szScripts[i]
}
}
GUI_INIT
{
if(parent.nMPServerBrowser != 1 && parent.nMPConsole != 1)
{
script_continue szScripts[0]
mail(2, oOMTab[0])
}
else
{
script_continue szScripts[4]
mail(2, oOMTab[4])
}
}
GUI_MAILBOX
{
int i
if (sender != oOMTab[4])
{
if (equal$(@OM_Multi@oEName.boxValue, ""))
{
for (i = 0; i < total_buttons - 1; i++)
{
if sender == oOMTab[i]
{
oOMTab[i].state = 0
initialize(oOMTab[i])
break
}
}
@OM_Multi@nErrorActivated = 1
@OM_Multi@oErrorBox = o_ErrorScreen
@OM_Multi@oErrorBox.error_message = localize$(IDS_ERROR_OM_M_NAME_MSG)
initialize(@OM_Multi@oErrorBox)
activate(@OM_Multi@oErrorBox)
return
}
else
{
mail(MSG_SETOPTIONS, @OM_Multi@)
@OM_Multi@szName = @OM_Multi@oEName.boxValue
@OM_Multi@szTeam = @OM_Multi@oETeam.boxValue
@OM_Multi@szPass = @OM_Multi@oEPass.boxValue
@OM_Multi@nPassToggle = @OM_Multi@nPassToggle - 1
@OM_Multi@nAllowToggle= @OM_Multi@nAllowToggle - 1
if (callback($$LeaveMultiplayerOptionsScreen$$,@OM_Multi@szName,@OM_Multi@szTeam,@OM_Multi@nPassToggle,@OM_Multi@szPass,@OM_Multi@nPlayerI,@OM_Multi@nTeamI, @OM_Multi@szInsiginia[], @OM_Multi@szInsigniaFullName[], @OM_Multi@nInsigTotal,@OM_Multi@nAllowToggle) == -1)
{
for (i = 0; i < total_buttons - 1; i++)
{
if sender == oOMTab[i]
{
oOMTab[i].state = 0
initialize(oOMTab[i])
break
}
}
@OM_Multi@nErrorActivated = 1
@OM_Multi@oErrorBox = o_ErrorScreen
@OM_Multi@oErrorBox.error_message = localize$(IDS_ERROR_OM_M_CHAR_MSG)
initialize(@OM_Multi@oErrorBox)
activate(@OM_Multi@oErrorBox)
return
}
@OM_Multi@nPassToggle = @OM_Multi@nPassToggle + 1
@OM_Multi@nAllowToggle= @OM_Multi@nAllowToggle + 1
}
}
for(i = 0; i < total_buttons; i++)
{
if (sender != oOMTab[i])
{
// turn off every button but the one just received
mail(1, oOMTab[i])
script_pause szScripts[i]
// script_pause "OM_Video_A.script"
}
}
if sender == oOMTab[0]
{
script_continue szScripts[0]
}
if sender == oOMTab[1]
{
script_continue szScripts[1]
}
if sender == oOMTab[2]
{
script_continue szScripts[2]
}
if sender == oOMTab[3]
{
script_continue szScripts[3]
}
if sender == oOMTab[4]
{
script_continue szScripts[4]
}
}
}