GameInstance.h 925 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * GameInstance.h, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #pragma once
  11. class CServerHandler;
  12. class GlobalLobbyClient;
  13. class CPlayerInterface;
  14. class CMapHandler;
  15. VCMI_LIB_NAMESPACE_BEGIN
  16. class INetworkHandler;
  17. VCMI_LIB_NAMESPACE_END
  18. class GameInstance : boost::noncopyable
  19. {
  20. std::unique_ptr<CServerHandler> serverInstance;
  21. std::unique_ptr<CMapHandler> mapInstance;
  22. CPlayerInterface * interfaceInstance;
  23. public:
  24. GameInstance();
  25. ~GameInstance();
  26. CServerHandler & server();
  27. CMapHandler & map();
  28. CPlayerInterface * interface();
  29. void setServerInstance(std::unique_ptr<CServerHandler> ptr);
  30. void setMapInstance(std::unique_ptr<CMapHandler> ptr);
  31. void setInterfaceInstance(CPlayerInterface * ptr);
  32. };
  33. extern std::unique_ptr<GameInstance> GAME;