Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/proxy/src/lib/network/network_game_manager.h @ 9562

Last change on this file since 9562 was 9521, checked in by patrick, 18 years ago

extended the callback function for message handlers to match the new sender/dest message structure

File size: 2.2 KB
RevLine 
[6067]1/*!
2 * @file entity_manager.h
3 *  Manages creation and destruction of entities
4 */
[6111]5
[6116]6#ifndef _NETWORK_GAME_MANGER
7#define _NETWORK_GAME_MANAGER
[6067]8
9/* include this file, it contains some default definitions */
10#include "netdefs.h"
11
12/* include base_object.h since all classes are derived from this one */
13#include "synchronizeable.h"
[8147]14#include "playable.h"
[7954]15#include "message_manager.h"
[6067]16
[6111]17
[6341]18class TiXmlElement;
[6695]19class PNode;
[6111]20
[6695]21typedef enum NetworkGameManagerProtocol {
22  NET_CREATE_ENTITY = 0,
23  NET_REMOVE_ENTITY,
24  NET_CREATE_ENTITY_LIST,
25  NET_REMOVE_ENTITY_LIST,
26  NET_REQUEST_CREATE,
27  NET_REQUEST_REMOVE,
28  NET_YOU_ARE_ENTITY,
29  NET_REQUEST_ENTITY_LIST,
30
31  NET_NUMBER
[6341]32};
[6111]33
[6341]34struct clientBuffer
35{
36  int length;
37  int maxLength;
38  byte * buffer;
39};
[6111]40
[6067]41/*!
[9406]42 * a class that can create and remove entities over the network
[6067]43 */
[6116]44class NetworkGameManager: public Synchronizeable
[6067]45{
[9406]46
[6067]47  public:
[6981]48    virtual ~NetworkGameManager();
[9406]49
[6341]50    static NetworkGameManager* NetworkGameManager::getInstance()
51    { if (!NetworkGameManager::singletonRef) NetworkGameManager::singletonRef = new NetworkGameManager(); return NetworkGameManager::singletonRef; }
52
[6111]53
[8068]54    bool signalNewPlayer( int userId );
55    bool signalLeftPlayer( int userID );
[9406]56
[8147]57    void prefereTeam( int teamId );
[6111]58
[9406]59
[8068]60    inline void setGameState( int gameState ){ this->gameState = gameState; }
61    inline int getGameState(){ return this->gameState; }
[9406]62
[8147]63    void tick( float ds );
[9406]64
65    void removeSynchronizeable( int uniqueId );
[8708]66    void sendChatMessage( const std::string & message, int messageType );
[6111]67
[9406]68
[6067]69  private:
[6341]70    NetworkGameManager();
[9406]71
[9521]72    static bool delSynchronizeableHandler( MessageType messageType, byte * data, int dataLength, void * someData, int senderId, int destinationId  );
73    static bool preferedTeamHandler( MessageType messageType, byte * data, int dataLength, void * someData, int senderId, int destinationId  );
74    static bool chatMessageHandler( MessageType messageType, byte * data, int dataLength, void * someData, int senderId, int destinationId  );
[9406]75
[8147]76    void setPreferedTeam( int userId, int teamId );
[6111]77
[9406]78
79  private:
[6341]80    static NetworkGameManager*    singletonRef;
[9406]81
[8068]82    int                           gameState;
[9406]83
[8147]84    std::list<Playable*>          playablesToDelete;
[6067]85};
86
87#endif /*_ENTITY_MANGER*/
Note: See TracBrowser for help on using the repository browser.