Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

orxonox/trunk: better output

File size: 4.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 sub/super-classes.
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 8^4 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_SUPER_CLASS     =    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_SUBSUPER_CLASS  =    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
72  // singleton classes (range from 0x00000001 to 0x000000ff)
73  CL_MASK_SINGLETON       =    0x0000003f,
74  CL_ORXONOX              =    0x00000001,
75  CL_NULL_PARENT          =    0x00000002,
76  CL_PILOT_PARENT         =    0x00000003,
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  // StoryEntities (range from 0x00000101 to 0x000001ff)
98  CL_CAMPAIGN             =    0x00000101,
99  CL_WORLD                =    0x00000102,
100
101  // WorldEntities (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
115  CL_EVENT                =    0x00000a08,
116  CL_KEY_MAPPER           =    0x00000a09,
117
118  // graphical stuff (range from 0x00000800 to 0x000009ff)
119  CL_TEXT                 =    0x00000801,
120  CL_MATERIAL             =    0x00000802,
121  CL_MODEL                =    0x00000803, //!< \todo make this a SUBCLASS maybe
122  CL_OBJMODEL             =    0x00000804,
123  CL_PROMITIVE_MODEL      =    0x00000805,
124  CL_MD2Model             =    0x00000806,
125  CL_LIGHT                =    0x00000807,
126  CL_PARTICLE_EMITTER     =    0x00000808,
127  CL_PARTICLE_SYSTEM      =    0x00000809,
128  // GL-menu
129  CL_GLMENU_IMAGE_SCREEN  =    0x00000901,
130
131  // Collision
132  CL_COLLISION,
133  CL_BV_TREE,
134  CL_BV_TREE_NODE,
135  CL_OBB_TREE,
136  CL_OBB_TREE_NODE,
137  CL_BOUNDING_VOLUME,
138  CL_OBB,
139  CL_BOUNDING_SPHERE,
140
141  // misc: (range from 0x00000a00 to 0x00000bff)
142  CL_ANIMATION            =    0x00000a01,
143  //  CL_ANIMATION3D          =    0x00000a02,
144  CL_FACTORY              =    0x00000a02,
145  CL_INI_PARSER           =    0x00000a03,
146  CL_LIST                 =    0x00000a04,
147  CL_SUBSTRING            =    0x00000a05,
148  CL_LOAD_PARAM           =    0x00000a06,
149  CL_CURVE                =    0x00000a07,
150  CL_VECTOR               =    0x00000a08,
151  CL_CHARACTER_ATTRIBUTES =    0x00000a09,
152  CL_NUMBER
153};
154
155
156#endif /* _CLASS_LIST_H */
Note: See TracBrowser for help on using the repository browser.