diff options
author | Stijn Buys <ingar@osirion.org> | 2008-02-18 17:52:15 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-02-18 17:52:15 +0000 |
commit | 0b8582a9aa825024edbd0a21c6287bfcccec28de (patch) | |
tree | 2d9a46c60b028300b1b9133b84764b6c39964c33 /src/core/gameinterface.h | |
parent | 982562fa19bb87a3dab352e562f386f61c171b7b (diff) |
core redesign, part II
Diffstat (limited to 'src/core/gameinterface.h')
-rw-r--r-- | src/core/gameinterface.h | 52 |
1 files changed, 19 insertions, 33 deletions
diff --git a/src/core/gameinterface.h b/src/core/gameinterface.h index 9eb6880..5e1f9be 100644 --- a/src/core/gameinterface.h +++ b/src/core/gameinterface.h @@ -12,55 +12,41 @@ namespace core { -/// broadcast a network message to all players -void message_broadcast(std::string const & message, int ignoreplayer=-1); - -/// send a message to a player -void message_send(Player &player, std::string const & message); - /// abstract interface from the core to the game-specific code class GameInterface { public: /// create a new game - GameInterface(const char *gamename = 0); + GameInterface(); + /// destroy the game virtual ~GameInterface(); - - /// a pointer to the current game instance - static GameInterface * instance(); - - /// true if the game is ready and running - bool connected; - - /// run one frame of the game - /// @param sec time since the previous frame, in seconds - virtual void frame(float seconds) = 0; - /// initialize the game - virtual bool init() = 0; +/*----- inspectors ---------------------------------------------- */ - /// shutdown the game - virtual void shutdown() = 0; + /// return the local player + inline Player *localplayer() { return &local_player; } + +/*----- virtual inspectors --------------------------------------- */ - /// is called when a player connects - virtual void player_connect(Player *player) = 0; + /// returns true if the game server can run a time frime + virtual bool running() = 0; - /// is called when a player disconnects - virtual void player_disconnect(Player *player) = 0; +/*----- mutators ------------------------------------------------- */ - static GameInterface *gameinterface_instance; + /// clear all game variables, game functions and entities + void clear(); - /// the name of the game - std::string const & name(); +/*----- virtual mutators ------------------------------------------ */ + + /// run one game time frame + /// @param sec time since the previous frame, in seconds + virtual void frame(float seconds) = 0; -private: - std::string game_name; +protected: + Player local_player; }; -/// pointer to the current GameInterface -GameInterface *game(); - } #endif // __INCLUDED_CORE_GAMEINTERFACE_H__ |