GameExecutable: Continue refactoring. Rename some files.

This commit is contained in:
zcaliptium 2016-03-30 22:25:24 +03:00
parent ef788b5299
commit de240b4ad7
10 changed files with 1082 additions and 1007 deletions

View File

@ -15,23 +15,9 @@
#include "FileInfo.h"
#include "MenuManager.h"
#include "GUI/Components/MGArrow.h"
#include "GUI/Components/MGButton.h"
#include "GUI/Components/MGChangePlayer.h"
#include "GUI/Components/MGEdit.h"
#include "GUI/Components/MGFileButton.h"
#include "GUI/Components/MGHighScore.h"
#include "GUI/Components/MGKeyDefinition.h"
#include "GUI/Components/MGLevelButton.h"
#include "GUI/Components/MGModel.h"
#include "GUI/Components/MGServerList.h"
#include "GUI/Components/MGSlider.h"
#include "GUI/Components/MGTitle.h"
#include "GUI/Components/MGTrigger.h"
#include "GUI/Components/MGVarButton.h"
#include "MenuActions.h"
#include "MenuStuff.h"
#include "Menu_starters.h"
#include "MenuStarters.h"
// macros for translating radio button text arrays
#define TRANSLATERADIOARRAY(array) TranslateRadioTexts(array, ARRAYCOUNT(array))
@ -68,26 +54,7 @@ extern CTString sam_strNetworkSettings;
void (*_pAfterLevelChosen)(void);
// functions for init actions
void InitActionsForAudioOptionsMenu();
void InitActionsForConfirmMenu();
void InitActionsForControlsMenu();
void InitActionsForCustomizeAxisMenu();
void InitActionsForMainMenu();
void InitActionsForInGameMenu();
void InitActionsForNetworkMenu();
void InitActionsForNetworkJoinMenu();
void InitActionsForNetworkOpenMenu();
void InitActionsForNetworkStartMenu();
void InitActionsForOptionsMenu();
void InitActionsForPlayerProfileMenu();
void InitActionsForSelectPlayersMenu();
void InitActionsForServersMenu();
void InitActionsForSinglePlayerMenu();
void InitActionsForSinglePlayerNewMenu();
void InitActionsForSplitScreenMenu();
void InitActionsForSplitStartMenu();
void InitActionsForVideoOptionsMenu();
void InitActionsForVarMenu();
void FixupBackButton(CGameMenu *pgm);

View File

@ -4,7 +4,7 @@
#include <Engine/Build.h>
#include "MenuManager.h"
#include "Menu_starters.h"
#include "MenuStarters.h"
#include "MenuStuff.h"
#include "GUI/Components/MenuGadget.h"
#include "LevelInfo.h"

View File

@ -0,0 +1,31 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_MENU_ACTIONS_H
#define SE_INCL_MENU_ACTIONS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
void InitActionsForAudioOptionsMenu();
void InitActionsForConfirmMenu();
void InitActionsForControlsMenu();
void InitActionsForCustomizeAxisMenu();
void InitActionsForMainMenu();
void InitActionsForInGameMenu();
void InitActionsForNetworkMenu();
void InitActionsForNetworkJoinMenu();
void InitActionsForNetworkOpenMenu();
void InitActionsForNetworkStartMenu();
void InitActionsForOptionsMenu();
void InitActionsForPlayerProfileMenu();
void InitActionsForSelectPlayersMenu();
void InitActionsForServersMenu();
void InitActionsForSinglePlayerMenu();
void InitActionsForSinglePlayerNewMenu();
void InitActionsForSplitScreenMenu();
void InitActionsForSplitStartMenu();
void InitActionsForVideoOptionsMenu();
void InitActionsForVarMenu();
#endif /* include-once check. */

View File

@ -0,0 +1,779 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
/* This file contains starter fuctions for all menus. */
#include "StdH.h"
#include <Engine/Build.h>
#include "MenuManager.h"
#include "MenuStarters.h"
#include "MenuStartersAF.h"
#include "MenuStuff.h"
#include "LevelInfo.h"
extern void(*_pAfterLevelChosen)(void);
extern BOOL _bPlayerMenuFromSinglePlayer;
extern CTString _strLastPlayerAppearance;
extern CTString sam_strNetworkSettings;
extern CTFileName _fnmModSelected;
extern CTString _strModURLSelected;
extern CTString _strModServerSelected;
void StartVideoOptionsMenu(void)
{
ChangeToMenu(&_pGUIM->gmVideoOptionsMenu);
}
void StartAudioOptionsMenu(void)
{
ChangeToMenu(&_pGUIM->gmAudioOptionsMenu);
}
void StartSinglePlayerMenu(void)
{
ChangeToMenu(&_pGUIM->gmSinglePlayerMenu);
}
void StartNetworkMenu(void)
{
ChangeToMenu(&_pGUIM->gmNetworkMenu);
}
void StartNetworkJoinMenu(void)
{
ChangeToMenu(&_pGUIM->gmNetworkJoinMenu);
}
void StartNetworkStartMenu(void)
{
ChangeToMenu(&_pGUIM->gmNetworkStartMenu);
}
void StartNetworkOpenMenu(void)
{
ChangeToMenu(&_pGUIM->gmNetworkOpenMenu);
}
void StartSplitScreenMenu(void)
{
ChangeToMenu(&_pGUIM->gmSplitScreenMenu);
}
void StartSplitStartMenu(void)
{
ChangeToMenu(&_pGUIM->gmSplitStartMenu);
}
void StartSinglePlayerNewMenuCustom(void)
{
_pGUIM->gmSinglePlayerNewMenu.gm_pgmParentMenu = &_pGUIM->gmLevelsMenu;
ChangeToMenu(&_pGUIM->gmSinglePlayerNewMenu);
}
static void SetQuickLoadNotes(void)
{
if (_pShell->GetINDEX("gam_iQuickSaveSlots") <= 8) {
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = TRANS(
"In-game QuickSave shortcuts:\n"
"F6 - save a new QuickSave\n"
"F9 - load the last QuickSave\n");
} else {
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
}
}
void StartSinglePlayerNewMenu(void)
{
_pGUIM->gmSinglePlayerNewMenu.gm_pgmParentMenu = &_pGUIM->gmSinglePlayerMenu;
extern CTString sam_strFirstLevel;
_pGame->gam_strCustomLevel = sam_strFirstLevel;
ChangeToMenu(&_pGUIM->gmSinglePlayerNewMenu);
}
#define CMENU _pGUIM->gmLoadSaveMenu
void StartSinglePlayerQuickLoadMenu(void)
{
_gmMenuGameMode = GM_SINGLE_PLAYER;
CMENU.gm_mgTitle.mg_strText = TRANS("QUICK LOAD");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory.PrintF("SaveGame\\Player%d\\Quick\\", _pGame->gm_iSinglePlayer);
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".sav");
CMENU.gm_pAfterFileChosen = &LSLoadSinglePlayer;
SetQuickLoadNotes();
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartSinglePlayerLoadMenu(void)
{
_gmMenuGameMode = GM_SINGLE_PLAYER;
CMENU.gm_mgTitle.mg_strText = TRANS("LOAD");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory.PrintF("SaveGame\\Player%d\\", _pGame->gm_iSinglePlayer);
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".sav");
CMENU.gm_pAfterFileChosen = &LSLoadSinglePlayer;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartSinglePlayerSaveMenu(void)
{
if (_gmRunningGameMode != GM_SINGLE_PLAYER) return;
// if no live players
if (_pGame->GetPlayersCount()>0 && _pGame->GetLivePlayersCount() <= 0) {
// do nothing
return;
}
_gmMenuGameMode = GM_SINGLE_PLAYER;
CMENU.gm_mgTitle.mg_strText = TRANS("SAVE");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = TRUE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory.PrintF("SaveGame\\Player%d\\", _pGame->gm_iSinglePlayer);
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmBaseName = CTString("SaveGame");
CMENU.gm_fnmExt = CTString(".sav");
CMENU.gm_pAfterFileChosen = &LSSaveAnyGame;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_strSaveDes = _pGame->GetDefaultGameDescription(TRUE);
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartDemoLoadMenu(void)
{
_gmMenuGameMode = GM_DEMO;
CMENU.gm_mgTitle.mg_strText = TRANS("PLAY DEMO");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory = CTString("Demos\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".dem");
CMENU.gm_pAfterFileChosen = &LSLoadDemo;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartDemoSaveMenu(void)
{
if (_gmRunningGameMode == GM_NONE) return;
_gmMenuGameMode = GM_DEMO;
CMENU.gm_mgTitle.mg_strText = TRANS("RECORD DEMO");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEUP;
CMENU.gm_bSave = TRUE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory = CTString("Demos\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmBaseName = CTString("Demo");
CMENU.gm_fnmExt = CTString(".dem");
CMENU.gm_pAfterFileChosen = &LSSaveDemo;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_strSaveDes = _pGame->GetDefaultGameDescription(FALSE);
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartNetworkQuickLoadMenu(void)
{
_gmMenuGameMode = GM_NETWORK;
CMENU.gm_mgTitle.mg_strText = TRANS("QUICK LOAD");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory = CTString("SaveGame\\Network\\Quick\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".sav");
CMENU.gm_pAfterFileChosen = &LSLoadNetwork;
SetQuickLoadNotes();
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartNetworkLoadMenu(void)
{
_gmMenuGameMode = GM_NETWORK;
CMENU.gm_mgTitle.mg_strText = TRANS("LOAD");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory = CTString("SaveGame\\Network\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".sav");
CMENU.gm_pAfterFileChosen = &LSLoadNetwork;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartNetworkSaveMenu(void)
{
if (_gmRunningGameMode != GM_NETWORK) return;
_gmMenuGameMode = GM_NETWORK;
CMENU.gm_mgTitle.mg_strText = TRANS("SAVE");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = TRUE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory = CTString("SaveGame\\Network\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmBaseName = CTString("SaveGame");
CMENU.gm_fnmExt = CTString(".sav");
CMENU.gm_pAfterFileChosen = &LSSaveAnyGame;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_strSaveDes = _pGame->GetDefaultGameDescription(TRUE);
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartSplitScreenQuickLoadMenu(void)
{
_gmMenuGameMode = GM_SPLIT_SCREEN;
CMENU.gm_mgTitle.mg_strText = TRANS("QUICK LOAD");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory = CTString("SaveGame\\SplitScreen\\Quick\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".sav");
CMENU.gm_pAfterFileChosen = &LSLoadSplitScreen;
SetQuickLoadNotes();
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartSplitScreenLoadMenu(void)
{
_gmMenuGameMode = GM_SPLIT_SCREEN;
CMENU.gm_mgTitle.mg_strText = TRANS("LOAD");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory = CTString("SaveGame\\SplitScreen\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".sav");
CMENU.gm_pAfterFileChosen = &LSLoadSplitScreen;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
void StartSplitScreenSaveMenu(void)
{
if (_gmRunningGameMode != GM_SPLIT_SCREEN) return;
_gmMenuGameMode = GM_SPLIT_SCREEN;
CMENU.gm_mgTitle.mg_strText = TRANS("SAVE");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEDN;
CMENU.gm_bSave = TRUE;
CMENU.gm_bManage = TRUE;
CMENU.gm_fnmDirectory = CTString("SaveGame\\SplitScreen\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmBaseName = CTString("SaveGame");
CMENU.gm_fnmExt = CTString(".sav");
CMENU.gm_pAfterFileChosen = &LSSaveAnyGame;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_strSaveDes = _pGame->GetDefaultGameDescription(TRUE);
CMENU.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&CMENU);
}
#undef CMENU
// game options var settings
void StartVarGameOptions(void)
{
_pGUIM->gmVarMenu.gm_mgTitle.mg_strText = TRANS("GAME OPTIONS");
_pGUIM->gmVarMenu.gm_fnmMenuCFG = CTFILENAME("Scripts\\Menu\\GameOptions.cfg");
ChangeToMenu(&_pGUIM->gmVarMenu);
}
void StartSinglePlayerGameOptions(void)
{
_pGUIM->gmVarMenu.gm_mgTitle.mg_strText = TRANS("GAME OPTIONS");
_pGUIM->gmVarMenu.gm_fnmMenuCFG = CTFILENAME("Scripts\\Menu\\SPOptions.cfg");
ChangeToMenu(&_pGUIM->gmVarMenu);
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmSinglePlayerMenu;
}
void StartGameOptionsFromNetwork(void)
{
StartVarGameOptions();
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkStartMenu;
}
void StartGameOptionsFromSplitScreen(void)
{
StartVarGameOptions();
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmSplitStartMenu;
}
// rendering options var settings
void StartRenderingOptionsMenu(void)
{
_pGUIM->gmVarMenu.gm_mgTitle.mg_strText = TRANS("RENDERING OPTIONS");
_pGUIM->gmVarMenu.gm_fnmMenuCFG = CTFILENAME("Scripts\\Menu\\RenderingOptions.cfg");
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmVideoOptionsMenu;
ChangeToMenu(&_pGUIM->gmVarMenu);
}
void StartCustomizeKeyboardMenu(void)
{
ChangeToMenu(&_pGUIM->gmCustomizeKeyboardMenu);
}
void StartCustomizeAxisMenu(void)
{
ChangeToMenu(&_pGUIM->gmCustomizeAxisMenu);
}
void StartOptionsMenu(void)
{
_pGUIM->gmOptionsMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmOptionsMenu);
}
void StartCurrentLoadMenu()
{
if (_gmRunningGameMode == GM_NETWORK) {
void StartNetworkLoadMenu(void);
StartNetworkLoadMenu();
} else if (_gmRunningGameMode == GM_SPLIT_SCREEN) {
void StartSplitScreenLoadMenu(void);
StartSplitScreenLoadMenu();
} else {
void StartSinglePlayerLoadMenu(void);
StartSinglePlayerLoadMenu();
}
}
void StartCurrentSaveMenu()
{
if (_gmRunningGameMode == GM_NETWORK) {
void StartNetworkSaveMenu(void);
StartNetworkSaveMenu();
} else if (_gmRunningGameMode == GM_SPLIT_SCREEN) {
void StartSplitScreenSaveMenu(void);
StartSplitScreenSaveMenu();
} else {
void StartSinglePlayerSaveMenu(void);
StartSinglePlayerSaveMenu();
}
}
void StartCurrentQuickLoadMenu()
{
if (_gmRunningGameMode == GM_NETWORK) {
void StartNetworkQuickLoadMenu(void);
StartNetworkQuickLoadMenu();
} else if (_gmRunningGameMode == GM_SPLIT_SCREEN) {
void StartSplitScreenQuickLoadMenu(void);
StartSplitScreenQuickLoadMenu();
} else {
void StartSinglePlayerQuickLoadMenu(void);
StartSinglePlayerQuickLoadMenu();
}
}
void StartChangePlayerMenuFromOptions(void)
{
_bPlayerMenuFromSinglePlayer = FALSE;
_pGUIM->gmPlayerProfile.gm_piCurrentPlayer = &_pGame->gm_iSinglePlayer;
_pGUIM->gmPlayerProfile.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&_pGUIM->gmPlayerProfile);
}
void StartChangePlayerMenuFromSinglePlayer(void)
{
_iLocalPlayer = -1;
_bPlayerMenuFromSinglePlayer = TRUE;
_pGUIM->gmPlayerProfile.gm_piCurrentPlayer = &_pGame->gm_iSinglePlayer;
_pGUIM->gmPlayerProfile.gm_pgmParentMenu = &_pGUIM->gmSinglePlayerMenu;
ChangeToMenu(&_pGUIM->gmPlayerProfile);
}
void StartControlsMenuFromPlayer(void)
{
_pGUIM->gmControls.gm_pgmParentMenu = &_pGUIM->gmPlayerProfile;
ChangeToMenu(&_pGUIM->gmControls);
}
void StartControlsMenuFromOptions(void)
{
_pGUIM->gmControls.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&_pGUIM->gmControls);
}
void StartSelectLevelFromSingle(void)
{
FilterLevels(GetSpawnFlagsForGameType(-1));
_pAfterLevelChosen = StartSinglePlayerNewMenuCustom;
ChangeToMenu(&_pGUIM->gmLevelsMenu);
_pGUIM->gmLevelsMenu.gm_pgmParentMenu = &_pGUIM->gmSinglePlayerMenu;
}
void StartHighScoreMenu(void)
{
_pGUIM->gmHighScoreMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmHighScoreMenu);
}
void StartSplitScreenGame(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
CTFileName fnWorld = _pGame->gam_strCustomLevel;
_pGame->gm_strNetworkProvider = "Local";
CUniversalSessionProperties sp;
_pGame->SetMultiPlayerSession(sp);
if (_pGame->NewGame(fnWorld.FileName(), fnWorld, sp))
{
StopMenus();
_gmRunningGameMode = GM_SPLIT_SCREEN;
} else {
_gmRunningGameMode = GM_NONE;
}
}
void StartSelectPlayersMenuFromSplit(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &StartSplitScreenGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmSplitStartMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
}
void StartNetworkGame(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
CTFileName fnWorld = _pGame->gam_strCustomLevel;
_pGame->gm_strNetworkProvider = "TCP/IP Server";
CUniversalSessionProperties sp;
_pGame->SetMultiPlayerSession(sp);
if (_pGame->NewGame(_pGame->gam_strSessionName, fnWorld, sp))
{
StopMenus();
_gmRunningGameMode = GM_NETWORK;
// if starting a dedicated server
if (_pGame->gm_MenuSplitScreenCfg == CGame::SSC_DEDICATED) {
// pull down the console
extern INDEX sam_bToggleConsole;
sam_bToggleConsole = TRUE;
}
} else {
_gmRunningGameMode = GM_NONE;
}
}
void StartSelectPlayersMenuFromNetwork(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = TRUE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = TRUE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &StartNetworkGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkStartMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
}
void JoinNetworkGame(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
_pGame->gm_strNetworkProvider = "TCP/IP Client";
if (_pGame->JoinGame(CNetworkSession(_pGame->gam_strJoinAddress)))
{
StopMenus();
_gmRunningGameMode = GM_NETWORK;
} else {
if (_pNetwork->ga_strRequiredMod != "") {
extern CTFileName _fnmModToLoad;
extern CTString _strModServerJoin;
char strModName[256] = { 0 };
char strModURL[256] = { 0 };
_pNetwork->ga_strRequiredMod.ScanF("%250[^\\]\\%s", &strModName, &strModURL);
_fnmModSelected = CTString(strModName);
_strModURLSelected = strModURL;
if (_strModURLSelected = "") {
_strModURLSelected = "http://www.croteam.com/mods/Old";
}
_strModServerSelected.PrintF("%s:%s", _pGame->gam_strJoinAddress, _pShell->GetValue("net_iPort"));
extern void ModConnectConfirm(void);
ModConnectConfirm();
}
_gmRunningGameMode = GM_NONE;
}
}
void StartSelectPlayersMenuFromOpen(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = TRUE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &JoinNetworkGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkOpenMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
/*if (sam_strNetworkSettings=="")*/ {
void StartNetworkSettingsMenu(void);
StartNetworkSettingsMenu();
_pGUIM->gmLoadSaveMenu.gm_bNoEscape = TRUE;
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkOpenMenu;
_pGUIM->gmLoadSaveMenu.gm_pgmNextMenu = &_pGUIM->gmSelectPlayersMenu;
}
}
void StartSelectPlayersMenuFromServers(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = TRUE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &JoinNetworkGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmServersMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
/*if (sam_strNetworkSettings=="")*/ {
void StartNetworkSettingsMenu(void);
StartNetworkSettingsMenu();
_pGUIM->gmLoadSaveMenu.gm_bNoEscape = TRUE;
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmServersMenu;
_pGUIM->gmLoadSaveMenu.gm_pgmNextMenu = &_pGUIM->gmSelectPlayersMenu;
}
}
void StartSelectServerLAN(void)
{
_pGUIM->gmServersMenu.m_bInternet = FALSE;
ChangeToMenu(&_pGUIM->gmServersMenu);
_pGUIM->gmServersMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkJoinMenu;
}
void StartSelectServerNET(void)
{
_pGUIM->gmServersMenu.m_bInternet = TRUE;
ChangeToMenu(&_pGUIM->gmServersMenu);
_pGUIM->gmServersMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkJoinMenu;
}
void StartSelectLevelFromSplit(void)
{
FilterLevels(GetSpawnFlagsForGameType(_pGUIM->gmSplitStartMenu.gm_mgGameType.mg_iSelected));
void StartSplitStartMenu(void);
_pAfterLevelChosen = StartSplitStartMenu;
ChangeToMenu(&_pGUIM->gmLevelsMenu);
_pGUIM->gmLevelsMenu.gm_pgmParentMenu = &_pGUIM->gmSplitStartMenu;
}
void StartSelectLevelFromNetwork(void)
{
FilterLevels(GetSpawnFlagsForGameType(_pGUIM->gmNetworkStartMenu.gm_mgGameType.mg_iSelected));
void StartNetworkStartMenu(void);
_pAfterLevelChosen = StartNetworkStartMenu;
ChangeToMenu(&_pGUIM->gmLevelsMenu);
_pGUIM->gmLevelsMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkStartMenu;
}
#define CMENU _pGUIM->gmSelectPlayersMenu
void StartSelectPlayersMenuFromSplitScreen(void)
{
CMENU.gm_bAllowDedicated = FALSE;
CMENU.gm_bAllowObserving = FALSE;
//CMENU.gm_mgStart.mg_pActivatedFunction = &StartSplitScreenGame;
CMENU.gm_pgmParentMenu = &_pGUIM->gmSplitScreenMenu;
ChangeToMenu(&CMENU);
}
void StartSelectPlayersMenuFromNetworkLoad(void)
{
CMENU.gm_bAllowDedicated = FALSE;
CMENU.gm_bAllowObserving = TRUE;
CMENU.gm_mgStart.mg_pActivatedFunction = &StartNetworkLoadGame;
CMENU.gm_pgmParentMenu = &_pGUIM->gmLoadSaveMenu;
ChangeToMenu(&CMENU);
}
void StartSelectPlayersMenuFromSplitScreenLoad(void)
{
CMENU.gm_bAllowDedicated = FALSE;
CMENU.gm_bAllowObserving = FALSE;
CMENU.gm_mgStart.mg_pActivatedFunction = &StartSplitScreenGameLoad;
CMENU.gm_pgmParentMenu = &_pGUIM->gmLoadSaveMenu;
ChangeToMenu(&CMENU);
}
#undef CMENU
// save/load menu calling functions
#define CMENU _pGUIM->gmLoadSaveMenu
void StartPlayerModelLoadMenu(void)
{
CMENU.gm_mgTitle.mg_strText = TRANS("CHOOSE MODEL");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_FILEUP;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = FALSE;
CMENU.gm_fnmDirectory = CTString("Models\\Player\\");
CMENU.gm_fnmSelected = _strLastPlayerAppearance;
CMENU.gm_fnmExt = CTString(".amc");
CMENU.gm_pAfterFileChosen = &LSLoadPlayerModel;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_pgmParentMenu = &_pGUIM->gmPlayerProfile;
ChangeToMenu(&CMENU);
}
void StartControlsLoadMenu(void)
{
CMENU.gm_mgTitle.mg_strText = TRANS("LOAD CONTROLS");
CMENU.gm_bAllowThumbnails = FALSE;
CMENU.gm_iSortType = LSSORT_FILEUP;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = FALSE;
CMENU.gm_fnmDirectory = CTString("Controls\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".ctl");
CMENU.gm_pAfterFileChosen = &LSLoadControls;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_pgmParentMenu = &_pGUIM->gmControls;
ChangeToMenu(&CMENU);
}
void StartCustomLoadMenu(void)
{
CMENU.gm_mgTitle.mg_strText = TRANS("ADVANCED OPTIONS");
CMENU.gm_bAllowThumbnails = FALSE;
CMENU.gm_iSortType = LSSORT_NAMEUP;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = FALSE;
CMENU.gm_fnmDirectory = CTString("Scripts\\CustomOptions\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".cfg");
CMENU.gm_pAfterFileChosen = &LSLoadCustom;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&CMENU);
}
void StartAddonsLoadMenu(void)
{
CMENU.gm_mgTitle.mg_strText = TRANS("EXECUTE ADDON");
CMENU.gm_bAllowThumbnails = FALSE;
CMENU.gm_iSortType = LSSORT_NAMEUP;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = FALSE;
CMENU.gm_fnmDirectory = CTString("Scripts\\Addons\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".ini");
CMENU.gm_pAfterFileChosen = &LSLoadAddon;
CMENU.gm_mgNotes.mg_strText = "";
CMENU.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&CMENU);
}
void StartModsLoadMenu(void)
{
CMENU.gm_mgTitle.mg_strText = TRANS("CHOOSE MOD");
CMENU.gm_bAllowThumbnails = TRUE;
CMENU.gm_iSortType = LSSORT_NAMEUP;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = FALSE;
CMENU.gm_fnmDirectory = CTString("Mods\\");
CMENU.gm_fnmSelected = CTString("");
CMENU.gm_fnmExt = CTString(".des");
CMENU.gm_pAfterFileChosen = &LSLoadMod;
CMENU.gm_pgmParentMenu = &_pGUIM->gmMainMenu;
ChangeToMenu(&CMENU);
}
void StartNetworkSettingsMenu(void)
{
CMENU.gm_mgTitle.mg_strText = TRANS("CONNECTION SETTINGS");
CMENU.gm_bAllowThumbnails = FALSE;
CMENU.gm_iSortType = LSSORT_FILEUP;
CMENU.gm_bSave = FALSE;
CMENU.gm_bManage = FALSE;
CMENU.gm_fnmDirectory = CTString("Scripts\\NetSettings\\");
CMENU.gm_fnmSelected = sam_strNetworkSettings;
CMENU.gm_fnmExt = CTString(".ini");
CMENU.gm_pAfterFileChosen = &LSLoadNetSettings;
if (sam_strNetworkSettings == "") {
CMENU.gm_mgNotes.mg_strText = TRANS(
"Before joining a network game,\n"
"you have to adjust your connection parameters.\n"
"Choose one option from the list.\n"
"If you have problems with connection, you can adjust\n"
"these parameters again from the Options menu.\n"
);
} else {
CMENU.gm_mgNotes.mg_strText = "";
}
CMENU.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&CMENU);
}
#undef CMENU

View File

@ -0,0 +1,219 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
/* This file contains additional functions called from starters. */
#include "StdH.h"
#include <Engine/Build.h>
#include "MenuManager.h"
#include "MenuStartersAF.h"
#include "MenuStarters.h"
CTFileName _fnDemoToPlay;
CTFileName _fnGameToLoad;
extern CTString sam_strNetworkSettings;
extern CTFileName _fnmModSelected;
extern CTString _strModURLSelected;
extern CTString _strModServerSelected;
BOOL LSLoadSinglePlayer(const CTFileName &fnm)
{
_pGame->gm_StartSplitScreenCfg = CGame::SSC_PLAY1;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_iSinglePlayer;
_pGame->gm_aiStartLocalPlayers[1] = -1;
_pGame->gm_aiStartLocalPlayers[2] = -1;
_pGame->gm_aiStartLocalPlayers[3] = -1;
_pGame->gm_strNetworkProvider = "Local";
if (_pGame->LoadGame(fnm)) {
StopMenus();
_gmRunningGameMode = GM_SINGLE_PLAYER;
}
else {
_gmRunningGameMode = GM_NONE;
}
return TRUE;
}
BOOL LSLoadNetwork(const CTFileName &fnm)
{
// call local players menu
_fnGameToLoad = fnm;
StartSelectPlayersMenuFromNetworkLoad();
return TRUE;
}
BOOL LSLoadSplitScreen(const CTFileName &fnm)
{
// call local players menu
_fnGameToLoad = fnm;
StartSelectPlayersMenuFromSplitScreenLoad();
return TRUE;
}
void StartDemoPlay(void)
{
_pGame->gm_StartSplitScreenCfg = CGame::SSC_OBSERVER;
// play the demo
_pGame->gm_strNetworkProvider = "Local";
if (_pGame->StartDemoPlay(_fnDemoToPlay))
{
// exit menu and pull up the console
StopMenus();
if (_pGame->gm_csConsoleState != CS_OFF) _pGame->gm_csConsoleState = CS_TURNINGOFF;
_gmRunningGameMode = GM_DEMO;
}
else {
_gmRunningGameMode = GM_NONE;
}
}
extern BOOL LSLoadDemo(const CTFileName &fnm)
{
// call local players menu
_fnDemoToPlay = fnm;
StartDemoPlay();
return TRUE;
}
BOOL LSLoadPlayerModel(const CTFileName &fnm)
{
// get base filename
CTString strBaseName = fnm.FileName();
// set it for current player
CPlayerCharacter &pc = _pGame->gm_apcPlayers[*_pGUIM->gmPlayerProfile.gm_piCurrentPlayer];
CPlayerSettings *pps = (CPlayerSettings *)pc.pc_aubAppearance;
memset(pps->ps_achModelFile, 0, sizeof(pps->ps_achModelFile));
strncpy(pps->ps_achModelFile, strBaseName, sizeof(pps->ps_achModelFile));
void MenuGoToParent(void);
MenuGoToParent();
return TRUE;
}
extern void ControlsMenuOn();
extern void ControlsMenuOff();
BOOL LSLoadControls(const CTFileName &fnm)
{
try {
ControlsMenuOn();
_pGame->gm_ctrlControlsExtra.Load_t(fnm);
ControlsMenuOff();
}
catch (char *strError) {
CPrintF("%s", strError);
}
void MenuGoToParent(void);
MenuGoToParent();
return TRUE;
}
BOOL LSLoadAddon(const CTFileName &fnm)
{
extern INDEX _iAddonExecState;
extern CTFileName _fnmAddonToExec;
_iAddonExecState = 1;
_fnmAddonToExec = fnm;
return TRUE;
}
BOOL LSLoadMod(const CTFileName &fnm)
{
_fnmModSelected = fnm;
extern void ModConfirm(void);
ModConfirm();
return TRUE;
}
BOOL LSLoadCustom(const CTFileName &fnm)
{
_pGUIM->gmVarMenu.gm_mgTitle.mg_strText = TRANS("ADVANCED OPTIONS");
// LoadStringVar(fnm.NoExt()+".des", mgVarTitle.mg_strText);
// mgVarTitle.mg_strText.OnlyFirstLine();
_pGUIM->gmVarMenu.gm_fnmMenuCFG = fnm;
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmLoadSaveMenu;
ChangeToMenu(&_pGUIM->gmVarMenu);
return TRUE;
}
BOOL LSLoadNetSettings(const CTFileName &fnm)
{
sam_strNetworkSettings = fnm;
CTString strCmd;
strCmd.PrintF("include \"%s\"", (const char*)sam_strNetworkSettings);
_pShell->Execute(strCmd);
void MenuGoToParent(void);
MenuGoToParent();
return TRUE;
}
// same function for saving in singleplay, network and splitscreen
BOOL LSSaveAnyGame(const CTFileName &fnm)
{
if (_pGame->SaveGame(fnm)) {
StopMenus();
return TRUE;
}
else {
return FALSE;
}
}
BOOL LSSaveDemo(const CTFileName &fnm)
{
// save the demo
if (_pGame->StartDemoRec(fnm)) {
StopMenus();
return TRUE;
}
else {
return FALSE;
}
}
void StartNetworkLoadGame(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
_pGame->gm_strNetworkProvider = "TCP/IP Server";
if (_pGame->LoadGame(_fnGameToLoad))
{
StopMenus();
_gmRunningGameMode = GM_NETWORK;
}
else {
_gmRunningGameMode = GM_NONE;
}
}
void StartSplitScreenGameLoad(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
_pGame->gm_strNetworkProvider = "Local";
if (_pGame->LoadGame(_fnGameToLoad)) {
StopMenus();
_gmRunningGameMode = GM_SPLIT_SCREEN;
}
else {
_gmRunningGameMode = GM_NONE;
}
}

View File

@ -0,0 +1,26 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_MENU_STARTERSAF_H
#define SE_INCL_MENU_STARTERSAF_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
BOOL LSLoadSinglePlayer(const CTFileName &fnm);
BOOL LSLoadNetwork(const CTFileName &fnm);
BOOL LSLoadSplitScreen(const CTFileName &fnm);
BOOL LSLoadDemo(const CTFileName &fnm);
BOOL LSLoadPlayerModel(const CTFileName &fnm);
BOOL LSLoadControls(const CTFileName &fnm);
BOOL LSLoadAddon(const CTFileName &fnm);
BOOL LSLoadMod(const CTFileName &fnm);
BOOL LSLoadCustom(const CTFileName &fnm);
BOOL LSLoadNetSettings(const CTFileName &fnm);
BOOL LSSaveAnyGame(const CTFileName &fnm);
BOOL LSSaveDemo(const CTFileName &fnm);
void StartDemoPlay(void);
void StartNetworkLoadGame(void);
void StartSplitScreenGameLoad(void);
#endif /* include-once check. */

View File

@ -1,959 +0,0 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#include "StdH.h"
#include <Engine/Build.h>
#include "MenuManager.h"
#include "Menu_starters.h"
#include "MenuStuff.h"
#include "LevelInfo.h"
extern void(*_pAfterLevelChosen)(void);
extern BOOL _bPlayerMenuFromSinglePlayer;
extern CTString _strLastPlayerAppearance;
extern CTString sam_strNetworkSettings;
extern CTFileName _fnmModSelected;
extern CTString _strModURLSelected;
extern CTString _strModServerSelected;
CTFileName _fnDemoToPlay;
CTFileName _fnGameToLoad;
void StartVideoOptionsMenu(void)
{
ChangeToMenu(&_pGUIM->gmVideoOptionsMenu);
}
void StartAudioOptionsMenu(void)
{
ChangeToMenu(&_pGUIM->gmAudioOptionsMenu);
}
void StartNetworkMenu(void)
{
ChangeToMenu(&_pGUIM->gmNetworkMenu);
}
void StartNetworkJoinMenu(void)
{
ChangeToMenu(&_pGUIM->gmNetworkJoinMenu);
}
void StartNetworkStartMenu(void)
{
ChangeToMenu(&_pGUIM->gmNetworkStartMenu);
}
void StartNetworkOpenMenu(void)
{
ChangeToMenu(&_pGUIM->gmNetworkOpenMenu);
}
void StartSplitScreenMenu(void)
{
ChangeToMenu(&_pGUIM->gmSplitScreenMenu);
}
void StartSplitStartMenu(void)
{
ChangeToMenu(&_pGUIM->gmSplitStartMenu);
}
void StartSinglePlayerNewMenuCustom(void)
{
_pGUIM->gmSinglePlayerNewMenu.gm_pgmParentMenu = &_pGUIM->gmLevelsMenu;
ChangeToMenu(&_pGUIM->gmSinglePlayerNewMenu);
}
static void SetQuickLoadNotes(void)
{
if (_pShell->GetINDEX("gam_iQuickSaveSlots") <= 8) {
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = TRANS(
"In-game QuickSave shortcuts:\n"
"F6 - save a new QuickSave\n"
"F9 - load the last QuickSave\n");
} else {
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
}
}
void StartSinglePlayerNewMenu(void)
{
_pGUIM->gmSinglePlayerNewMenu.gm_pgmParentMenu = &_pGUIM->gmSinglePlayerMenu;
extern CTString sam_strFirstLevel;
_pGame->gam_strCustomLevel = sam_strFirstLevel;
ChangeToMenu(&_pGUIM->gmSinglePlayerNewMenu);
}
BOOL LSLoadSinglePlayer(const CTFileName &fnm)
{
_pGame->gm_StartSplitScreenCfg = CGame::SSC_PLAY1;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_iSinglePlayer;
_pGame->gm_aiStartLocalPlayers[1] = -1;
_pGame->gm_aiStartLocalPlayers[2] = -1;
_pGame->gm_aiStartLocalPlayers[3] = -1;
_pGame->gm_strNetworkProvider = "Local";
if (_pGame->LoadGame(fnm)) {
StopMenus();
_gmRunningGameMode = GM_SINGLE_PLAYER;
} else {
_gmRunningGameMode = GM_NONE;
}
return TRUE;
}
BOOL LSLoadNetwork(const CTFileName &fnm)
{
// call local players menu
_fnGameToLoad = fnm;
StartSelectPlayersMenuFromNetworkLoad();
return TRUE;
}
BOOL LSLoadSplitScreen(const CTFileName &fnm)
{
// call local players menu
_fnGameToLoad = fnm;
StartSelectPlayersMenuFromSplitScreenLoad();
return TRUE;
}
void StartDemoPlay(void)
{
_pGame->gm_StartSplitScreenCfg = CGame::SSC_OBSERVER;
// play the demo
_pGame->gm_strNetworkProvider = "Local";
if (_pGame->StartDemoPlay(_fnDemoToPlay))
{
// exit menu and pull up the console
StopMenus();
if (_pGame->gm_csConsoleState != CS_OFF) _pGame->gm_csConsoleState = CS_TURNINGOFF;
_gmRunningGameMode = GM_DEMO;
} else {
_gmRunningGameMode = GM_NONE;
}
}
extern BOOL LSLoadDemo(const CTFileName &fnm)
{
// call local players menu
_fnDemoToPlay = fnm;
StartDemoPlay();
return TRUE;
}
BOOL LSLoadPlayerModel(const CTFileName &fnm)
{
// get base filename
CTString strBaseName = fnm.FileName();
// set it for current player
CPlayerCharacter &pc = _pGame->gm_apcPlayers[*_pGUIM->gmPlayerProfile.gm_piCurrentPlayer];
CPlayerSettings *pps = (CPlayerSettings *)pc.pc_aubAppearance;
memset(pps->ps_achModelFile, 0, sizeof(pps->ps_achModelFile));
strncpy(pps->ps_achModelFile, strBaseName, sizeof(pps->ps_achModelFile));
void MenuGoToParent(void);
MenuGoToParent();
return TRUE;
}
extern void ControlsMenuOn();
extern void ControlsMenuOff();
BOOL LSLoadControls(const CTFileName &fnm)
{
try {
ControlsMenuOn();
_pGame->gm_ctrlControlsExtra.Load_t(fnm);
ControlsMenuOff();
} catch (char *strError) {
CPrintF("%s", strError);
}
void MenuGoToParent(void);
MenuGoToParent();
return TRUE;
}
BOOL LSLoadAddon(const CTFileName &fnm)
{
extern INDEX _iAddonExecState;
extern CTFileName _fnmAddonToExec;
_iAddonExecState = 1;
_fnmAddonToExec = fnm;
return TRUE;
}
BOOL LSLoadMod(const CTFileName &fnm)
{
_fnmModSelected = fnm;
extern void ModConfirm(void);
ModConfirm();
return TRUE;
}
BOOL LSLoadCustom(const CTFileName &fnm)
{
_pGUIM->gmVarMenu.gm_mgTitle.mg_strText = TRANS("ADVANCED OPTIONS");
// LoadStringVar(fnm.NoExt()+".des", mgVarTitle.mg_strText);
// mgVarTitle.mg_strText.OnlyFirstLine();
_pGUIM->gmVarMenu.gm_fnmMenuCFG = fnm;
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmLoadSaveMenu;
ChangeToMenu(&_pGUIM->gmVarMenu);
return TRUE;
}
BOOL LSLoadNetSettings(const CTFileName &fnm)
{
sam_strNetworkSettings = fnm;
CTString strCmd;
strCmd.PrintF("include \"%s\"", (const char*)sam_strNetworkSettings);
_pShell->Execute(strCmd);
void MenuGoToParent(void);
MenuGoToParent();
return TRUE;
}
// same function for saving in singleplay, network and splitscreen
BOOL LSSaveAnyGame(const CTFileName &fnm)
{
if (_pGame->SaveGame(fnm)) {
StopMenus();
return TRUE;
} else {
return FALSE;
}
}
BOOL LSSaveDemo(const CTFileName &fnm)
{
// save the demo
if (_pGame->StartDemoRec(fnm)) {
StopMenus();
return TRUE;
} else {
return FALSE;
}
}
void StartSinglePlayerQuickLoadMenu(void)
{
_gmMenuGameMode = GM_SINGLE_PLAYER;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("QUICK LOAD");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory.PrintF("SaveGame\\Player%d\\Quick\\", _pGame->gm_iSinglePlayer);
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".sav");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadSinglePlayer;
SetQuickLoadNotes();
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartSinglePlayerLoadMenu(void)
{
_gmMenuGameMode = GM_SINGLE_PLAYER;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("LOAD");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory.PrintF("SaveGame\\Player%d\\", _pGame->gm_iSinglePlayer);
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".sav");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadSinglePlayer;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartSinglePlayerSaveMenu(void)
{
if (_gmRunningGameMode != GM_SINGLE_PLAYER) return;
// if no live players
if (_pGame->GetPlayersCount()>0 && _pGame->GetLivePlayersCount() <= 0) {
// do nothing
return;
}
_gmMenuGameMode = GM_SINGLE_PLAYER;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("SAVE");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = TRUE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory.PrintF("SaveGame\\Player%d\\", _pGame->gm_iSinglePlayer);
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmBaseName = CTString("SaveGame");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".sav");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSSaveAnyGame;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_strSaveDes = _pGame->GetDefaultGameDescription(TRUE);
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartDemoLoadMenu(void)
{
_gmMenuGameMode = GM_DEMO;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("PLAY DEMO");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("Demos\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".dem");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadDemo;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartDemoSaveMenu(void)
{
if (_gmRunningGameMode == GM_NONE) return;
_gmMenuGameMode = GM_DEMO;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("RECORD DEMO");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEUP;
_pGUIM->gmLoadSaveMenu.gm_bSave = TRUE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("Demos\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmBaseName = CTString("Demo");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".dem");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSSaveDemo;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_strSaveDes = _pGame->GetDefaultGameDescription(FALSE);
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartNetworkQuickLoadMenu(void)
{
_gmMenuGameMode = GM_NETWORK;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("QUICK LOAD");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("SaveGame\\Network\\Quick\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".sav");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadNetwork;
SetQuickLoadNotes();
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartNetworkLoadMenu(void)
{
_gmMenuGameMode = GM_NETWORK;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("LOAD");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("SaveGame\\Network\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".sav");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadNetwork;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartNetworkSaveMenu(void)
{
if (_gmRunningGameMode != GM_NETWORK) return;
_gmMenuGameMode = GM_NETWORK;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("SAVE");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = TRUE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("SaveGame\\Network\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmBaseName = CTString("SaveGame");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".sav");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSSaveAnyGame;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_strSaveDes = _pGame->GetDefaultGameDescription(TRUE);
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartSplitScreenQuickLoadMenu(void)
{
_gmMenuGameMode = GM_SPLIT_SCREEN;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("QUICK LOAD");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("SaveGame\\SplitScreen\\Quick\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".sav");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadSplitScreen;
SetQuickLoadNotes();
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartSplitScreenLoadMenu(void)
{
_gmMenuGameMode = GM_SPLIT_SCREEN;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("LOAD");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("SaveGame\\SplitScreen\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".sav");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadSplitScreen;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartSplitScreenSaveMenu(void)
{
if (_gmRunningGameMode != GM_SPLIT_SCREEN) return;
_gmMenuGameMode = GM_SPLIT_SCREEN;
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("SAVE");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEDN;
_pGUIM->gmLoadSaveMenu.gm_bSave = TRUE;
_pGUIM->gmLoadSaveMenu.gm_bManage = TRUE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("SaveGame\\SplitScreen\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmBaseName = CTString("SaveGame");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".sav");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSSaveAnyGame;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_strSaveDes = _pGame->GetDefaultGameDescription(TRUE);
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
// game options var settings
void StartVarGameOptions(void)
{
_pGUIM->gmVarMenu.gm_mgTitle.mg_strText = TRANS("GAME OPTIONS");
_pGUIM->gmVarMenu.gm_fnmMenuCFG = CTFILENAME("Scripts\\Menu\\GameOptions.cfg");
ChangeToMenu(&_pGUIM->gmVarMenu);
}
void StartSinglePlayerGameOptions(void)
{
_pGUIM->gmVarMenu.gm_mgTitle.mg_strText = TRANS("GAME OPTIONS");
_pGUIM->gmVarMenu.gm_fnmMenuCFG = CTFILENAME("Scripts\\Menu\\SPOptions.cfg");
ChangeToMenu(&_pGUIM->gmVarMenu);
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmSinglePlayerMenu;
}
void StartGameOptionsFromNetwork(void)
{
StartVarGameOptions();
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkStartMenu;
}
void StartGameOptionsFromSplitScreen(void)
{
StartVarGameOptions();
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmSplitStartMenu;
}
// rendering options var settings
void StartRenderingOptionsMenu(void)
{
_pGUIM->gmVarMenu.gm_mgTitle.mg_strText = TRANS("RENDERING OPTIONS");
_pGUIM->gmVarMenu.gm_fnmMenuCFG = CTFILENAME("Scripts\\Menu\\RenderingOptions.cfg");
_pGUIM->gmVarMenu.gm_pgmParentMenu = &_pGUIM->gmVideoOptionsMenu;
ChangeToMenu(&_pGUIM->gmVarMenu);
}
void StartCustomizeKeyboardMenu(void)
{
ChangeToMenu(&_pGUIM->gmCustomizeKeyboardMenu);
}
void StartCustomizeAxisMenu(void)
{
ChangeToMenu(&_pGUIM->gmCustomizeAxisMenu);
}
void StartOptionsMenu(void)
{
_pGUIM->gmOptionsMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmOptionsMenu);
}
void StartCurrentLoadMenu()
{
if (_gmRunningGameMode == GM_NETWORK) {
void StartNetworkLoadMenu(void);
StartNetworkLoadMenu();
} else if (_gmRunningGameMode == GM_SPLIT_SCREEN) {
void StartSplitScreenLoadMenu(void);
StartSplitScreenLoadMenu();
} else {
void StartSinglePlayerLoadMenu(void);
StartSinglePlayerLoadMenu();
}
}
void StartCurrentSaveMenu()
{
if (_gmRunningGameMode == GM_NETWORK) {
void StartNetworkSaveMenu(void);
StartNetworkSaveMenu();
} else if (_gmRunningGameMode == GM_SPLIT_SCREEN) {
void StartSplitScreenSaveMenu(void);
StartSplitScreenSaveMenu();
} else {
void StartSinglePlayerSaveMenu(void);
StartSinglePlayerSaveMenu();
}
}
void StartCurrentQuickLoadMenu()
{
if (_gmRunningGameMode == GM_NETWORK) {
void StartNetworkQuickLoadMenu(void);
StartNetworkQuickLoadMenu();
} else if (_gmRunningGameMode == GM_SPLIT_SCREEN) {
void StartSplitScreenQuickLoadMenu(void);
StartSplitScreenQuickLoadMenu();
} else {
void StartSinglePlayerQuickLoadMenu(void);
StartSinglePlayerQuickLoadMenu();
}
}
void StartChangePlayerMenuFromOptions(void)
{
_bPlayerMenuFromSinglePlayer = FALSE;
_pGUIM->gmPlayerProfile.gm_piCurrentPlayer = &_pGame->gm_iSinglePlayer;
_pGUIM->gmPlayerProfile.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&_pGUIM->gmPlayerProfile);
}
void StartChangePlayerMenuFromSinglePlayer(void)
{
_iLocalPlayer = -1;
_bPlayerMenuFromSinglePlayer = TRUE;
_pGUIM->gmPlayerProfile.gm_piCurrentPlayer = &_pGame->gm_iSinglePlayer;
_pGUIM->gmPlayerProfile.gm_pgmParentMenu = &_pGUIM->gmSinglePlayerMenu;
ChangeToMenu(&_pGUIM->gmPlayerProfile);
}
void StartControlsMenuFromPlayer(void)
{
_pGUIM->gmControls.gm_pgmParentMenu = &_pGUIM->gmPlayerProfile;
ChangeToMenu(&_pGUIM->gmControls);
}
void StartControlsMenuFromOptions(void)
{
_pGUIM->gmControls.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&_pGUIM->gmControls);
}
void StartSelectLevelFromSingle(void)
{
FilterLevels(GetSpawnFlagsForGameType(-1));
_pAfterLevelChosen = StartSinglePlayerNewMenuCustom;
ChangeToMenu(&_pGUIM->gmLevelsMenu);
_pGUIM->gmLevelsMenu.gm_pgmParentMenu = &_pGUIM->gmSinglePlayerMenu;
}
void StartHighScoreMenu(void)
{
_pGUIM->gmHighScoreMenu.gm_pgmParentMenu = pgmCurrentMenu;
ChangeToMenu(&_pGUIM->gmHighScoreMenu);
}
void StartSplitScreenGame(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
CTFileName fnWorld = _pGame->gam_strCustomLevel;
_pGame->gm_strNetworkProvider = "Local";
CUniversalSessionProperties sp;
_pGame->SetMultiPlayerSession(sp);
if (_pGame->NewGame(fnWorld.FileName(), fnWorld, sp))
{
StopMenus();
_gmRunningGameMode = GM_SPLIT_SCREEN;
} else {
_gmRunningGameMode = GM_NONE;
}
}
void StartSelectPlayersMenuFromSplit(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &StartSplitScreenGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmSplitStartMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
}
void StartNetworkGame(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
CTFileName fnWorld = _pGame->gam_strCustomLevel;
_pGame->gm_strNetworkProvider = "TCP/IP Server";
CUniversalSessionProperties sp;
_pGame->SetMultiPlayerSession(sp);
if (_pGame->NewGame(_pGame->gam_strSessionName, fnWorld, sp))
{
StopMenus();
_gmRunningGameMode = GM_NETWORK;
// if starting a dedicated server
if (_pGame->gm_MenuSplitScreenCfg == CGame::SSC_DEDICATED) {
// pull down the console
extern INDEX sam_bToggleConsole;
sam_bToggleConsole = TRUE;
}
} else {
_gmRunningGameMode = GM_NONE;
}
}
void StartSelectPlayersMenuFromNetwork(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = TRUE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = TRUE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &StartNetworkGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkStartMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
}
void JoinNetworkGame(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
_pGame->gm_strNetworkProvider = "TCP/IP Client";
if (_pGame->JoinGame(CNetworkSession(_pGame->gam_strJoinAddress)))
{
StopMenus();
_gmRunningGameMode = GM_NETWORK;
} else {
if (_pNetwork->ga_strRequiredMod != "") {
extern CTFileName _fnmModToLoad;
extern CTString _strModServerJoin;
char strModName[256] = { 0 };
char strModURL[256] = { 0 };
_pNetwork->ga_strRequiredMod.ScanF("%250[^\\]\\%s", &strModName, &strModURL);
_fnmModSelected = CTString(strModName);
_strModURLSelected = strModURL;
if (_strModURLSelected = "") {
_strModURLSelected = "http://www.croteam.com/mods/Old";
}
_strModServerSelected.PrintF("%s:%s", _pGame->gam_strJoinAddress, _pShell->GetValue("net_iPort"));
extern void ModConnectConfirm(void);
ModConnectConfirm();
}
_gmRunningGameMode = GM_NONE;
}
}
void StartSelectPlayersMenuFromOpen(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = TRUE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &JoinNetworkGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkOpenMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
/*if (sam_strNetworkSettings=="")*/ {
void StartNetworkSettingsMenu(void);
StartNetworkSettingsMenu();
_pGUIM->gmLoadSaveMenu.gm_bNoEscape = TRUE;
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkOpenMenu;
_pGUIM->gmLoadSaveMenu.gm_pgmNextMenu = &_pGUIM->gmSelectPlayersMenu;
}
}
void StartSelectPlayersMenuFromServers(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = TRUE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &JoinNetworkGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmServersMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
/*if (sam_strNetworkSettings=="")*/ {
void StartNetworkSettingsMenu(void);
StartNetworkSettingsMenu();
_pGUIM->gmLoadSaveMenu.gm_bNoEscape = TRUE;
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmServersMenu;
_pGUIM->gmLoadSaveMenu.gm_pgmNextMenu = &_pGUIM->gmSelectPlayersMenu;
}
}
void StartSelectServerLAN(void)
{
_pGUIM->gmServersMenu.m_bInternet = FALSE;
ChangeToMenu(&_pGUIM->gmServersMenu);
_pGUIM->gmServersMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkJoinMenu;
}
void StartSelectServerNET(void)
{
_pGUIM->gmServersMenu.m_bInternet = TRUE;
ChangeToMenu(&_pGUIM->gmServersMenu);
_pGUIM->gmServersMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkJoinMenu;
}
void StartSelectLevelFromSplit(void)
{
FilterLevels(GetSpawnFlagsForGameType(_pGUIM->gmSplitStartMenu.gm_mgGameType.mg_iSelected));
void StartSplitStartMenu(void);
_pAfterLevelChosen = StartSplitStartMenu;
ChangeToMenu(&_pGUIM->gmLevelsMenu);
_pGUIM->gmLevelsMenu.gm_pgmParentMenu = &_pGUIM->gmSplitStartMenu;
}
void StartSelectLevelFromNetwork(void)
{
FilterLevels(GetSpawnFlagsForGameType(_pGUIM->gmNetworkStartMenu.gm_mgGameType.mg_iSelected));
void StartNetworkStartMenu(void);
_pAfterLevelChosen = StartNetworkStartMenu;
ChangeToMenu(&_pGUIM->gmLevelsMenu);
_pGUIM->gmLevelsMenu.gm_pgmParentMenu = &_pGUIM->gmNetworkStartMenu;
}
void StartSelectPlayersMenuFromSplitScreen(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = FALSE;
// gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &StartSplitScreenGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmSplitScreenMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
}
void StartNetworkLoadGame(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
_pGame->gm_strNetworkProvider = "TCP/IP Server";
if (_pGame->LoadGame(_fnGameToLoad))
{
StopMenus();
_gmRunningGameMode = GM_NETWORK;
} else {
_gmRunningGameMode = GM_NONE;
}
}
void StartSelectPlayersMenuFromNetworkLoad(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = TRUE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &StartNetworkLoadGame;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmLoadSaveMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
}
void StartSplitScreenGameLoad(void)
{
// _pGame->gm_MenuSplitScreenCfg = (enum CGame::SplitScreenCfg) mgSplitScreenCfg.mg_iSelected;
_pGame->gm_StartSplitScreenCfg = _pGame->gm_MenuSplitScreenCfg;
_pGame->gm_aiStartLocalPlayers[0] = _pGame->gm_aiMenuLocalPlayers[0];
_pGame->gm_aiStartLocalPlayers[1] = _pGame->gm_aiMenuLocalPlayers[1];
_pGame->gm_aiStartLocalPlayers[2] = _pGame->gm_aiMenuLocalPlayers[2];
_pGame->gm_aiStartLocalPlayers[3] = _pGame->gm_aiMenuLocalPlayers[3];
_pGame->gm_strNetworkProvider = "Local";
if (_pGame->LoadGame(_fnGameToLoad)) {
StopMenus();
_gmRunningGameMode = GM_SPLIT_SCREEN;
} else {
_gmRunningGameMode = GM_NONE;
}
}
void StartSelectPlayersMenuFromSplitScreenLoad(void)
{
_pGUIM->gmSelectPlayersMenu.gm_bAllowDedicated = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_bAllowObserving = FALSE;
_pGUIM->gmSelectPlayersMenu.gm_mgStart.mg_pActivatedFunction = &StartSplitScreenGameLoad;
_pGUIM->gmSelectPlayersMenu.gm_pgmParentMenu = &_pGUIM->gmLoadSaveMenu;
ChangeToMenu(&_pGUIM->gmSelectPlayersMenu);
}
// save/load menu calling functions
void StartPlayerModelLoadMenu(void)
{
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("CHOOSE MODEL");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEUP;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = FALSE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("Models\\Player\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = _strLastPlayerAppearance;
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".amc");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadPlayerModel;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmPlayerProfile;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartControlsLoadMenu(void)
{
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("LOAD CONTROLS");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = FALSE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEUP;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = FALSE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("Controls\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".ctl");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadControls;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmControls;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartCustomLoadMenu(void)
{
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("ADVANCED OPTIONS");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = FALSE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_NAMEUP;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = FALSE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("Scripts\\CustomOptions\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".cfg");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadCustom;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartAddonsLoadMenu(void)
{
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("EXECUTE ADDON");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = FALSE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_NAMEUP;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = FALSE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("Scripts\\Addons\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".ini");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadAddon;
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartModsLoadMenu(void)
{
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("CHOOSE MOD");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = TRUE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_NAMEUP;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = FALSE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("Mods\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = CTString("");
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".des");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadMod;
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmMainMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartNetworkSettingsMenu(void)
{
_pGUIM->gmLoadSaveMenu.gm_mgTitle.mg_strText = TRANS("CONNECTION SETTINGS");
_pGUIM->gmLoadSaveMenu.gm_bAllowThumbnails = FALSE;
_pGUIM->gmLoadSaveMenu.gm_iSortType = LSSORT_FILEUP;
_pGUIM->gmLoadSaveMenu.gm_bSave = FALSE;
_pGUIM->gmLoadSaveMenu.gm_bManage = FALSE;
_pGUIM->gmLoadSaveMenu.gm_fnmDirectory = CTString("Scripts\\NetSettings\\");
_pGUIM->gmLoadSaveMenu.gm_fnmSelected = sam_strNetworkSettings;
_pGUIM->gmLoadSaveMenu.gm_fnmExt = CTString(".ini");
_pGUIM->gmLoadSaveMenu.gm_pAfterFileChosen = &LSLoadNetSettings;
if (sam_strNetworkSettings == "") {
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = TRANS(
"Before joining a network game,\n"
"you have to adjust your connection parameters.\n"
"Choose one option from the list.\n"
"If you have problems with connection, you can adjust\n"
"these parameters again from the Options menu.\n"
);
} else {
_pGUIM->gmLoadSaveMenu.gm_mgNotes.mg_strText = "";
}
_pGUIM->gmLoadSaveMenu.gm_pgmParentMenu = &_pGUIM->gmOptionsMenu;
ChangeToMenu(&_pGUIM->gmLoadSaveMenu);
}
void StartSinglePlayerMenu(void)
{
ChangeToMenu(&_pGUIM->gmSinglePlayerMenu);
}

View File

@ -202,10 +202,11 @@ copy Release\$(TargetName).map $(SolutionDir)..\Bin\ &gt;nul </Command>
<ClCompile Include="GUI\Menus\MCustomizeKeyboard.cpp" />
<ClCompile Include="GUI\Menus\MDisabled.cpp" />
<ClCompile Include="GUI\Menus\Menu.cpp" />
<ClCompile Include="GUI\Menus\MenuStartersAF.cpp" />
<ClCompile Include="GUI\Menus\MenuManager.cpp" />
<ClCompile Include="GUI\Menus\MenuPrinting.cpp" />
<ClCompile Include="GUI\Menus\MenuStuff.cpp" />
<ClCompile Include="GUI\Menus\Menu_actions.cpp" />
<ClCompile Include="GUI\Menus\MenuActions.cpp" />
<ClCompile Include="GUI\Menus\MHighScore.cpp" />
<ClCompile Include="GUI\Menus\MInGame.cpp" />
<ClCompile Include="GUI\Menus\MLevels.cpp" />
@ -252,10 +253,12 @@ copy Release\$(TargetName).map $(SolutionDir)..\Bin\ &gt;nul </Command>
<ClInclude Include="GUI\Menus\MCustomizeKeyboard.h" />
<ClInclude Include="GUI\Menus\MDisabled.h" />
<ClInclude Include="GUI\Menus\Menu.h" />
<ClInclude Include="GUI\Menus\MenuActions.h" />
<ClInclude Include="GUI\Menus\MenuManager.h" />
<ClInclude Include="GUI\Menus\MenuPrinting.h" />
<ClInclude Include="GUI\Menus\MenuStartersAF.h" />
<ClInclude Include="GUI\Menus\MenuStuff.h" />
<ClInclude Include="GUI\Menus\Menu_starters.h" />
<ClInclude Include="GUI\Menus\MenuStarters.h" />
<ClInclude Include="GUI\Menus\MHighScore.h" />
<ClInclude Include="GUI\Menus\MInGame.h" />
<ClInclude Include="GUI\Menus\MLevels.h" />
@ -276,7 +279,7 @@ copy Release\$(TargetName).map $(SolutionDir)..\Bin\ &gt;nul </Command>
<ClInclude Include="GUI\Menus\MSplitStart.h" />
<ClInclude Include="GUI\Menus\MVar.h" />
<ClInclude Include="GUI\Menus\MVideoOptions.h" />
<ClCompile Include="GUI\Menus\Menu_starters.cpp" />
<ClCompile Include="GUI\Menus\MenuStarters.cpp" />
<ClCompile Include="SeriousSam.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Use</PrecompiledHeader>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">StdH.h</PrecompiledHeaderFile>

View File

@ -201,15 +201,18 @@
<ClCompile Include="GUI\Menus\MenuPrinting.cpp">
<Filter>Source Files\GUI\Menus</Filter>
</ClCompile>
<ClCompile Include="GUI\Menus\Menu_starters.cpp">
<Filter>Source Files\GUI\Menus</Filter>
</ClCompile>
<ClCompile Include="GUI\Menus\Menu_actions.cpp">
<Filter>Source Files\GUI\Menus</Filter>
</ClCompile>
<ClCompile Include="GUI\Menus\MenuManager.cpp">
<Filter>Source Files\GUI\Menus</Filter>
</ClCompile>
<ClCompile Include="GUI\Menus\MenuStarters.cpp">
<Filter>Source Files\GUI\Menus</Filter>
</ClCompile>
<ClCompile Include="GUI\Menus\MenuStartersAF.cpp">
<Filter>Source Files\GUI\Menus</Filter>
</ClCompile>
<ClCompile Include="GUI\Menus\MenuActions.cpp">
<Filter>Source Files\GUI\Menus</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="CDCheck.h">
@ -392,10 +395,16 @@
<ClInclude Include="GUI\Menus\MenuPrinting.h">
<Filter>Header Files\GUI headers\Menus headers</Filter>
</ClInclude>
<ClInclude Include="GUI\Menus\Menu_starters.h">
<ClInclude Include="GUI\Menus\MenuManager.h">
<Filter>Header Files\GUI headers\Menus headers</Filter>
</ClInclude>
<ClInclude Include="GUI\Menus\MenuManager.h">
<ClInclude Include="GUI\Menus\MenuStarters.h">
<Filter>Header Files\GUI headers\Menus headers</Filter>
</ClInclude>
<ClInclude Include="GUI\Menus\MenuStartersAF.h">
<Filter>Header Files\GUI headers\Menus headers</Filter>
</ClInclude>
<ClInclude Include="GUI\Menus\MenuActions.h">
<Filter>Header Files\GUI headers\Menus headers</Filter>
</ClInclude>
</ItemGroup>