GameExecutable: Separate Menu.h into multiple files.

Too many classes definitions in one file. Preparing for separation
Menu.cpp
This commit is contained in:
zcaliptium 2016-03-12 18:25:48 +03:00
parent 3b5fdcd03d
commit 216246cf15
34 changed files with 833 additions and 319 deletions

View File

@ -6,6 +6,7 @@
#pragma once #pragma once
#endif #endif
enum ArrowDir { enum ArrowDir {
AD_NONE, AD_NONE,
AD_UP, AD_UP,
@ -14,5 +15,4 @@ enum ArrowDir {
AD_RIGHT, AD_RIGHT,
}; };
#endif /* include-once check. */ #endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_FILEINFO_H
#define SE_INCL_FILEINFO_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
class CFileInfo {
public:
CListNode fi_lnNode;
CTFileName fi_fnFile;
CTString fi_strName;
};
#endif /* include-once check. */

View File

@ -0,0 +1,39 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_H
#define SE_INCL_GAME_MENU_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
class CGameMenu {
public:
CListHead gm_lhGadgets;
CGameMenu *gm_pgmParentMenu;
BOOL gm_bPopup;
const char *gm_strName; // menu name (for mod interface only)
class CMenuGadget *gm_pmgSelectedByDefault;
class CMenuGadget *gm_pmgArrowUp;
class CMenuGadget *gm_pmgArrowDn;
class CMenuGadget *gm_pmgListTop;
class CMenuGadget *gm_pmgListBottom;
INDEX gm_iListOffset;
INDEX gm_iListWantedItem; // item you want to focus initially
INDEX gm_ctListVisible;
INDEX gm_ctListTotal;
CGameMenu(void);
void ScrollList(INDEX iDir);
void KillAllFocuses(void);
virtual void Initialize_t(void);
virtual void Destroy(void);
virtual void StartMenu(void);
virtual void FillListItems(void);
virtual void EndMenu(void);
// return TRUE if handled
virtual BOOL OnKeyDown(int iVKey);
virtual BOOL OnChar(MSG msg);
virtual void Think(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_AUDIOOPTIONS_H
#define SE_INCL_GAME_MENU_AUDIOOPTIONS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CAudioOptionsMenu : public CGameMenu {
public:
void StartMenu(void);
void Initialize_t(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,22 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_CONFIRM_H
#define SE_INCL_GAME_MENU_CONFIRM_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CConfirmMenu : public CGameMenu {
public:
void Initialize_t(void);
// return TRUE if handled
BOOL OnKeyDown(int iVKey);
void BeLarge(void);
void BeSmall(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,21 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_CONTROLS_H
#define SE_INCL_GAME_MENU_CONTROLS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CControlsMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
void ObtainActionSettings(void);
void ApplyActionSettings(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,17 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_CREDITS_H
#define SE_INCL_GAME_MENU_CREDITS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CCreditsMenu : public CGameMenu {
public:
void Initialize_t(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,22 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_CUSTOMIZEAXIS_H
#define SE_INCL_GAME_MENU_CUSTOMIZEAXIS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CCustomizeAxisMenu : public CGameMenu {
public:
~CCustomizeAxisMenu(void);
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
void ObtainActionSettings(void);
void ApplyActionSettings(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,20 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_CUSTOMIZEKEYBOARD_H
#define SE_INCL_GAME_MENU_CUSTOMIZEKEYBOARD_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CCustomizeKeyboardMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
void FillListItems(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,17 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_DISABLED_H
#define SE_INCL_GAME_MENU_DISABLED_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CDisabledMenu : public CGameMenu {
public:
void Initialize_t(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_HIGHSCORE_H
#define SE_INCL_GAME_MENU_HIGHSCORE_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CHighScoreMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_INGAME_H
#define SE_INCL_GAME_MENU_INGAME_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CInGameMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,19 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_LEVELS_H
#define SE_INCL_GAME_MENU_LEVELS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CLevelsMenu : public CGameMenu {
public:
void Initialize_t(void);
void FillListItems(void);
void StartMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,50 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_LOADSAVE_H
#define SE_INCL_GAME_MENU_LOADSAVE_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CLoadSaveMenu : public CGameMenu {
public:
// settings adjusted before starting the menu
CGameMenu *gm_pgmNextMenu; // menu to go to after selecting a file (if null, use parent menu)
CTFileName gm_fnmSelected; // file that is selected initially
CTFileName gm_fnmDirectory; // directory that should be read
CTFileName gm_fnmBaseName; // base file name for saving (numbers are auto-added)
CTFileName gm_fnmExt; // accepted file extension
BOOL gm_bSave; // set when chosing file for saving
BOOL gm_bManage; // set if managing (rename/delet is enabled)
CTString gm_strSaveDes; // default description (if saving)
BOOL gm_bAllowThumbnails; // set when chosing file for saving
BOOL gm_bNoEscape; // forbid exiting with escape/rmb
#define LSSORT_NONE 0
#define LSSORT_NAMEUP 1
#define LSSORT_NAMEDN 2
#define LSSORT_FILEUP 3
#define LSSORT_FILEDN 4
INDEX gm_iSortType; // sort type
// function to activate when file is chosen
// return true if saving succeeded - description is saved automatically
// always return true for loading
BOOL(*gm_pAfterFileChosen)(const CTFileName &fnm);
// internal properties
CListHead gm_lhFileInfos; // all file infos to list
INDEX gm_iLastFile; // index of last saved file in numbered format
// called to get info of a file from directory, or to skip it
BOOL ParseFile(const CTFileName &fnm, CTString &strName);
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
void FillListItems(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_MAIN_H
#define SE_INCL_GAME_MENU_MAIN_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CMainMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_NETWORK_H
#define SE_INCL_GAME_MENU_NETWORK_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CNetworkMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,17 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_NETWORKJOIN_H
#define SE_INCL_GAME_MENU_NETWORKJOIN_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CNetworkJoinMenu : public CGameMenu {
public:
void Initialize_t(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,19 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_NETWORKOPEN_H
#define SE_INCL_GAME_MENU_NETWORKOPEN_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CNetworkOpenMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,19 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_NETWORKSTART_H
#define SE_INCL_GAME_MENU_NETWORKSTART_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CNetworkStartMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,17 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_OPTIONS_H
#define SE_INCL_GAME_MENU_OPTIONS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class COptionsMenu : public CGameMenu {
public:
void Initialize_t(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,24 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_PLAYERPROFILE_H
#define SE_INCL_GAME_MENU_PLAYERPROFILE_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CPlayerProfileMenu : public CGameMenu {
public:
INDEX *gm_piCurrentPlayer;
void Initialize_t(void);
INDEX ComboFromPlayer(INDEX iPlayer);
INDEX PlayerFromCombo(INDEX iCombo);
void SelectPlayer(INDEX iPlayer);
void ApplyComboPlayer(INDEX iPlayer);
void StartMenu(void);
void EndMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_RENDERINGOPTIONS_H
#define SE_INCL_GAME_MENU_RENDERINGOPTIONS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CRenderingOptionsMenu : public CGameMenu {
public:
void StartMenu(void);
void EndMenu(void);
void Initialize_t(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,21 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_SELECTPLAYERS_H
#define SE_INCL_GAME_MENU_SELECTPLAYERS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CSelectPlayersMenu : public CGameMenu {
public:
BOOL gm_bAllowDedicated;
BOOL gm_bAllowObserving;
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,22 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_SERVERS_H
#define SE_INCL_GAME_MENU_SERVERS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CServersMenu : public CGameMenu {
public:
BOOL m_bInternet;
void Initialize_t(void);
void StartMenu(void);
void Think(void);
BOOL OnKeyDown(int iVKey); // __Evolution
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_SINGLEPLAYER_H
#define SE_INCL_GAME_MENU_SINGLEPLAYER_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CSinglePlayerMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_SINGLEPLAYERNEW_H
#define SE_INCL_GAME_MENU_SINGLEPLAYERNEW_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CSinglePlayerNewMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_SPLITSCREEN_H
#define SE_INCL_GAME_MENU_SPLITSCREEN_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CSplitScreenMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,19 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_SPLITSTART_H
#define SE_INCL_GAME_MENU_SPLITSTART_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CSplitStartMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
};
#endif /* include-once check. */

22
Sources/SeriousSam/MVar.h Normal file
View File

@ -0,0 +1,22 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_VAR_H
#define SE_INCL_GAME_MENU_VAR_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CVarMenu : public CGameMenu {
public:
CTFileName gm_fnmMenuCFG;
void Initialize_t(void);
void FillListItems(void);
void StartMenu(void);
void EndMenu(void);
void Think(void);
};
#endif /* include-once check. */

View File

@ -0,0 +1,18 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_GAME_MENU_VIDEOOPTIONS_H
#define SE_INCL_GAME_MENU_VIDEOOPTIONS_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
#include "GameMenu.h"
class CVideoOptionsMenu : public CGameMenu {
public:
void StartMenu(void);
void Initialize_t(void);
};
#endif /* include-once check. */

View File

@ -12,6 +12,7 @@
#include "MenuPrinting.h" #include "MenuPrinting.h"
#include "LevelInfo.h" #include "LevelInfo.h"
#include "VarList.h" #include "VarList.h"
#include "FileInfo.h"
#include "MGArrow.h" #include "MGArrow.h"
#include "MGButton.h" #include "MGButton.h"
@ -28,6 +29,31 @@
#include "MGTrigger.h" #include "MGTrigger.h"
#include "MGVarButton.h" #include "MGVarButton.h"
#include "MAudioOptions.h"
#include "MConfirm.h"
#include "MControls.h"
#include "MCustomizeAxis.h"
#include "MCustomizeKeyboard.h"
#include "MCredits.h"
#include "MDisabled.h"
#include "MHighScore.h"
#include "MInGame.h"
#include "MLevels.h"
#include "MMain.h"
#include "MNetwork.h"
#include "MNetworkJoin.h"
#include "MNetworkOpen.h"
#include "MNetworkStart.h"
#include "MOptions.h"
#include "MRenderingOptions.h"
#include "MServers.h"
#include "MSinglePlayer.h"
#include "MSinglePlayerNew.h"
#include "MSplitScreen.h"
#include "MSplitStart.h"
#include "MVar.h"
#include "MVideoOptions.h"
// macros for translating radio button text arrays // macros for translating radio button text arrays
#define RADIOTRANS(str) ("ETRS" str) #define RADIOTRANS(str) ("ETRS" str)
#define TRANSLATERADIOARRAY(array) TranslateRadioTexts(array, ARRAYCOUNT(array)) #define TRANSLATERADIOARRAY(array) TranslateRadioTexts(array, ARRAYCOUNT(array))

View File

@ -1,5 +1,13 @@
/* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */ /* Copyright (c) 2002-2012 Croteam Ltd. All rights reserved. */
#ifndef SE_INCL_MENU_H
#define SE_INCL_MENU_H
#ifdef PRAGMA_ONCE
#pragma once
#endif
// set new thumbnail // set new thumbnail
void SetThumbnail(CTFileName fn); void SetThumbnail(CTFileName fn);
// remove thumbnail // remove thumbnail
@ -43,266 +51,13 @@ extern GameMode _gmRunningGameMode;
extern CGameMenu *pgmCurrentMenu; extern CGameMenu *pgmCurrentMenu;
class CGameMenu { #include "GameMenu.h"
public:
CListHead gm_lhGadgets;
CGameMenu *gm_pgmParentMenu;
BOOL gm_bPopup;
const char *gm_strName; // menu name (for mod interface only)
class CMenuGadget *gm_pmgSelectedByDefault;
class CMenuGadget *gm_pmgArrowUp;
class CMenuGadget *gm_pmgArrowDn;
class CMenuGadget *gm_pmgListTop;
class CMenuGadget *gm_pmgListBottom;
INDEX gm_iListOffset;
INDEX gm_iListWantedItem; // item you want to focus initially
INDEX gm_ctListVisible;
INDEX gm_ctListTotal;
CGameMenu(void);
void ScrollList(INDEX iDir);
void KillAllFocuses(void);
virtual void Initialize_t(void);
virtual void Destroy(void);
virtual void StartMenu(void);
virtual void FillListItems(void);
virtual void EndMenu(void);
// return TRUE if handled
virtual BOOL OnKeyDown( int iVKey);
virtual BOOL OnChar(MSG msg);
virtual void Think(void);
};
class CConfirmMenu : public CGameMenu { #include "MLoadSave.h"
public: #include "MPlayerProfile.h"
void Initialize_t(void); #include "MSelectPlayers.h"
// return TRUE if handled
BOOL OnKeyDown( int iVKey);
void BeLarge(void);
void BeSmall(void);
};
class CMainMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
class CInGameMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
class CSinglePlayerMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
class CCreditsMenu : public CGameMenu {
public:
void Initialize_t(void);
};
class CDisabledMenu : public CGameMenu {
public:
void Initialize_t(void);
};
class CSinglePlayerNewMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
class CLevelsMenu : public CGameMenu {
public:
void Initialize_t(void);
void FillListItems(void);
void StartMenu(void);
};
class CVarMenu : public CGameMenu {
public:
CTFileName gm_fnmMenuCFG;
void Initialize_t(void);
void FillListItems(void);
void StartMenu(void);
void EndMenu(void);
void Think(void);
};
class CServersMenu : public CGameMenu {
public:
BOOL m_bInternet;
void Initialize_t(void);
void StartMenu(void);
void Think(void);
BOOL OnKeyDown(int iVKey); // __Evolution
};
class CPlayerProfileMenu : public CGameMenu {
public:
INDEX *gm_piCurrentPlayer;
void Initialize_t(void);
INDEX ComboFromPlayer(INDEX iPlayer);
INDEX PlayerFromCombo(INDEX iCombo);
void SelectPlayer(INDEX iPlayer);
void ApplyComboPlayer(INDEX iPlayer);
void StartMenu(void);
void EndMenu(void);
};
class CControlsMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
void ObtainActionSettings(void);
void ApplyActionSettings(void);
};
class CFileInfo {
public:
CListNode fi_lnNode;
CTFileName fi_fnFile;
CTString fi_strName;
};
class CLoadSaveMenu : public CGameMenu {
public:
// settings adjusted before starting the menu
CGameMenu *gm_pgmNextMenu; // menu to go to after selecting a file (if null, use parent menu)
CTFileName gm_fnmSelected; // file that is selected initially
CTFileName gm_fnmDirectory; // directory that should be read
CTFileName gm_fnmBaseName; // base file name for saving (numbers are auto-added)
CTFileName gm_fnmExt; // accepted file extension
BOOL gm_bSave; // set when chosing file for saving
BOOL gm_bManage; // set if managing (rename/delet is enabled)
CTString gm_strSaveDes; // default description (if saving)
BOOL gm_bAllowThumbnails; // set when chosing file for saving
BOOL gm_bNoEscape; // forbid exiting with escape/rmb
#define LSSORT_NONE 0
#define LSSORT_NAMEUP 1
#define LSSORT_NAMEDN 2
#define LSSORT_FILEUP 3
#define LSSORT_FILEDN 4
INDEX gm_iSortType; // sort type
// function to activate when file is chosen
// return true if saving succeeded - description is saved automatically
// always return true for loading
BOOL (*gm_pAfterFileChosen)(const CTFileName &fnm);
// internal properties
CListHead gm_lhFileInfos; // all file infos to list
INDEX gm_iLastFile; // index of last saved file in numbered format
// called to get info of a file from directory, or to skip it
BOOL ParseFile(const CTFileName &fnm, CTString &strName);
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
void FillListItems(void);
};
extern CLoadSaveMenu gmLoadSaveMenu; extern CLoadSaveMenu gmLoadSaveMenu;
class CHighScoreMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
class CNetworkMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
class CNetworkStartMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
};
class CNetworkOpenMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
};
class CNetworkJoinMenu : public CGameMenu {
public:
void Initialize_t(void);
};
class CSplitScreenMenu: public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
};
class CSplitStartMenu: public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
};
class CSelectPlayersMenu: public CGameMenu {
public:
BOOL gm_bAllowDedicated;
BOOL gm_bAllowObserving;
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
};
class COptionsMenu : public CGameMenu {
public:
void Initialize_t(void);
};
class CVideoOptionsMenu : public CGameMenu {
public:
void StartMenu(void);
void Initialize_t(void);
};
class CRenderingOptionsMenu : public CGameMenu {
public:
void StartMenu(void);
void EndMenu(void);
void Initialize_t(void);
};
class CAudioOptionsMenu : public CGameMenu {
public:
void StartMenu(void);
void Initialize_t(void);
};
class CCustomizeKeyboardMenu : public CGameMenu {
public:
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
void FillListItems(void);
};
class CCustomizeAxisMenu : public CGameMenu {
public:
~CCustomizeAxisMenu(void);
void Initialize_t(void);
void StartMenu(void);
void EndMenu(void);
void ObtainActionSettings(void);
void ApplyActionSettings(void);
};
#endif /* include-once check. */

View File

@ -224,10 +224,19 @@ copy Release\$(TargetName).map $(SolutionDir)..\Bin\ &gt;nul </Command>
<ClInclude Include="CDCheck.h" /> <ClInclude Include="CDCheck.h" />
<ClInclude Include="CmdLine.h" /> <ClInclude Include="CmdLine.h" />
<ClInclude Include="Credits.h" /> <ClInclude Include="Credits.h" />
<ClInclude Include="FileInfo.h" />
<ClInclude Include="GameMenu.h" />
<ClInclude Include="GLSettings.h" /> <ClInclude Include="GLSettings.h" />
<ClInclude Include="LCDDrawing.h" /> <ClInclude Include="LCDDrawing.h" />
<ClInclude Include="LevelInfo.h" /> <ClInclude Include="LevelInfo.h" />
<ClInclude Include="MainWindow.h" /> <ClInclude Include="MainWindow.h" />
<ClInclude Include="MAudioOptions.h" />
<ClInclude Include="MConfirm.h" />
<ClInclude Include="MControls.h" />
<ClInclude Include="MCredits.h" />
<ClInclude Include="MCustomizeAxis.h" />
<ClInclude Include="MCustomizeKeyboard.h" />
<ClInclude Include="MDisabled.h" />
<ClInclude Include="Menu.h" /> <ClInclude Include="Menu.h" />
<ClInclude Include="MenuGadget.h" /> <ClInclude Include="MenuGadget.h" />
<ClInclude Include="MenuPrinting.h" /> <ClInclude Include="MenuPrinting.h" />
@ -245,6 +254,26 @@ copy Release\$(TargetName).map $(SolutionDir)..\Bin\ &gt;nul </Command>
<ClInclude Include="MGTitle.h" /> <ClInclude Include="MGTitle.h" />
<ClInclude Include="MGTrigger.h" /> <ClInclude Include="MGTrigger.h" />
<ClInclude Include="MGVarButton.h" /> <ClInclude Include="MGVarButton.h" />
<ClInclude Include="MHighScore.h" />
<ClInclude Include="MInGame.h" />
<ClInclude Include="MLevels.h" />
<ClInclude Include="MLoadSave.h" />
<ClInclude Include="MMain.h" />
<ClInclude Include="MNetwork.h" />
<ClInclude Include="MNetworkJoin.h" />
<ClInclude Include="MNetworkOpen.h" />
<ClInclude Include="MNetworkStart.h" />
<ClInclude Include="MOptions.h" />
<ClInclude Include="MPlayerProfile.h" />
<ClInclude Include="MRenderingOptions.h" />
<ClInclude Include="MSelectPlayers.h" />
<ClInclude Include="MServers.h" />
<ClInclude Include="MSinglePlayer.h" />
<ClInclude Include="MSinglePlayerNew.h" />
<ClInclude Include="MSplitScreen.h" />
<ClInclude Include="MSplitStart.h" />
<ClInclude Include="MVar.h" />
<ClInclude Include="MVideoOptions.h" />
<ClInclude Include="resource.h" /> <ClInclude Include="resource.h" />
<ClInclude Include="SeriousSam.h" /> <ClInclude Include="SeriousSam.h" />
<ClInclude Include="SplashScreen.h" /> <ClInclude Include="SplashScreen.h" />

View File

@ -19,6 +19,18 @@
<Filter Include="Texts"> <Filter Include="Texts">
<UniqueIdentifier>{332d9393-d918-4caf-86b2-2e63c2cca9bd}</UniqueIdentifier> <UniqueIdentifier>{332d9393-d918-4caf-86b2-2e63c2cca9bd}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Source Files\Gadgets">
<UniqueIdentifier>{47ffb7e3-433b-480c-a22a-849524a5bd1e}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Gadgets headers">
<UniqueIdentifier>{3bc65fe2-8c15-4ecd-bf59-de962bb42275}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\Menus headers">
<UniqueIdentifier>{df54d6d1-39c3-4f26-93f8-116311f5a0eb}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\Menus">
<UniqueIdentifier>{9a04e8a8-ecfc-42c3-bf28-fe3d8b49e626}</UniqueIdentifier>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="CmdLine.cpp"> <ClCompile Include="CmdLine.cpp">
@ -39,9 +51,6 @@
<ClCompile Include="MainWindow.cpp"> <ClCompile Include="MainWindow.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Menu.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="MenuPrinting.cpp"> <ClCompile Include="MenuPrinting.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
@ -57,50 +66,53 @@
<ClCompile Include="VarList.cpp"> <ClCompile Include="VarList.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGVarButton.cpp">
<Filter>Source Files\Gadgets</Filter>
</ClCompile>
<ClCompile Include="MenuGadget.cpp"> <ClCompile Include="MenuGadget.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGArrow.cpp"> <ClCompile Include="MGArrow.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGButton.cpp"> <ClCompile Include="MGButton.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGChangePlayer.cpp"> <ClCompile Include="MGChangePlayer.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGEdit.cpp"> <ClCompile Include="MGEdit.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGFileButton.cpp"> <ClCompile Include="MGFileButton.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGHighScore.cpp"> <ClCompile Include="MGHighScore.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGKeyDefinition.cpp"> <ClCompile Include="MGKeyDefinition.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGLevelButton.cpp"> <ClCompile Include="MGLevelButton.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGModel.cpp"> <ClCompile Include="MGModel.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGServerList.cpp"> <ClCompile Include="MGServerList.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGSlider.cpp"> <ClCompile Include="MGSlider.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGTitle.cpp"> <ClCompile Include="MGTitle.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGTrigger.cpp"> <ClCompile Include="MGTrigger.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Gadgets</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="MGVarButton.cpp"> <ClCompile Include="Menu.cpp">
<Filter>Source Files</Filter> <Filter>Source Files\Menus</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -125,9 +137,6 @@
<ClInclude Include="MainWindow.h"> <ClInclude Include="MainWindow.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Menu.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MenuPrinting.h"> <ClInclude Include="MenuPrinting.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
@ -149,51 +158,141 @@
<ClInclude Include="MenuGadget.h"> <ClInclude Include="MenuGadget.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="MGArrow.h"> <ClInclude Include="ArrowDir.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGButton.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGChangePlayer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGEdit.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGFileButton.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGHighScore.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGKeyDefinition.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGLevelButton.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGModel.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGServerList.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGSlider.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGTitle.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MGTrigger.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="MGVarButton.h"> <ClInclude Include="MGVarButton.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGArrow.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGButton.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGChangePlayer.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGEdit.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGFileButton.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGHighScore.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGKeyDefinition.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGLevelButton.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGModel.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGServerList.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGSlider.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGTitle.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="MGTrigger.h">
<Filter>Header Files\Gadgets headers</Filter>
</ClInclude>
<ClInclude Include="GameMenu.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MConfirm.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MMain.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="Menu.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="ArrowDir.h"> <ClInclude Include="MInGame.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MSinglePlayer.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MCredits.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MDisabled.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MSinglePlayerNew.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MLevels.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MVar.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MServers.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MPlayerProfile.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MControls.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MLoadSave.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="FileInfo.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="MHighScore.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MNetwork.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MNetworkStart.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MNetworkOpen.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MNetworkJoin.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MSplitScreen.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MSplitStart.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MSelectPlayers.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MOptions.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MVideoOptions.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MRenderingOptions.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MAudioOptions.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MCustomizeKeyboard.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
<ClInclude Include="MCustomizeAxis.h">
<Filter>Header Files\Menus headers</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="SeriousSam.rc"> <ResourceCompile Include="SeriousSam.rc">