Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

Last change on this file since 8120 was 8120, checked in by rennerc, 18 years ago

spectator movement works now
old Playables will be deleted
teamchoice random works now

File size: 2.0 KB
Line 
1/*!
2 * @file entity_manager.h
3 *  Manages creation and destruction of entities
4 */
5
6#ifndef _NETWORK_GAME_MANGER
7#define _NETWORK_GAME_MANAGER
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"
14#include "playable.h"
15#include "message_manager.h"
16
17
18class TiXmlElement;
19class PNode;
20
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  NET_REQUEST_PNODE_PATH,
31  NET_SEND_PNODE_PATH,
32
33  NET_NUMBER
34};
35
36struct clientBuffer
37{
38  int length;
39  int maxLength;
40  byte * buffer;
41};
42
43/*!
44 * a class that can create and remove entities
45 */
46class NetworkGameManager: public Synchronizeable
47{
48  public:
49    virtual ~NetworkGameManager();
50   
51    static NetworkGameManager* NetworkGameManager::getInstance()
52    { if (!NetworkGameManager::singletonRef) NetworkGameManager::singletonRef = new NetworkGameManager(); return NetworkGameManager::singletonRef; }
53
54
55    bool signalNewPlayer( int userId );
56    bool signalLeftPlayer( int userID );
57   
58    void removeSynchronizeable( int uniqueId );
59   
60    void prefereTeam( int teamId );
61
62    inline void setGameState( int gameState ){ this->gameState = gameState; }
63    inline int getGameState(){ return this->gameState; }
64   
65    void tick( float ds );
66
67  private:
68    NetworkGameManager();
69   
70    static bool delSynchronizeableHandler( MessageId messageId, byte * data, int dataLength, void * someData, int userId );
71    static bool preferedTeamHandler( MessageId messageId, byte * data, int dataLength, void * someData, int userId );
72   
73    void setPreferedTeam( int userId, int teamId );
74
75    static NetworkGameManager*    singletonRef;
76   
77    int                           gameState;
78   
79    std::list<Playable*>          playablesToDelete;
80};
81
82#endif /*_ENTITY_MANGER*/
Note: See TracBrowser for help on using the repository browser.