/* 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 Universe; 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(); bool Server() override { return true; } void SetGameMode(int mode) override; void SetNextMission(const char* script); void CreateWorld(); void Shutdown(bool restart=false); static StarServer* GetInstance() { return instance; } protected: virtual void UpdateWorld(); virtual void InstantiateMission(); Universe* world; NetServer* admin_server; NetLobbyServer* lobby_server; DataLoader* loader; DWORD time_mark; DWORD minutes; private: static StarServer* instance; }; #endif // StarServer_h