diff options
Diffstat (limited to 'StarsEx/StarServer.h')
-rw-r--r-- | StarsEx/StarServer.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/StarsEx/StarServer.h b/StarsEx/StarServer.h new file mode 100644 index 0000000..9776e07 --- /dev/null +++ b/StarsEx/StarServer.h @@ -0,0 +1,74 @@ +/* Starshatter: The Open Source Project + Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors + Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors + Copyright (c) 1997-2006, Destroyer Studios LLC. + + AUTHOR: John DiCamillo + +*/ + +#ifndef StarServer_h +#define StarServer_h + +#include "Types.h" +#include "Game.h" +#include "Bitmap.h" +#include "KeyMap.h" + +// +--------------------------------------------------------------------+ + +class Campaign; +class Ship; +class Sim; +class FadeView; +class CameraDirector; +class MultiController; +class MouseController; +class DataLoader; + +class NetServer; +class NetLobbyServer; + +// +--------------------------------------------------------------------+ + +class StarServer : public Game +{ +public: + StarServer(); + virtual ~StarServer(); + + virtual bool Init(HINSTANCE hi, HINSTANCE hpi, LPSTR cmdline, int nCmdShow); + virtual bool InitGame(); + virtual void GameState(); + + enum MODE { MENU_MODE, // main menu + LOAD_MODE, // loading mission into simulator + PLAY_MODE // active simulation + }; + + int GetGameMode() { return game_mode; } + void SetGameMode(int mode); + void SetNextMission(const char* script); + + void CreateWorld(); + void Shutdown(bool restart=false); + + static StarServer* GetInstance() { return instance; } + + +protected: + virtual bool GameLoop(); + virtual void UpdateWorld(); + virtual void InstantiateMission(); + + static StarServer* instance; + NetServer* admin_server; + NetLobbyServer* lobby_server; + DataLoader* loader; + + int game_mode; + DWORD time_mark; + DWORD minutes; +}; + +#endif // StarServer_h |