diff options
Diffstat (limited to 'src/gamehandler.h')
-rw-r--r-- | src/gamehandler.h | 51 |
1 files changed, 40 insertions, 11 deletions
diff --git a/src/gamehandler.h b/src/gamehandler.h index 4a017705..6a2da6e9 100644 --- a/src/gamehandler.h +++ b/src/gamehandler.h @@ -24,21 +24,50 @@ #ifndef _TMW_SERVER_GAMEHANDLER_ #define _TMW_SERVER_GAMEHANDLER_ -#include "messagehandler.h" +#include "account.h" +#include "being.h" +#include "connectionhandler.h" -class MessageIn; -class NetComputer; +class GameClient; -/** - * Manage main game events & server processing. +/* + * Manage connections to game server. */ -class GameHandler : public MessageHandler +class GameHandler: public ConnectionHandler { - public: - /** - * Recieve messages related to core game events - */ - void receiveMessage(NetComputer &computer, MessageIn &message); + public: + void process(); + + /** + * Send message to the given being. + */ + void sendTo(tmwserv::BeingPtr beingPtr, MessageOut &msg); + + protected: + NetComputer *computerConnected(ENetPeer *); + void computerDisconnected(NetComputer *); + + /** + * Process messages related to core game events. + */ + void processMessage(NetComputer *computer, MessageIn &message); + + private: + /** + * Display a message to every player around one's player + * in the default channel. + * The tile area has been set to 10 for now. + */ + void sayAround(GameClient &computer, std::string const &text); + + void removeOutdatedPending(); }; +/** + * Register future client attempt. Temporary until physical server split. + */ +void registerGameClient(std::string const &, tmwserv::BeingPtr); + +extern GameHandler *gameHandler; + #endif |