Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/gui/src/orxonox/OrxonoxPrereqs.h @ 2846

Last change on this file since 2846 was 2844, checked in by rgrieder, 16 years ago

Implemented new GameState concept. It doesn't differ that much from the old one, but there's still lots of changes.
The most important change is that one GameState can occur multiple times in the hierarchy.

Short log:

  • No RootGameState anymore. Simply the highest is root.
  • Game::requestGameState(name) can refer to the parent, grandparent, great-grandparent, etc. or one of the children.
  • Requested states are saved. So if you select "level", the next request (even right after the call) will be relative to "level"
  • Game::popState() will simply unload the current one
  • Re added Main.cc again because Game as well as GameState have been moved to the core
  • Adapted all GameStates to the new system

Things should already work, except for network support because standalone only works with a little hack.
We can now start creating a better hierarchy.

  • Property svn:eol-style set to native
File size: 6.1 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Reto Grieder
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29/**
30  @file
31  @brief Contains all the necessary forward declarations for all classes and structs.
32*/
33
34#ifndef _OrxonoxPrereqs_H__
35#define _OrxonoxPrereqs_H__
36
37#include "OrxonoxConfig.h"
38
39//-----------------------------------------------------------------------
40// Shared library settings
41//-----------------------------------------------------------------------
42#define ORXONOX_NO_EXPORTS // This is an executable that needs no exports
43#if defined(ORXONOX_PLATFORM_WINDOWS) && !(defined(ORXONOX_STATIC_BUILD) || defined(ORXONOX_NO_EXPORTS))
44#  ifdef ORXONOX_SHARED_BUILD
45#    define _OrxonoxExport __declspec(dllexport)
46#  else
47#    if defined( __MINGW32__ )
48#      define _OrxonoxExport
49#    else
50#      define _OrxonoxExport __declspec(dllimport)
51#    endif
52#  endif
53#elif defined ( ORXONOX_GCC_VISIBILITY )
54#  define _OrxonoxExport  __attribute__ ((visibility("default")))
55#else
56#  define _OrxonoxExport
57#endif
58
59//-----------------------------------------------------------------------
60// Forward declarations
61//-----------------------------------------------------------------------
62
63namespace orxonox
64{
65    namespace LODParticle
66    {
67        enum LOD
68        {
69            off = 0,
70            low = 1,
71            normal = 2,
72            high = 3
73        };
74    }
75
76    //put here all existing munitionTypes
77    namespace MunitionType
78    {
79        enum Enum
80        { laserGunMunition };
81    }
82
83    //put here all weapon fire modes.
84    //they have to be added to Pawn and HumanController, too.
85    namespace WeaponMode
86    {
87        enum Enum
88        {
89            fire     = 0x1,
90            altFire  = 0x2,
91            altFire2 = 0x4
92        };
93    }
94
95
96    class GraphicsManager;
97    class OgreWindowEventListener;
98    class Settings;
99
100    class RadarViewable;
101    class Radar;
102    class RadarListener;
103
104    class CameraManager;
105    class LevelManager;
106    class PawnManager;
107    class PlayerManager;
108
109    // objects
110    class Level;
111    class Scene;
112
113    class AddQuest;
114    class AddQuestHint;
115    class AddReward;
116    class ChangeQuestStatus;
117    class CompleteQuest;
118    class FailQuest;
119    class GlobalQuest;
120    class LocalQuest;
121    class Quest;
122    class QuestDescription;
123    class QuestEffect;
124    class QuestEffectBeacon;
125    class QuestHint;
126    class QuestItem;
127    class QuestListener;
128    class QuestManager;
129    class Rewardable;
130
131    class WorldEntity;
132    class StaticEntity;
133    class MobileEntity;
134    class ControllableEntity;
135    class MovableEntity;
136    class Sublevel;
137
138    class Model;
139    class Billboard;
140    class BlinkingBillboard;
141    class ExplosionChunk;
142    class FadingBillboard;
143    class GlobalShader;
144    class Light;
145    class Backlight;
146    class ParticleEmitter;
147    class ParticleSpawner;
148
149    class Camera;
150    class CameraPosition;
151    class SpawnPoint;
152
153    class Spectator;
154    class Pawn;
155    class SpaceShip;
156
157    class Item;
158    class Engine;
159    class MultiStateEngine;
160    class RotatingEngine;
161
162    class Trigger;
163    class DistanceTrigger;
164    class EventTrigger;
165    class PlayerTrigger;
166
167    class WeaponSystem;
168    class WeaponSet;
169    class WeaponSlot;
170    class WeaponPack;
171    class Weapon;
172    class Munition;
173    class LaserGun;
174    class LaserGunMunition;
175
176    class EventListener;
177    class EventDispatcher;
178    class EventTarget;
179
180    class Controller;
181    class HumanController;
182    class ArtificialController;
183    class AIController;
184    class ScriptController;
185
186    class Info;
187    class PlayerInfo;
188    class HumanPlayer;
189    class Bot;
190    class GametypeInfo;
191
192    class Gametype;
193
194    class Scores;
195    class CreateLines;
196    class Scoreboard;
197    class Stats;
198
199    // collision
200    class CollisionShape;
201    class SphereCollisionShape;
202    class CompoundCollisionShape;
203    class PlaneCollisionShape;
204    class WorldEntityCollisionShape;
205
206    // tools
207    class BillboardSet;
208    class Light;
209    class Mesh;
210    class ParticleInterface;
211    class Shader;
212    template <class T>
213    class Timer;
214
215    // overlays
216    class BarColour;
217    class DebugFPSText;
218    class DebugRTRText;
219    class HUDBar;
220    class HUDNavigation;
221    class HUDRadar;
222    class HUDSpeedBar;
223    class HUDHealthBar;
224    class InGameConsole;
225    class Notification;
226    class NotificationManager;
227    class NotificationQueue;
228    class OrxonoxOverlay;
229    class OverlayGroup;
230    class OverlayText;
231    class GametypeStatus;
232    class CreateLines;
233    class Scoreboard;
234
235    //gui
236    class GUIManager;
237}
238
239namespace Ogre
240{
241    // some got forgotten in OgrePrerequisites
242    class BorderPanelOverlayElement;
243    class PanelOverlayElement;
244    class TextAreaOverlayElement;
245}
246
247namespace CEGUI
248{
249    class LuaScriptModule;
250
251    class OgreCEGUIRenderer;
252    class OgreCEGUIResourceProvider;
253    class OgreCEGUITexture;
254}
255
256// Bullet Physics Engine
257
258class btTransform;
259class btVector3;
260
261class btRigidBody;
262class btCollisionObject;
263class btGhostObject;
264class btManifoldPoint;
265
266class btCollisionShape;
267class btSphereShape;
268class btCompoundShape;
269class btStaticPlaneShape;
270
271class btDiscreteDynamicsWorld;
272class bt32BitAxisSweep3;
273class btDefaultCollisionConfiguration;
274class btCollisionDispatcher;
275class btSequentialImpulseConstraintSolver;
276
277// lua
278struct lua_State;
279
280#endif /* _OrxonoxPrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.