Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/defs/class_list.h @ 4592

Last change on this file since 4592 was 4592, checked in by bensch, 19 years ago

orxonox/trunk: derivations work.
now the only thing to do is specify all the classes, and DO it CLEAN.

@patrick: is it ok, how i treated your ObjectManager??

File size: 4.2 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11### File Specific:
12   main-programmer: Patrick Boenzli
13   co-programmer: Benjamin Grauer
14
15*/
16
17/*!
18    \file class_list.h
19    \brief list of orxonox classes
20
21    this File is used to identify an Object with its class and also with its subclasses.
22    this is also used by the ObjectManager to identify and load important classes
23*/
24
25#ifndef _CLASS_LIST_H
26#define _CLASS_LIST_H
27
28
29#define ClassDefinition(CLASS_DEFINITION, CLASS_VALUE, CLASS_NAME) \
30                  CLASS_DEFINITION
31
32//! list of all classes to be loadable in via the ObjectManager
33/**
34 * inheritance is done in the following way: Classes are identified by
35 * a HEX-number eg: 0x12345678
36 * The number has 8x16 entries.
37 * The first two: 1,2 superclass identifiers to
38 * The second three are for subclasses with inheritance
39 * These two may not be the same in any way,
40 * eg. the bits may not intersect (no 1, 2 and a 3; 1,2 and 4 would be ok)
41 * The last three entries are for any classes in existence eg. SkyBox and so on
42 *
43 * \todo complete this List
44*/
45typedef enum ClassID
46{
47  // superclasses
48  CL_MASK_SUPERCLASS      =    0xff000000,
49  CL_BASE_OBJECT          =    0x01000000,
50
51  CL_PARENT_NODE          =    0x02000000,
52  CL_WORLD_ENTITY         =    0x04000000,
53
54  CL_STORY_ENTITY         =    0x08000000,
55
56  CL_PHYSICS_INTERFACE    =    0x10000000,
57
58  CL_EVENT_LISTENER       =    0x20000000,
59
60  // subsuper-classes
61  CL_MASK_SUBCLASS        =    0x00fff000,
62  CL_PLAYER               =    0x00001000,
63  CL_NPC                  =    0x00002000,
64  CL_POWER_UP             =    0x00004000,
65  CL_FIELD                =    0x00008000,
66  CL_PROJECTILE           =    0x00010000,
67  CL_WEAPON               =    0x00020000,
68
69  // lowest level classes
70  CL_MASK_LOWLEVEL_CLASS  =    0x00000fff,
71  // singleton classes (range from 0x00000001 to 0x000000ff)
72  CL_MASK_SINGLETON       =    0x0000003f,
73  CL_ORXONOX              =    0x00000001,
74  CL_NULL_PARENT          =    0x00000002,
75  CL_PILOT_PARENT         =    0x00000003,
76
77  CL_OBJECT_MANAGER       =    0x00000004,
78  CL_RESOURCE_MANAGER     =    0x00000005,
79  CL_GARBAGE_COLLECTOR    =    0x00000006,
80  CL_GAME_LOADER          =    0x00000007,
81  CL_GRAPHICS_ENGINE      =    0x00000008,
82  CL_TEXT_ENGINE          =    0x00000009,
83  CL_LIGHT_MANAGER        =    0x0000000a,
84  CL_EVENT_HANDLER        =    0x0000000b,
85  CL_PHYSICS_ENGINE       =    0x0000000c,
86  CL_CD_ENGINE            =    0x0000000d,
87  CL_PARTICLE_ENGINE      =    0x0000000e,
88  CL_SOUND_ENGINE         =    0x0000000f,
89  CL_ANIMATION_PLAYER     =    0x00000010,
90  CL_TRACK_MANAGER        =    0x00000011,
91  CL_TRACK_NODE           =    0x00000012,
92  CL_STATE                =    0x00000013,
93  CL_FRAMEWORK            =    0x00000014,
94
95
96
97  // story entities (range from 0x00000101 to 0x000001ff)
98  CL_CAMPAIGN             =    0x00000101,
99  CL_WORLD                =    0x00000102,
100
101  // world entities (range from 0x00000201 to 0x000005ff)
102  CL_CAMERA               =    0x00000201,
103  CL_CAMERA_TARGET        =    0x00000202,
104
105  CL_ENVIRONEMENT         =    0x00000203,
106  CL_SATELLITE            =    0x00000204,
107  CL_SKYBOX               =    0x00000205,
108  CL_SKYSPHERE            =    0x00000206,
109  CL_TERRAIN              =    0x00000207,
110  CL_TEST_BULLET          =    0x00000208,
111  CL_TEST_ENTITY          =    0x00000209,
112  CL_TEST_GUN             =    0x0000020a,
113
114  CL_CHARACTER_ATTRIBUTES,
115
116
117  CL_ANIMATION,
118  CL_ANIMATION3D,
119
120  CL_ARRAY,
121  CL_CURVE,
122  CL_VECTOR,
123  CL_FACTORY,
124  CL_INI_PARSER,
125  CL_LIST,
126  CL_SUBSTRING,
127  CL_LOAD_PARAM,
128
129
130  CL_EVENT,
131  CL_KEY_MAPPER,
132
133  CL_TEXT,
134  CL_GLMENU_IMAGE_SCREEN,
135  CL_LIGHT,
136  CL_MATERIAL,
137  CL_MD2Model,
138  CL_MODEL,
139  CL_OBJMODEL,
140  CL_PROMITIVE_MODEL,
141
142  CL_PARTICLE_EMITTER,
143  CL_PARTICLE_SYSTEM,
144
145  CL_COLLISION,
146  CL_BV_TREE,
147  CL_BV_TREE_NODE,
148  CL_OBB_TREE,
149  CL_OBB_TREE_NODE,
150  CL_BOUNDING_VOLUME,
151  CL_OBB,
152  CL_BOUNDING_SPHERE,
153
154  CL_NUMBER
155};
156
157
158#endif /* _CLASS_LIST_H */
Note: See TracBrowser for help on using the repository browser.