Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/proxy/src/defs/class_id.h @ 9575

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

found the bug. there is need for another control center for proxies to signal new clients and leavings. This is a central part of the proxy synchronization process

File size: 17.9 KB
Line 
1
2/*
3   orxonox - the future of 3D-vertical-scrollers
4
5   Copyright (C) 2004 orx
6
7   This program is free software; you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation; either version 2, or (at your option)
10   any later version.
11
12### File Specific:
13   main-programmer: Benjamin Grauer
14   co-programmer: Patrick Boenzli
15
16   2005-06-10: (bensch) added new sturcture to support multiple inheritance
17*/
18
19/*!
20 * @file class_id.h
21 * @brief contains a list of orxonox ClassID's (identities to register classes and their SuperClasses)
22 *
23 *  this File is used to identify an Object with its Class and also with its sub/super-classes.
24 *  this is also used by the ObjectManager/Factory to identify and load important classes
25 *
26 *  !! important !!
27 *  When adding a new CLASS be sure about the following:
28 *    1. if it is a (SUB)SUPERCLASS make sure there is still space left (if not think of a new approach)
29 *    2. check if the Number you add is not refered twice, and that with (SUB)SUPERCLASSES there are no intersections
30 *    3. be sure to add you stuff in the right section, and don't interest yourself for the order of things. :)
31 */
32
33#ifndef _CLASS_ID_H
34#define _CLASS_ID_H
35
36//! list of all classes to be loadable in via the ObjectManager
37/**
38 *
39 * -------------------------------------------------------------------------------------------
40 * Consider the Identifiers 0xABCDEFGH
41 * The first two: A and B are superclass Identifiers !! THEY ARE ALREADY FULL !!
42 *
43 * The second three are for sub-superclass-groups inheritance:
44 *  C: a Group identifier: can be anything from 1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h
45 *  D,E: Member within the Group, to specify further deriavtions within the Group.
46 *       These may be anything from 1,2,4,8 (at D and E)
47 *  !! consider, that you __may not__ have a derivated class from group a and group b.
48 *
49 * The last three entries F,G,H are for any leaf classes in existence.
50 * they are ordered in the following way:
51 *  F: LEAF-GroupSpecifier
52 *  G,H: UNIQUE NUMBER eithin F-Group.
53 *
54 * You only have to extend the Class with your ClassID-tag.
55 * If something goes Wrong, you get an Assertion-Warning in BaseObject.
56 * !! Abstrace/Non-total-leaf classes do not have a LEAF-part.
57 * -------------------------------------------------------------------------------------------
58 *
59 * COUNT:
60 * -> # max SuperClass-count        = 7 (not intersecting)
61 *    # max SubSuperClass-count     = 15*7 = 105 (the 7 classes will be able to get derived from each other, but not over the SubSuperClass.)
62 *    # max lowerClasses-count      = 3^16 = enough (they are Leaves, and may NOT be derived by any other class.)
63 */
64typedef enum ClassID
65{
66  // the Nothing CLASS (NULL)
67  CL_NULL                       =    0x00000000,
68
69  /// SUPER-classes
70  CL_MASK_SUPER_CLASS           =    0xff000000,
71  CL_BASE_OBJECT                =    0x00000000,
72
73  CL_PARENT_NODE                =    0x01000000,
74
75  CL_STORY_ENTITY               =    0x02000000,
76
77  CL_PHYSICS_INTERFACE          =    0x04000000,
78
79  CL_EVENT_LISTENER             =    0x08000000,
80
81  CL_ELEMENT_2D                 =    0x10000000,
82
83  CL_SYNCHRONIZEABLE            =    0x20000000,
84
85  CL_WORLD_ENTITY               =    0x40000000,
86
87  /// subsuper-classes
88  // subsuper-classes derivations taken : 1, 2, 5, a, b, c.   << THIS IS A LIST OF ALL THE DCL_MASK_SUBSUPERCLASS_ID's taken
89  CL_MASK_SUBSUPER_CLASS        =    0x00fff000,
90  CL_MASK_SUBSUPER_CLASS_IDA    =    0x00f00000,
91  CL_MASK_SUBSUPER_CLASS_IDB    =    0x000ff000,
92
93  // lowest level classes
94  // These are also referenced to as Leaf-classes
95  CL_MASK_LOWLEVEL_CLASS        =    0x00000fff,
96
97  CL_PREFERENCES                =    0X00000f51,
98
99  /// SINGLETON classes (range from 0x00000000 to 0x000000ff)
100  CL_MASK_SINGLETON             =    0x00000000,
101  CL_ORXONOX                    =    0x00000001,
102  CL_NULL_PARENT                =    0x00000002,
103  CL_PILOT_PARENT               =    0x00000003,
104  CL_OBJECT_MANAGER             =    0x00000004,
105  CL_RESOURCE_MANAGER           =    0x00000005,
106  CL_GARBAGE_COLLECTOR          =    0x00000006,
107  CL_GAME_LOADER                =    0x00000007,
108  CL_GRAPHICS_ENGINE            =    0x00000008,
109  CL_TEXT_ENGINE                =    0x00000009,
110  CL_LIGHT_MANAGER              =    0x0000000a,
111  CL_EVENT_HANDLER              =    0x0000000b,
112  CL_PHYSICS_ENGINE             =    0x0000000c,
113  CL_CD_ENGINE                  =    0x0000000d,
114  CL_PARTICLE_ENGINE            =    0x0000000e,
115  CL_SOUND_ENGINE               =    0x0000000f,
116  CL_ANIMATION_PLAYER           =    0x00000010,
117  CL_TRACK_MANAGER              =    0x00000011,
118  CL_TRACK_NODE                 =    0x00000012,
119  CL_STATE                      =    0x00000013,
120  CL_FRAMEWORK                  =    0x00000014,
121  CL_CR_ENGINE                  =    0x00000015,
122  CL_RENDER_2D                  =    0x00000021,
123  CL_NULL_ELEMENT_2D            =    0x00000022,
124  CL_SHELL_BUFFER               =    0x00000032,
125  CL_GLGUI_HANDLER              =    0x00000040,
126  CL_GLGUI_MAIN_WIDGET          =    0x00000041,
127  CL_NETWORK_MANAGER            =    0x00000050,
128  CL_SHARED_NETWORK_DATA        =    0x00000051,
129  CL_NETWORK_SETTINGS           =    0x00000052,
130  CL_ATMOSPHERIC_ENGINE         =    0x00000061,
131
132  /// StoryEntities (range from 0x00000100 to 0x000001ff)
133  CL_GAME_WORLD                 =    0x00101000,
134  CL_GAME_WORLD_DATA            =    0x00102000,
135  CL_GAME_RULES                 =    0x00104000,
136  CL_NETWORK_GAME_RULES         =    0x00108000,
137  CL_MISSION_GOAL               =    0x00110000,
138
139  CL_CAMPAIGN                   =    0x00000101,
140  CL_CAMPAIGN_DATA              =    0x00000102,
141  CL_SIMPLE_GAME_MENU           =    0x00000103,
142  CL_SIMPLE_GAME_MENU_DATA      =    0x00000104,
143  CL_SINGLE_PLAYER_WORLD        =    0x00000105,
144  CL_SINGLE_PLAYER_WORLD_DATA   =    0x00000106,
145  CL_MULTI_PLAYER_WORLD         =    0x00000107,
146  CL_MULTI_PLAYER_WORLD_DATA    =    0x00000108,
147  CL_MOVIE_LOADER               =    0x00000109,
148
149  CL_GAME_MENU                  =    0x00000110,
150  CL_GAME_MENU_DATA             =    0x00000111,
151
152
153  CL_MULTIPLAYER_TEAM_DEATHMATCH=    0x00000121,
154  CL_SINGLEPLAYER_SHOOTEMUP     =    0x00000122,
155
156  CL_KILL_TARGET                =    0x00105001,
157
158
159  /// SUPER-PNodes
160  CL_FIELD                      =    0x00201000,
161
162  /// PNodes
163  CL_CAMERA                     =    0x00000201,
164  CL_CAMERA_TARGET              =    0x00000202,
165
166
167  /// SUPER-WorldEntities
168  CL_PLAYER                     =    0x00302000,
169
170  CL_PLAYABLE                   =    0x00301000,
171  CL_NPC                        =    0x00304000,
172  CL_PROJECTILE                 =    0x00308000,
173  CL_WEAPON                     =    0x00310000,
174  CL_POWER_UP                   =    0x00320000,
175  CL_EXTENDABLE                 =    0x00340000,
176
177  /// WorldEntities (range from 0x00000300 to 0x000005ff)
178  // Environments
179  CL_ENVIRONMENT                =    0x00000303,
180  CL_SATELLITE                  =    0x00000304,
181  CL_SKYBOX                     =    0x00000305,
182  CL_SKYSPHERE                  =    0x00000306,
183  CL_TERRAIN                    =    0x00000307,
184  CL_WATER                      =    0x00000308,
185  CL_PLANET                     =    0x00000309,
186  CL_BUILDING                   =    0x00000310,
187  CL_MAPPED_WATER               =    0x00000311,
188  CL_BSP_ENTITY                 =    0x00000312,
189  CL_SKYDOME                    =    0x00000313,
190  CL_DOOR                       =    0x00000314,
191  CL_REPAIR_STATION             =    0x00000315,
192  CL_CRANE                      =    0x00000316,
193  CL_BRAKING_WALL               =    0X00000317,
194  CL_AIMING_SYSTEM              =    0x00000318,
195  CL_GATE                       =    0x00000319,
196
197  // Playables
198  CL_SPACE_SHIP                 =    0x0000035a,
199  CL_HELICOPTER                 =    0x0000035b,
200  CL_SPAWNING_POINT             =    0x0000035c,
201  CL_MD2_CREATURE               =    0x0000035d,
202  CL_HOVER                      =    0x0000035e,
203  CL_TURBINE_HOVER              =    0x0000035f,
204  CL_SPACECRAFT_2D              =    0x00000360,
205  CL_CRUIZER                    =    0x00000361,
206  CL_SPECTATOR                  =    0x0000036a,
207  CL_COLLISION_PROBE            =    0x0000036b,
208  CL_FPS_PLAYER                 =    0x0000036c,
209
210  // Powerups
211  CL_TURRET_POWER_UP            =    0x00000381,
212  CL_LASER_POWER_UP             =    0x00000382,
213  CL_WEAPON_POWER_UP            =    0x00000383,
214  CL_PARAM_POWER_UP             =    0x00000384,
215
216  // Weapons
217  CL_TEST_GUN                   =    0x000003a0,
218  CL_LASER_CANNON               =    0x000003a1,
219  CL_TURRET                     =    0x000003a2,
220  CL_AIMING_TURRET              =    0x000003a3,
221  CL_CANNON                     =    0x000003a4,
222  CL_TARGETING_TURRET           =    0x000003a5,
223  CL_HYPERBLASTER               =    0x000003a6,
224  CL_FPS_SNIPER_RIFLE           =    0x000003a7,
225  CL_FPS_LASER_RIFLE            =    0x000003a8,
226  CL_BOOMERANG_GUN              =    0x00000309,
227
228  // Projectiles
229  CL_TEST_BULLET                =    0x000003e0,
230  CL_ROCKET                     =    0x000003e1,
231  CL_LASER                      =    0x000003e2,
232  CL_RAIL_PROJECTILE            =    0x000003e3,
233  CL_BOMB                       =    0x000003e4,
234  CL_GROUND_TURRET              =    0x000003e5,
235  CL_SPACE_TURRET               =    0x000003e6,
236  CL_GUIDED_MISSILE             =    0x000003e7,
237  CL_HYPERBLAST                 =    0x000003e8,
238  CL_BOOMERANG_PROJECTILE       =    0x00000309,
239
240  // NPC's
241  CL_NPC_TEST1                  =    0x00000401,
242  CL_NPC_TEST2                  =    0x00000402,
243  CL_GENERIC_NPC                =    0x00000403,
244  CL_ATTRACTOR_MINE             =    0x00000404,
245
246  // Testing Entities
247  CL_TEST_ENTITY                =    0x00000409,
248
249  // misc
250  CL_MOVIE_ENTITY               =    0x00000511,
251  CL_RECORDER                   =    0x00000512,
252
253  CL_IMAGE_ENTITY               =    0x00000513,
254  CL_IMAGE_PLANE                =    0x00000514,
255  CL_MODEL_ENTITY               =    0x00000515,
256  CL_TEXT_ELEMENT               =    0x00000516, /// TODO MOVE
257
258
259  /// GamePlay (range from 0x00000600 0x000006ff)
260  CL_EVENT                      =    0x00000601,
261  CL_KEY_MAPPER                 =    0x00000602,
262  CL_CROSSHAIR                  =    0x00000612,
263
264  CL_WEAPON_MANAGER             =    0x00000603,
265  CL_AMMO_CONTAINER             =    0x00000604,
266  CL_HUD                        =    0x00000620,
267
268
269  CL_SCRIPT_MANAGER             =    0x00000650,
270  CL_SCRIPT                     =    0x00000651,
271  CL_SCRIPT_CLASS               =    0x00000652,
272  CL_SCRIPT_TRIGGER             =    0x00000653,
273
274
275  /// Physics stuff (range from 0x00000700 to 0x000008ff)
276  CL_PHYSICS_CONNECTION         =    0x00000701,
277  CL_FIELD_GRAVITY              =    0x00000710,
278  CL_FIELD_POINT_GRAVITY        =    0x00000711,
279  CL_FIELD_TWIRL                =    0x00000712,
280
281
282  /// Collision
283  CL_COLLISION                  =    0x00780000,
284  CL_COLLISION_HANDLE           =    0x00000712,
285  CL_COLLISION_REACTION         =    0X00000713,
286  CL_CR_PHYSICS_MOMENTUM        =    0X00000714,
287  CL_CR_PHYSICS_GROUND_WALK     =    0X00000715,
288  CL_CR_PHYSICS_FULL_WALK       =    0X00000716,
289  CL_CR_OBJECT_DAMAGE           =    0X00000717,
290  CL_CR_OBJECT_PICKUP           =    0X00000718,
291  CL_CR_VERTEX_TRAFO            =    0X00000719,
292  CL_CR_SPECIAL_CALLBACK        =    0X00000720,
293
294
295  CL_BV_TREE                    =    0x00701000,
296  CL_BV_TREE_NODE               =    0x00702000,
297  CL_OBB_TREE                   =    0x00000721,
298  CL_OBB_TREE_NODE              =    0x00000722,
299  CL_BOUNDING_VOLUME            =    0x00710000,
300  CL_OBB                        =    0x00720000,
301  CL_BOUNDING_SPHERE            =    0x00740000,
302  CL_AABB_TREE_NODE             =    0x00000724,                //FIXME: is this correct? AABB_TREE_NODE isA BV_TREE_NODE
303  CL_AABB                       =    0x00780000,                //FIXME: is this correct? AABB isA BOUNDING_VOLUME
304
305
306
307  /// Graphical stuff (range from 0x00000800 to 0x00000aff)
308  /// SUPER-Textures
309  CL_MATERIAL                   =    0x00801000,
310  CL_TEXTURE                    =    0x00802000,
311  CL_TEXTURE_SEQUENCE           =    0x00804000,
312  CL_TEXT                       =    0x00808000,
313  CL_MULTI_LINE_TEXT            =    0x00000840,
314  CL_LIMITED_WIDTH_TEXT         =    0x00000841,
315
316  // Texutres.
317  CL_FONT                       =    0x00000802,
318  CL_MOVIE_PLAYER               =    0x00000805,
319  CL_MEDIA_CONTAINER            =    0x00000806,
320
321  /// Super-Models
322  CL_MODEL                      =    0x00901000,
323  CL_STATIC_MODEL               =    0x00902000,
324  CL_VERTEX_ARRAY_MODEL         =    0x00904000,
325  CL_INTERACTIVE_MODEL          =    0x00908000,        ///FIXME: is this ok bensch?
326
327  // Models
328  CL_OBJ_MODEL                  =    0x00000907,
329
330  CL_PRIMITIVE_MODEL            =    0x00000908,
331  CL_MD2_MODEL                  =    0x00000909,
332  CL_HEIGHT_MAP                 =    0x0000090a,
333  CL_GRID                       =    0x0000090b,
334  CL_BSP_MODEL                  =    0x0000090c, //!FIXME
335
336  CL_SHADER                     =    0x00000811,
337  CL_LIGHT                      =    0x00000821,
338
339  CL_BILLBOARD                  =    0x00000a01,
340
341  CL_GRAPHICS_EFFECT            =    0x00a01000,
342  CL_WEATHER_EFFECT             =    0x00a10000,
343  CL_FOG_EFFECT                 =    0x00000a10,
344  CL_VOLFOG_EFFECT              =    0x00000a11,
345  CL_LENSE_FLARE                =    0x00000a12,
346  CL_RAIN_EFFECT                =    0x00000a13,
347  CL_SNOW_EFFECT                =    0x00000a14,
348  CL_CLOUD_EFFECT               =    0x00000a15,
349  CL_LIGHTNING_EFFECT          =    0x00000a16,
350  CL_EXPLOSION                  =    0x00000a20,
351  CL_LIGHTNING_BOLT             =    0x00000a21,
352
353
354
355  // Particles
356  CL_PARTICLE_SYSTEM            =    0x00a02000,
357  CL_DOT_PARTICLES              =    0x00000aa1,
358  CL_SPARK_PARTICLES            =    0x00000aa2,
359  CL_SPRITE_PARTICLES           =    0x00000aa3,
360  CL_MODEL_PARTICLES            =    0x00000aa4,
361  //  CL_PNODE_PARTICLES            =    0x00a20000,
362
363  CL_PARTICLE_EMITTER           =    0x00a04000,
364  CL_DOT_EMITTER                =    0x00000ab1,
365  CL_PLANE_EMITTER              =    0x00000ab2,
366  CL_BOX_EMITTER                =    0x00000ab3,
367  CL_SPHERE_EMITTER             =    0x00000ab4,
368  //  CL_MODEL_EMITTER              =    0x00000a25,
369
370  // Element2D's  (range from 0x00000b00 to 0x00000bff)
371  /// GL-GUI
372  CL_GLGUI_WIDGET               =    0x00b01000,
373  CL_GLGUI_BUTTON               =    0x00b02000,
374  CL_GLGUI_PUSHBUTTON           =    0x00000b03,
375  CL_GLGUI_CHECKBUTTON          =    0x00000b04,
376  CL_GLGUI_RADIOBUTTON          =    0x00000b05,
377  CL_GLGUI_SLIDER               =    0x00000b06,
378  CL_GLGUI_PROGRESSBAR          =    0x00000b07,
379  CL_GLGUI_CONTAINER            =    0x00b04000,
380  CL_GLGUI_BOX                  =    0x00000b17,
381  CL_GLGUI_FRAME                =    0x00000b18,
382  CL_GLGUI_WINDOW               =    0x00000b19,
383  CL_GLMENU_IMAGE_SCREEN        =    0x00000b20,
384  CL_GLGUI_BAR                  =    0x00000b30,
385  CL_GLGUI_CURSOR               =    0x00000b50,
386  CL_GLGUI_TEXT                 =    0x00000b51,
387  CL_GLGUI_INPUTLINE            =    0x00000b60,
388  CL_GLGUI_TEXTFIELD            =    0x00000b61,
389  CL_GLGUI_IMAGE                =    0x00000b70,
390  CL_GLGUI_TABLE                =    0x00000b71,
391
392  CL_GLGUI_NOTIFIER             =    0x00000b80,
393
394  // QT_GUI
395  CL_GUI_SAVEABLE               =    0x00b10000,
396  CL_QTGUI_BUTTON               =    0x00000ba0,
397  CL_QTGUI_PUSHBUTTON           =    0x00000ba3,
398  CL_QTGUI_CHECKBUTTON          =    0x00000ba4,
399  CL_QTGUI_RADIOBUTTON          =    0x00000ba5,
400  CL_QTGUI_CONTAINER            =    0x00b200a0,
401  CL_QTGUI_BOX                  =    0x00000ba7,
402  CL_QTGUI_FRAME                =    0x00000ba8,
403  CL_QTGUI_WINDOW               =    0x00000ba9,
404  CL_QTMENU_IMAGE_SCREEN        =    0x00000ba0,
405  CL_QTGUI_BAR                  =    0x00000ba0,
406
407  /// AUDIO stuff (range from 0x00000c00 to 0x00000cff)
408  CL_SOUND_BUFFER               =    0x00000c01,
409  CL_SOUND_SOURCE               =    0x00000c02,
410  CL_SOUND_OGG_PLAYER           =    0x00000c11,
411
412
413  /// NETWORK stuff (range from 0x00000d00 to 0x00000dff)
414  CL_DATA_STREAM                =    0x00d01000,
415  CL_NETWORK_STREAM             =    0x00000d01,
416  CL_NETWORK_PROTOCOL           =    0x00000d02,
417  CL_NETWORK_SOCKET             =    0x00000d03,
418  CL_SERVER_SOCKET              =    0X00000d04,
419  CL_CONNECTION_MONITOR         =    0x00000d05,
420  CL_HANDSHAKE                  =    0x00000d06,
421  CL_NETWORK_GAME_MANAGER       =    0x00000d07,
422  CL_MESSAGE_MANAGER            =    0x00000d08,
423  CL_PLAYER_STATS               =    0x00000d09,
424  CL_SIMPLE_SYNC                =    0x00000d0a,
425  CL_NETWORK_MONITOR            =    0x00000d0b,
426  CL_PROXY_CONTROL              =    0x00000d0c,
427
428
429
430  /// MISCELANEOUS: (range from 0x00000e00 to 0x00000fff)
431  CL_ANIMATION                  =    0x00000e01,
432  //  CL_ANIMATION3D                =    0x00000b02,
433  CL_QUICK_ANIMATION            =    0x00000e02,
434
435  CL_FACTORY                    =    0x00e01000,
436  CL_FAST_FACTORY               =    0x00000ea2,
437  CL_LOAD_PARAM                 =    0x00000ea3,
438  CL_DYNAMIC_LOADER             =    0x00000ea8,
439
440  CL_INI_PARSER                 =    0x00000e04,
441
442  CL_SHELL                      =    0x00000e10,
443  CL_SHELL_COMMAND              =    0x00000e11,
444  CL_SHELL_COMMAND_CLASS        =    0x00000e12,
445  CL_SHELL_INPUT                =    0x00000e13,
446  CL_SHELL_COMPLETION           =    0x00000e14,
447  CL_SHELL_COMMAND_ALIAS        =    0x00000e15,
448
449  CL_TRACK_ELEMENT              =    0x00000e2b,
450  CL_LIST                       =    0x00000e25,
451  CL_SUBSTRING                  =    0x00000e26,
452  CL_CURVE                      =    0x00000e28,
453  CL_CHARACTER_ATTRIBUTES       =    0x00000e2a,
454  CL_NUMBER                     =    0x00000e2c,
455  CL_EXECUTOR                   =    0x00000e2d,
456
457  // Spatial Data Separation
458  CL_SPATIAL_SEPARATION         =    0x00000e0d,
459  CL_QUADTREE                   =    0x00000e0e,
460  CL_QUADTREE_NODE              =    0x00000e0f,
461};
462
463
464#endif /* _CLASS_ID_H */
Note: See TracBrowser for help on using the repository browser.