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
RevLine 
[4591]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
[4571]17/*!
[4315]18    \file class_list.h
19    \brief list of orxonox classes
20
[4591]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
[4315]23*/
24
[4318]25#ifndef _CLASS_LIST_H
26#define _CLASS_LIST_H
[4315]27
[4318]28
[4592]29#define ClassDefinition(CLASS_DEFINITION, CLASS_VALUE, CLASS_NAME) \
30                  CLASS_DEFINITION
31
[4315]32//! list of all classes to be loadable in via the ObjectManager
[4591]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
[4315]46{
[4591]47  // superclasses
48  CL_MASK_SUPERCLASS      =    0xff000000,
49  CL_BASE_OBJECT          =    0x01000000,
[4592]50
[4591]51  CL_PARENT_NODE          =    0x02000000,
52  CL_WORLD_ENTITY         =    0x04000000,
[4592]53
[4591]54  CL_STORY_ENTITY         =    0x08000000,
[4445]55
[4592]56  CL_PHYSICS_INTERFACE    =    0x10000000,
57
58  CL_EVENT_LISTENER       =    0x20000000,
59
[4591]60  // subsuper-classes
[4592]61  CL_MASK_SUBCLASS        =    0x00fff000,
[4591]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,
[4318]68
[4592]69  // lowest level classes
70  CL_MASK_LOWLEVEL_CLASS  =    0x00000fff,
[4591]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
[4318]114  CL_CHARACTER_ATTRIBUTES,
[4315]115
[4318]116
[4315]117  CL_ANIMATION,
118  CL_ANIMATION3D,
119
120  CL_ARRAY,
[4318]121  CL_CURVE,
122  CL_VECTOR,
123  CL_FACTORY,
124  CL_INI_PARSER,
125  CL_LIST,
126  CL_SUBSTRING,
127  CL_LOAD_PARAM,
[4315]128
[4318]129
[4346]130  CL_EVENT,
[4367]131  CL_KEY_MAPPER,
[4346]132
[4318]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,
[4571]141
[4318]142  CL_PARTICLE_EMITTER,
143  CL_PARTICLE_SYSTEM,
[4571]144
[4512]145  CL_COLLISION,
146  CL_BV_TREE,
[4541]147  CL_BV_TREE_NODE,
[4512]148  CL_OBB_TREE,
[4541]149  CL_OBB_TREE_NODE,
[4512]150  CL_BOUNDING_VOLUME,
151  CL_OBB,
[4513]152  CL_BOUNDING_SPHERE,
[4318]153
[4315]154  CL_NUMBER
155};
156
[4318]157
158#endif /* _CLASS_LIST_H */
Note: See TracBrowser for help on using the repository browser.