Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

orxonox/trunk: restructure class_list.h so it supports inheritance-diagram

File size: 3.9 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//! list of all classes to be loadable in via the ObjectManager
30/**
31 * inheritance is done in the following way: Classes are identified by
32 * a HEX-number eg: 0x12345678
33 * The number has 8x16 entries.
34 * The first two: 1,2 superclass identifiers to
35 * The second three are for subclasses with inheritance
36 * These two may not be the same in any way,
37 * eg. the bits may not intersect (no 1, 2 and a 3; 1,2 and 4 would be ok)
38 * The last three entries are for any classes in existence eg. SkyBox and so on
39 *
40 * \todo complete this List
41*/
42typedef enum ClassID
43{
44  // superclasses
45  CL_MASK_SUPERCLASS      =    0xff000000,
46  CL_BASE_OBJECT          =    0x01000000,
47  CL_PARENT_NODE          =    0x02000000,
48  CL_WORLD_ENTITY         =    0x04000000,
49  CL_STORY_ENTITY         =    0x08000000,
50
51  // subsuper-classes
52  CL_PLAYER               =    0x00001000,
53  CL_NPC                  =    0x00002000,
54  CL_POWER_UP             =    0x00004000,
55  CL_FIELD                =    0x00008000,
56  CL_PROJECTILE           =    0x00010000,
57  CL_WEAPON               =    0x00020000,
58
59
60  // singleton classes (range from 0x00000001 to 0x000000ff)
61  CL_MASK_SINGLETON       =    0x0000003f,
62  CL_ORXONOX              =    0x00000001,
63  CL_NULL_PARENT          =    0x00000002,
64  CL_PILOT_PARENT         =    0x00000003,
65
66  CL_OBJECT_MANAGER       =    0x00000004,
67  CL_RESOURCE_MANAGER     =    0x00000005,
68  CL_GARBAGE_COLLECTOR    =    0x00000006,
69  CL_GAME_LOADER          =    0x00000007,
70  CL_GRAPHICS_ENGINE      =    0x00000008,
71  CL_TEXT_ENGINE          =    0x00000009,
72  CL_LIGHT_MANAGER        =    0x0000000a,
73  CL_EVENT_HANDLER        =    0x0000000b,
74  CL_PHYSICS_ENGINE       =    0x0000000c,
75  CL_CD_ENGINE            =    0x0000000d,
76  CL_PARTICLE_ENGINE      =    0x0000000e,
77  CL_SOUND_ENGINE         =    0x0000000f,
78  CL_ANIMATION_PLAYER     =    0x00000010,
79  CL_TRACK_MANAGER        =    0x00000011,
80  CL_TRACK_NODE           =    0x00000012,
81  CL_STATE                =    0x00000013,
82  CL_FRAMEWORK            =    0x00000014,
83
84
85
86  // story entities (range from 0x00000101 to 0x000001ff)
87  CL_CAMPAIGN             =    0x00000101,
88  CL_WORLD                =    0x00000102,
89
90  // world entities (range from 0x00000201 to 0x000005ff)
91  CL_CAMERA               =    0x00000201,
92  CL_CAMERA_TARGET        =    0x00000202,
93
94  CL_ENVIRONEMENT         =    0x00000203,
95  CL_SATELLITE            =    0x00000204,
96  CL_SKYBOX               =    0x00000205,
97  CL_SKYSPHERE            =    0x00000206,
98  CL_TERRAIN              =    0x00000207,
99  CL_TEST_BULLET          =    0x00000208,
100  CL_TEST_ENTITY          =    0x00000209,
101  CL_TEST_GUN             =    0x0000020a,
102
103  CL_CHARACTER_ATTRIBUTES,
104
105
106  CL_ANIMATION,
107  CL_ANIMATION3D,
108
109  CL_ARRAY,
110  CL_CURVE,
111  CL_VECTOR,
112  CL_FACTORY,
113  CL_INI_PARSER,
114  CL_LIST,
115  CL_SUBSTRING,
116  CL_LOAD_PARAM,
117
118
119  CL_EVENT,
120  CL_EVENT_LISTENER,
121  CL_KEY_MAPPER,
122
123  CL_TEXT,
124  CL_GLMENU_IMAGE_SCREEN,
125  CL_LIGHT,
126  CL_MATERIAL,
127  CL_MD2Model,
128  CL_MODEL,
129  CL_OBJMODEL,
130  CL_PROMITIVE_MODEL,
131
132  CL_PARTICLE_EMITTER,
133  CL_PARTICLE_SYSTEM,
134
135  CL_COLLISION,
136  CL_BV_TREE,
137  CL_BV_TREE_NODE,
138  CL_OBB_TREE,
139  CL_OBB_TREE_NODE,
140  CL_BOUNDING_VOLUME,
141  CL_OBB,
142  CL_BOUNDING_SPHERE,
143
144  CL_NUMBER
145};
146
147
148#endif /* _CLASS_LIST_H */
Note: See TracBrowser for help on using the repository browser.