/* 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 "Game.h" #include "NetLobbyServer.h" #include "NetServer.h" #include "Mission.h" #include "Types.h" #include "Universe.h" class StarServer : public Game { public: static StarServer* GetInstance(); StarServer(); virtual ~StarServer(); virtual bool Init(HINSTANCE hi, HINSTANCE hpi, LPSTR cmdline, int nCmdShow); virtual bool InitGame(); virtual void UpdateWorld(); virtual void GameState(); bool Server() const override; void SetGameMode(int mode) override; void CreateWorld(); protected: virtual void InstantiateMission(); Universe* world; Mission* current_mission; NetServer* admin_server; NetLobbyServer* lobby_server; private: static StarServer* instance; }; #endif // StarServer_h