Files
firestorm/Gameleap/mw4/Content/ShellScriptsDev/CM_Wrapup.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

628 lines
18 KiB
Plaintext

#include "Content\\ShellScripts\\stddefs.h"
#include "Content\\ShellScripts\\common_shell.script"
#include "Content\\ShellScripts\\ScriptStrings.h"
#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_Text.script"
#include "Content\\ShellScripts\\c_Pane.script"
#include "Content\\ShellScripts\\c_StatLines.script"
#include "Content\\ShellScripts\\c_MoviePlayer.script"
#include "Content\\ShellScripts\\c_rollover.script"
main
{
GUI_CREATE
{
// use the whole region
location = 0, 0, 0
region = 0, 0 to getresx(), getresy()
// columns - operation, mission, save point
int max_mccb_columns = 3
// XXX jackyc - need maximum number of items
int max_mccb_items = 50
object oRollover = s_HelpRegion
oRollover.nFontID = IDS_F_ROLLOVER_INFO
oRollover.cTextColor= 0xFFff7200
oRollover.location = 12,500,nZ_HELPREGION
oRollover.nWidth = 575
oRollover.nHeight = 90
initialize(oRollover)
deactivate(oRollover)
object screen = o_CMWrapScreen
object pointer = o_MousePointer
pointer.showMousePointer = 1
focus(screen)
}
}
o_CMWrapScreen
{
GUI_CREATE
{
int i
int j
int s
int r
string mission_name
//BackGround Pane
object oBackground = s_Pane
oBackground.location = 0,0,0
oBackground.szBitmap = szPATH_GRAPHICS "debriefing_background.tga"
oBackground.nFrames = 1
oBackground.nMode = 0
oBackground.fVolatile = 0
oBackground.fRegion = 1
initialize(oBackground)
object oDavion = s_Pane
oDavion.location = 680,20,nZ_PANE
oDavion.szBitmap = szPATH_GRAPHICS "CM_Davion.tga"
oDavion.nFrames = 1
oDavion.nMode = 2
oDavion.fVolatile = 0
oDavion.fRegion = 0
initialize(oDavion)
//Text
//Page title
object oMStatusTitle = s_Text
oMStatusTitle.location = 21 ,21,nZ_TEXT
oMStatusTitle.nFontID = IDS_F_GEN_SCREEN_TITLE
oMStatusTitle.cTextColor = 0xFFff7200
oMStatusTitle.nJustify = 0
oMStatusTitle.nLayoutWidth = 205
oMStatusTitle.nLayoutHeight = 30
oMStatusTitle.nResID = IDS_CMW_TITLE
initialize(oMStatusTitle)
int nResults = 1
callback($$Shell_CallbackHandler$$, ShellCampaignGetCampaignResults,nResults)
callback($$Shell_CallbackHandler$$, ShellLoadMissionName, mission_name)
object oMissionTitle = s_Text
oMissionTitle.location = oMStatusTitle.location.x + oMStatusTitle.nLayoutWidth ,21,nZ_TEXT
oMissionTitle.nFontID = IDS_F_GEN_SCREEN_TITLE
oMissionTitle.cTextColor = 0xFFff7200
oMissionTitle.nJustify = 0
oMissionTitle.nLayoutWidth = 575
oMissionTitle.nLayoutHeight = 30
oMissionTitle.szText = mission_name
initialize(oMissionTitle)
object oResults = s_Text
oResults.location = 21 ,56,nZ_TEXT
oResults.nFontID = IDS_F_GEN_TEXTBUTTON
oResults.cTextColor = cWhite
oResults.nJustify = 0
oResults.nLayoutWidth = 400
oResults.nLayoutHeight = 150
if(nResults == 1)
{
oResults.nResID = IDS_CMW_FAIL
if (exists(@SHELL@))
@SHELL@campaignScreen.play_movie = 0
}
else
if(nResults == 2)
{
oResults.nResID = IDS_CMW_SUCCESS
if (exists(@SHELL@))
@SHELL@campaignScreen.play_movie = 1
}
initialize(oResults)
//LanceMate Section Titles
int nColumns = 4
int LM_X[nColumns]
int LM_Y = 390
int LM_YOff = 19
int LM_W = 110
int LM_H = 18
LM_X[0] = 21
LM_X[1] = 130
LM_X[2] = 240
LM_X[3] = 360
//Column 1
object oLanceTitle = s_Text
oLanceTitle.location = LM_X[0],LM_Y - 5 + (0 * LM_YOff),nZ_TEXT
oLanceTitle.nFontID = IDS_F_CM_LABEL
oLanceTitle.cTextColor = cWhite
oLanceTitle.nJustify = 0
oLanceTitle.nLayoutWidth = LM_W
oLanceTitle.nLayoutHeight = LM_H
oLanceTitle.nResID = IDS_CMW_LM_TITLE
initialize(oLanceTitle)
object oLance[3]
for (i=0;i<3;i++)
{
j = i + 1
oLance[i] = s_Text
oLance[i].location = LM_X[j],LM_Y - 5 + (0 * LM_YOff),nZ_TEXT
oLance[i].nFontID = IDS_F_CM_LABEL
oLance[i].cTextColor = cWhite
oLance[i].nJustify = 0
oLance[i].nLayoutWidth = LM_W
oLance[i].nLayoutHeight = LM_H
oLance[i].szText = conv$(j)
initialize(oLance[i])
}
object oNameTitle = s_Text
oNameTitle.location = LM_X[0],LM_Y + (1 * LM_YOff),nZ_TEXT
oNameTitle.nFontID = IDS_F_CM_LABEL
oNameTitle.cTextColor = cWhite
oNameTitle.nJustify = 0
oNameTitle.nLayoutWidth = LM_W
oNameTitle.nLayoutHeight = (LM_H * 2)
oNameTitle.nResID = IDS_CMW_LMNAME_TITLE
initialize(oNameTitle)
object oPStatusTitle = s_Text
oPStatusTitle.location = LM_X[0],LM_Y + (3 * LM_YOff),nZ_TEXT
oPStatusTitle.nFontID = IDS_F_CM_LABEL
oPStatusTitle.cTextColor = cWhite
oPStatusTitle.nJustify = 0
oPStatusTitle.nLayoutWidth = LM_W
oPStatusTitle.nLayoutHeight = LM_H
oPStatusTitle.nResID = IDS_CMW_LMSTATUS_TITLE
initialize(oPStatusTitle)
object oGSkillTitle = s_Text
oGSkillTitle.location = LM_X[0],LM_Y + (4 * LM_YOff),nZ_TEXT
oGSkillTitle.nFontID = IDS_F_CM_LABEL
oGSkillTitle.cTextColor = cWhite
oGSkillTitle.nJustify = 0
oGSkillTitle.nLayoutWidth = LM_W
oGSkillTitle.nLayoutHeight = LM_H
oGSkillTitle.nResID = IDS_CMW_GSKILL_TITLE
initialize(oGSkillTitle)
object oPSkillTitle = s_Text
oPSkillTitle.location = LM_X[0],LM_Y + (5 * LM_YOff),nZ_TEXT
oPSkillTitle.nFontID = IDS_F_CM_LABEL
oPSkillTitle.cTextColor = cWhite
oPSkillTitle.nJustify = 0
oPSkillTitle.nLayoutWidth = LM_W
oPSkillTitle.nLayoutHeight = LM_H
oPSkillTitle.nResID = IDS_CMW_PSKILL_TITLE
initialize(oPSkillTitle)
// object oSSkillTitle = s_Text
// oSSkillTitle.location = LM_X[0],LM_Y + (6 * LM_YOff),nZ_TEXT
// oSSkillTitle.nFontID = IDS_F_CM_LABEL
// oSSkillTitle.cTextColor = cWhite
// oSSkillTitle.nJustify = 0
// oSSkillTitle.nLayoutWidth = LM_W
// oSSkillTitle.nLayoutHeight = LM_H
// oSSkillTitle.nResID = IDS_CMW_SSKILL_TITLE
// initialize(oSSkillTitle)
// object oBSkillTitle = s_Text
// oBSkillTitle.location = LM_X[0],LM_Y + (7 * LM_YOff),nZ_TEXT
// oBSkillTitle.nFontID = IDS_F_CM_LABEL
// oBSkillTitle.cTextColor = cWhite
// oBSkillTitle.nJustify = 0
// oBSkillTitle.nLayoutWidth = LM_W
// oBSkillTitle.nLayoutHeight = LM_H
// oBSkillTitle.nResID = IDS_CMW_BSKILL_TITLE
// initialize(oBSkillTitle)
object oMechTitle = s_Text
oMechTitle.location = LM_X[0],LM_Y + (6 * LM_YOff),nZ_TEXT
oMechTitle.nFontID = IDS_F_CM_LABEL
oMechTitle.cTextColor = cWhite
oMechTitle.nJustify = 0
oMechTitle.nLayoutWidth = LM_W
oMechTitle.nLayoutHeight = LM_H
oMechTitle.nResID = IDS_CMW_LMMECH_TITLE
initialize(oMechTitle)
object oMechStatusTitle = s_Text
oMechStatusTitle.location = LM_X[0],LM_Y + (7 * LM_YOff),nZ_TEXT
oMechStatusTitle.nFontID = IDS_F_CM_LABEL
oMechStatusTitle.cTextColor = cWhite
oMechStatusTitle.nJustify = 0
oMechStatusTitle.nLayoutWidth= LM_W
oMechStatusTitle.nLayoutHeight= LM_H
oMechStatusTitle.nResID = IDS_CMW_LMMECHSTATUS_TITLE
initialize(oMechStatusTitle)
//Columns 1-3 Text
object oName[4]
object oPStatus[4]
object oMech[4]
object oMechStatus[4]
object oPilotstats[35]
object oPilotbase[35]
string szLanceNames[3]
int nLanceStatus[3]
int nGunBase[3]
int nGunNew[3]
int nPilotBase[3]
int nPilotNew[3]
string szMechName[3]
int nMechStatus[3]
int nNumLance
int pilot_stats[35]
int pilot_base[35]
string szPStatus[4]
szPStatus[0] = localize$(IDS_GN_OK)
szPStatus[1] = localize$(IDS_CMW_INJURED)
szPStatus[2] = localize$(IDS_CMW_MIA)
szPStatus[3] = localize$(IDS_CMW_KIA)
string szMStatus[3]
szMStatus[0] = localize$(IDS_CMW_READY)
szMStatus[1] = localize$(IDS_CMW_DAMAGED)
szMStatus[2] = localize$(IDS_CMW_DESTR0YED)
callback($$Shell_CallbackHandler$$, ShellCampaignGetLanceStatus,szLanceNames[],nLanceStatus[],nGunBase[],nGunNew[],nPilotBase[],nPilotNew[],szMechName[],nMechStatus[],nNumLance)
for (i=0;i<nNumLance;i++)
{
j = i + 1
oName[i] = s_Text
oName[i].location = LM_X[j],LM_Y + (1 * LM_YOff),nZ_TEXT
oName[i].nFontID = IDS_F_CM_LABEL
oName[i].nJustify = 0
oName[i].nLayoutWidth = LM_W
oName[i].nLayoutHeight = (LM_H * 2)
oName[i].szText = szLanceNames[i]
oName[i].cTextColor = cWhite
initialize(oName[i])
oPStatus[i] = s_Text
oPStatus[i].location = LM_X[j],LM_Y + (3 * LM_YOff),nZ_TEXT
oPStatus[i].nFontID = IDS_F_CM_LABEL
oPStatus[i].nJustify = 0
oPStatus[i].nLayoutWidth = LM_W
oPStatus[i].nLayoutHeight = LM_H
oPStatus[i].szText = szPStatus[nLanceStatus[i]]
if(nLanceStatus[i] == 0)
{
oPStatus[i].cTextColor = cWhite
}
else
if(nLanceStatus[i] == 1)
{
oPStatus[i].cTextColor = cYellow
}
else
if(nLanceStatus[i] == 2)
{
oPStatus[i].cTextColor = cOrange
}
else
if(nLanceStatus[i] == 3)
{
oPStatus[i].cTextColor = cRed
}
initialize(oPStatus[i])
pilot_stats[0] = nGunNew[i]
pilot_stats[1] = nPilotNew[i]
pilot_stats[2] = 50
pilot_stats[3] = 50
for s = 0; s < 2; s++
{
r=(i*10) + s
oPilotstats[r] = s_statlines
oPilotstats[r].nPixelWidth = 80
oPilotstats[r].location = LM_X[j],LM_Y + ((4+S) * LM_YOff), 10
oPilotstats[r].bar_height = 10
oPilotstats[r].stat_val = pilot_stats[s]
oPilotstats[r].nSolid = 1
oPilotstats[r].stat_color = packcolor (0,0,128,255)
if(s == 0)
{
oPilotStats[r].nHelpID = IDS_HELP_CM_P_GUN
}
else
if(s == 1)
{
oPilotStats[r].nHelpID = IDS_HELP_CM_P_PILOT
}
else
if(s == 2)
{
oPilotStats[r].nHelpID = IDS_HELP_CM_P_SENSOR
}
else
if(s == 3)
{
oPilotStats[r].nHelpID = IDS_HELP_CM_P_BLIND
}
initialize(oPilotstats[r])
}
//Pilots Stats
pilot_base[0] = nGunBase[i]
pilot_base[1] = nPilotBase[i]
pilot_base[2] = 50
pilot_base[3] = 50
for s = 0; s < 2; s++
{
r=(i*10) + s
oPilotbase[r] = s_statlines
oPilotbase[r].nPixelWidth = 80
oPilotbase[r].location = LM_X[j],LM_Y + ((4+S) * LM_YOff), 35
oPilotbase[r].bar_height = 10
oPilotbase[r].nSolid = 0
oPilotbase[r].stat_val = pilot_base[s]
if(s == 0)
{
oPilotbase[r].nHelpID = IDS_HELP_CM_P_GUN
}
else
if(s == 1)
{
oPilotbase[r].nHelpID = IDS_HELP_CM_P_PILOT
}
else
if(s == 2)
{
oPilotbase[r].nHelpID = IDS_HELP_CM_P_SENSOR
}
else
if(s == 3)
{
oPilotbase[r].nHelpID = IDS_HELP_CM_P_BLIND
}
initialize(oPilotbase[r])
}
oMech[i] = s_Text
oMech[i].location = LM_X[j],LM_Y + (6 * LM_YOff),nZ_TEXT
oMech[i].nFontID = IDS_F_CM_LABEL
oMech[i].cTextColor = cWhite
oMech[i].nJustify = 0
oMech[i].nLayoutWidth = LM_W
oMech[i].nLayoutHeight = LM_H
oMech[i].szText = szMechName[i]
initialize(oMech[i])
oMechStatus[i] = s_Text
oMechStatus[i].location = LM_X[j],LM_Y + (7 * LM_YOff),nZ_TEXT
oMechStatus[i].nFontID = IDS_F_CM_LABEL
oMechStatus[i].cTextColor = cWhite
oMechStatus[i].nJustify = 0
oMechStatus[i].nLayoutWidth = LM_W
oMechStatus[i].nLayoutHeight= LM_H
oMechStatus[i].szText = szMStatus[nMechStatus[i]]
if(nMechStatus[i] == 0)
{
oMechStatus[i].cTextColor = cWhite
}
else
if(nMechStatus[i] == 1)
{
oMechStatus[i].cTextColor = cYellow
}
else
if(nMechStatus[i] == 2)
{
oMechStatus[i].cTextColor = cRed
}
initialize(oMechStatus[i])
}
//Buttons
object o_Close_button = s_multistatepane
o_Close_button.file = WPATH "button_reg_200x27m_4state.tga"
o_Close_button.text = localize$(IDS_OM_VA_CLOSE)
o_Close_button.total_states = 4
o_Close_button.location = 560,555,nZ_BUTTON
initialize (o_Close_button)
sound btnTriggeredSound = SPATH "sfx_button5.wav"
//Drop Downs
int obj_size = 7
// Initialize the mc list box for pilot info
object oDPilot = s_mc_listbox
oDPilot.location = 21, 250, nZ_LISTBOX
oDPilot.itemWidth = 420
oDPilot.itemHeight = 1
oDPilot.itemHeight_padding = 0
oDPilot.list_size = obj_size
oDPilot.max_displayed = 120
oDPilot.top_of_list = 0
oDPilot.label = localize$(IDS_CMW_PILOT_TITLE)
oDPilot.offsetLabel = 0,-18
oDPilot.first_delay = 10
oDPilot.second_delay = 3
// Specify number of columns
oDPilot.num_of_columns = 2
oDPilot.column[0].location.x = 5
oDPilot.column[0].fontcolor = cWhite
oDPilot.offsetx[1] = 5
oDPilot.column[0].fontAlignment = just_left
oDPilot.column[1].location.x = 230
oDPilot.column[1].fontcolor = cWhite
oDPilot.column[1].fontAlignment = just_left
// Now store the pilot entries in the list box
string szPlayerMech
int nPMechStatus
callback($$Shell_CallbackHandler$$, ShellCampaignGetPlayerStatus,szPlayerMech,nPMechStatus)
oDPilot.column[0].list_item[0] = szPlayerMech
oDPilot.column[1].list_item[0] = szMStatus[nPMechStatus]
for (i = 1; i < obj_size; i++)
{
oDPilot.column[0].list_item[i] = ""
oDPilot.column[1].list_item[i] = ""
mail(i, this)
oDPilot.list_order[i] = i
}
initialize(oDPilot)
// Initialize the mc list box for Mech Salvage
string szMechSalvage[22]
int nMSalvageStatus[22]
int nMechNum
callback($$Shell_CallbackHandler$$, ShellCampaignGetMechSalvage,szMechSalvage[],nMSalvageStatus[],nMechNum)
object oDMechSalvage = s_mc_listbox
oDMechSalvage.location = 470, 250, nZ_LISTBOX
oDMechSalvage.itemWidth = 295
oDMechSalvage.itemHeight = 1
oDMechSalvage.itemHeight_padding = 1
oDMechSalvage.list_size = nMechNum
oDMechSalvage.column_header_height = 20
oDMechSalvage.max_displayed = 120
oDMechSalvage.uniform_item_height = 0
oDMechSalvage.arrowHeight = 20
oDMechSalvage.top_of_list = 0
oDMechSalvage.label = localize$(IDS_CMW_MECHSALVAGE_TITLE)
oDMechSalvage.offsetLabel = 0,-18
oDMechSalvage.buttonwidth = 16
oDMechSalvage.first_delay = 10
oDMechSalvage.second_delay = 3
// Specify number of columns
oDMechSalvage.num_of_columns = 2
oDMechSalvage.column[0].location.x = 5
oDMechSalvage.column[0].fontcolor = cWhite
oDMechSalvage.offsetx[1] = 5
oDMechSalvage.column[0].fontAlignment = just_left
oDMechSalvage.column[1].location.x = 170
oDMechSalvage.column[1].fontcolor = cWhite
oDMechSalvage.column[1].fontAlignment = just_left
// Now store the pilot entries in the list box
for (i = 0; i < nMechNum; i++)
{
oDMechSalvage.column[0].list_item[i] = szMechSalvage[i]
//oDMechSalvage.column[1].list_item[i] = szMStatus[nMSalvageStatus[i]]
oDMechSalvage.column[1].list_item[i] = conv$(nMSalvageStatus[i])
mail(i, this)
oDMechSalvage.list_order[i] = i
}
initialize(oDMechSalvage)
// Specify column headers
oDMechSalvage.column[0].o_header.s_text = localize$(IDS_CMW_LMNAME_TITLE)
oDMechSalvage.column[0].o_header.n_just = just_all
oDMechSalvage.column[1].o_header.s_text = localize$(IDS_CMW_AMOUNT)
oDMechSalvage.column[1].o_header.n_just = just_all
//Component salvage
string szCompSalvage[60]
int nCSalvageStatus[60]
int nCompNum
callback($$Shell_CallbackHandler$$, ShellCampaignGetWeaponSalvage,szCompSalvage[],nCSalvageStatus[],nCompNum)
object oDCompSalvage = s_mc_listbox
oDCompSalvage.location = 470, 400, nZ_LISTBOX
oDCompSalvage.itemWidth = 295
oDCompSalvage.itemHeight = 1
oDCompSalvage.itemHeight_padding = 1
oDCompSalvage.list_size = nCompNum
oDCompSalvage.column_header_height = 20
oDCompSalvage.max_displayed = 120
oDCompSalvage.uniform_item_height = 0
oDCompSalvage.arrowHeight = 20
oDCompSalvage.top_of_list = 0
oDCompSalvage.label = localize$(IDS_CMW_COMPSALVAGE_TITLE)
oDCompSalvage.offsetLabel = 0,-18
oDCompSalvage.buttonwidth = 16
oDCompSalvage.first_delay = 10
oDCompSalvage.second_delay = 3
// Specify number of columns
oDCompSalvage.num_of_columns = 2
oDCompSalvage.column[0].location.x = 5
oDCompSalvage.column[0].fontcolor = cWhite
oDCompSalvage.offsetx[1] = 5
oDCompSalvage.column[0].fontAlignment = just_left
oDCompSalvage.column[1].location.x = 170
oDCompSalvage.column[1].fontcolor = cWhite
oDCompSalvage.column[1].fontAlignment = just_left
// Now store the pilot entries in the list box
for (i = 0; i < nCompNum; i++)
{
oDCompSalvage.column[0].list_item[i] = szCompSalvage[i]
//oDCompSalvage.column[1].list_item[i] = szMStatus[nCSalvageStatus[i]]
oDCompSalvage.column[1].list_item[i] = conv$(nCSalvageStatus[i])
mail(i, this)
oDCompSalvage.list_order[i] = i
}
initialize(oDCompSalvage)
// Specify column headers
oDCompSalvage.column[0].o_header.s_text = localize$(IDS_CMW_LMNAME_TITLE)
oDCompSalvage.column[0].o_header.n_just = just_all
oDCompSalvage.column[1].o_header.s_text = localize$(IDS_CMW_AMOUNT)
oDCompSalvage.column[1].o_header.n_just = just_all
}
GUI_MAILBOX
{
switch (sender)
{
case o_Close_button:
{
play btnTriggeredSound,1
unfocus
// @SHELL@lastScreenDepth++
@SHELL@lastScreen[@SHELL@lastScreenDepth] = MAINMENU
@SHELL@currentScreen = CAMPAIGNLOBBY
}
break
}
}
GUI_DESTROY
{
unfocus
}
GUI_DRAW
{
}
}
// A utility class for showing the mouse pointer
o_MousePointer
{
GUI_CREATE
{
int showMousePointer = 1
pane p_pointer = GPATH "mouse_pointer.tga"
alphamode(p_pointer) = am_alpha_alphainvalpha
origin(p_pointer) = 0, 0
location.z = 255
}
GUI_DRAW
{
if (showMousePointer != 0)
{
render p_pointer, mouse.x, mouse.y
}
}
}