Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/network/network_game_manager.h @ 6224

Last change on this file since 6224 was 6139, checked in by patrick, 19 years ago

trunk: merged branche network with trunk using command: svn merge -r5999:HEAD, conflicts resolved in favor of the trunk bla

File size: 1.9 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
15
16
17/**
18 * protocol definition
19 *
20 *  CREATE_ENTITY:      CLASS_ID, UNIQUE_ID, OWNER
21 *  REMOVE_ENTITY:      UNIQUE_ID
22 *
23 *  CREATE_ENTITY_LIST: NUMBER, [CLASS_ID, UNIQUE_ID, OWNER][0..NUMBER]
24 *  REMOVE_ENTITY_LIST: NUMBER, [UNIQUE_ID][0..NUMBER]
25 *
26 *  REQUEST_CREATE:     CLASS_ID
27 *  REQUEST_REMOVE:     UNIQUE_ID
28 *
29 *  REQUEST_SYNC:       UNIQUE_ID
30 *  REQUEST_SYNC_LIST:  NUMBER, [UNIQUE_ID][0..NUMBER]
31 *
32 *
33 */
34
35
36
37
38
39
40
41
42
43
44/*!
45 * a class that can create and remove entities
46 */
47class NetworkGameManager: public Synchronizeable
48{
49  public:
50    NetworkGameManager();
51    ~NetworkGameManager();
52
53    virtual void writeBytes(const byte* data, int length);
54    virtual int readBytes(byte* data, int maxLength, int * reciever);
55    virtual void writeDebug() const;
56    virtual void readDebug() const;
57
58    void createEntity(int classID);
59    void createEntityList(int* classIDList);
60    void removeEntity(int uniqueID);
61    void removeEntityList(int* uniqueIDList);
62
63    void sync(int uniqueID);
64    void syncList(int* uniqueIDList);
65
66
67  private:
68    void requestCreateEntity(int classID);
69    void executeCreateEntity(int classID);
70    void requestCreateEntityList(int* classIDList);
71    void executeCreateEntityList(int* classIDList);
72
73    void requestRemoveEntity(int uniqueID);
74    void executeRemoveEntity(int uniqueID);
75    void requestRemoveEntityList(int* uniqueIDList);
76    void executeRemoveEntityList(int* uniqueIDList);
77
78
79
80    bool canCreateEntity(int classID);
81
82
83
84  private:
85    byte*          inBuffer;
86    byte*          outBuffer;
87};
88
89#endif /*_ENTITY_MANGER*/
Note: See TracBrowser for help on using the repository browser.