/* game/game.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_GAME_H__ #define __INCLUDED_GAME_H__ // project headers #include "game/ship.h" #include "game/star.h" #include "core/core.h" #include "sys/sys.h" // C++ headers #include #include /// the game-specific engine /** The main game functions. */ namespace game { // entity type constants const unsigned int ship_enttype = 256; const unsigned int star_enttype = 257; const unsigned int planet_enttype = 258; class Game : public core::Module { public: Game(); ~Game(); /// initialize the game void init(); /// shutdown the game void shutdown(); /// run one time frame void frame(float seconds); /// is called when a player connects void player_connect(core::Player *player); /// is called when a player disconnects void player_disconnect(core::Player *player); static inline Game *instance() { return game_instance; } core::Cvar *g_autolevel; private: bool load_world(); bool load_zone(core::Zone *zone); bool load_ships(); static Game *game_instance; }; } #endif // __INCLUDED_GAME_H__