Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

network: moved to network_game_manager

File size: 1.8 KB
Line 
1/*!
2 * @file entity_manager.h
3 *  Manages creation and destruction of entities
4 */
5
6#ifndef _ENTITY_MANGER
7#define _ENTITY_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 EntityManager: public Synchronizeable
48{
49  public:
50    EntityManager();
51    ~EntityManager();
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.