Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/gameimmersion/src/libraries/core/CorePrereqs.h @ 8171

Last change on this file since 8171 was 8079, checked in by landauf, 14 years ago

merged usability branch back to trunk

incomplete summary of the changes in this branch:

  • enhanced keyboard navigation in GUIs
  • implemented new graphics menu and changeable window size at runtime
  • added developer mode
  • HUD shows if game is paused, game pauses if ingame menu is opened
  • removed a few obsolete commands and hid some that are more for internal use
  • numpad works in console and gui
  • faster loading of level info
  • enhanced usage of compositors (Shader class)
  • improved camera handling, configurable FOV and aspect ratio
  • Property svn:eol-style set to native
File size: 7.8 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
32    Shared library macros, enums, constants and forward declarations for the core library
33*/
34
35#ifndef _CorePrereqs_H__
36#define _CorePrereqs_H__
37
38#include "OrxonoxConfig.h"
39#include <boost/version.hpp>
40
41//-----------------------------------------------------------------------
42// Shared library settings
43//-----------------------------------------------------------------------
44
45#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined( CORE_STATIC_BUILD )
46#  ifdef CORE_SHARED_BUILD
47#    define _CoreExport __declspec(dllexport)
48#  else
49#    if defined( __MINGW32__ )
50#      define _CoreExport
51#    else
52#      define _CoreExport __declspec(dllimport)
53#    endif
54#  endif
55#elif defined ( ORXONOX_GCC_VISIBILITY )
56#  define _CoreExport  __attribute__ ((visibility("default")))
57#else
58#  define _CoreExport
59#endif
60
61//-----------------------------------------------------------------------
62// Constants
63//-----------------------------------------------------------------------
64
65namespace orxonox
66{
67    static const uint32_t OBJECTID_UNKNOWN = static_cast<uint32_t>(-1);
68}
69
70//-----------------------------------------------------------------------
71// Enums
72//-----------------------------------------------------------------------
73
74namespace orxonox
75{
76    namespace XMLPort
77    {
78        enum Mode
79        {
80            NOP,
81            LoadObject,
82            SaveObject,
83            ExpandObject
84        };
85    }
86
87    namespace ConfigFileType
88    {
89        enum Value
90        {
91            Settings,
92            JoyStickCalibration,
93            CommandHistory
94            // Don't forget to adjust the array size in the ConfigFileManager when adding a new entry here!
95        };
96    }
97
98    namespace KeybindMode
99    {
100        enum Value
101        {
102            OnPress,
103            OnHold,
104            OnRelease,
105            None
106        };
107    };
108}
109
110//-----------------------------------------------------------------------
111// Forward declarations
112//-----------------------------------------------------------------------
113
114namespace orxonox
115{
116    typedef std::string LanguageEntryLabel;
117
118    template <class T, class U>
119    T orxonox_cast(U*);
120
121    class BaseObject;
122    template <class T>
123    class ClassFactory;
124    template <class T>
125    class ClassIdentifier;
126    class ClassTreeMask;
127    class ClassTreeMaskIterator;
128    class ClassTreeMaskNode;
129    class ClassTreeMaskObjectIterator;
130    class CommandLineParser;
131    class CommandLineArgument;
132    class ConfigFile;
133    class ConfigFileEntry;
134    class ConfigFileEntryComment;
135    class ConfigFileEntryValue;
136    class ConfigFileManager;
137    class ConfigFileSection;
138    class ConfigValueContainer;
139    class Core;
140    class DestructionListener;
141    class DynLib;
142    class DynLibManager;
143    struct Event;
144    class EventState;
145    class Factory;
146    class Game;
147    class GameState;
148    struct GameStateInfo;
149    struct GameStateTreeNode;
150    class GraphicsManager;
151    class GUIManager;
152    class Identifier;
153    template <class T>
154    class Iterator;
155    class Language;
156    class LuaFunctor;
157    class LuaState;
158    class MemoryArchive;
159    class MemoryArchiveFactory;
160    class MetaObjectList;
161    class MetaObjectListElement;
162    class Namespace;
163    class NamespaceNode;
164    template <class T>
165    class ObjectList;
166    class ObjectListBase;
167    class ObjectListBaseElement;
168    template <class T>
169    class ObjectListElement;
170    template <class T>
171    class ObjectListIterator;
172    class OgreWindowEventListener;
173    class OrxonoxClass;
174    class PathConfig;
175    struct ResourceInfo;
176    class SettingsConfigFile;
177    template <class T>
178    class SmartPtr;
179    template <class T>
180    class SubclassIdentifier;
181    class Template;
182    class Thread;
183    class ThreadPool;
184    class ViewportEventListener;
185    template <class T>
186    class WeakPtr;
187    class WindowEventListener;
188    class XMLFile;
189    class XMLNameListener;
190    template <class T, class O>
191    class XMLPortClassObjectContainer;
192    template <class T>
193    class XMLPortClassParamContainer;
194    class XMLPortObjectContainer;
195    class XMLPortParamContainer;
196
197    // Command
198    class ArgumentCompleter;
199    class ArgumentCompletionListElement;
200    class CommandEvaluation;
201    class ConsoleCommand;
202    class Executor;
203    template <class T>
204    class ExecutorMember;
205    class ExecutorStatic;
206    class Functor;
207    template <class O>
208    class FunctorMember;
209    typedef FunctorMember<void> FunctorStatic;
210    template <class F, class O>
211    class FunctorPointer;
212    class IOConsole;
213    class IRC;
214    class Shell;
215    class ShellListener;
216    class TclBind;
217    struct TclInterpreterBundle;
218    template <class T>
219    class TclThreadList;
220    class TclThreadManager;
221
222    // Input
223    class BaseCommand;
224    class BufferedParamCommand;
225    class Button;
226    class HalfAxis;
227    class InputBuffer;
228    class InputDevice;
229    template <class Traits>
230    class InputDeviceTemplated;
231    class InputHandler;
232    class InputManager;
233    class InputState;
234    struct InputStatePriority;
235    class JoyStickQuantityListener;
236    class JoyStick;
237    class KeyBinder;
238    class KeyBinderManager;
239    class Keyboard;
240    class KeyDetector;
241    class KeyEvent;
242    class Mouse;
243    class ParamCommand;
244    class SimpleCommand;
245}
246
247#include "command/FunctorPtr.h"
248#include "command/ExecutorPtr.h"
249
250// CppTcl
251namespace Tcl
252{
253    class interpreter;
254    class object;
255}
256
257// Boost
258namespace boost
259{
260#if (BOOST_VERSION < 104400)
261    namespace filesystem
262    {
263        struct path_traits;
264        template <class String, class Traits> class basic_path;
265        typedef basic_path<std::string, path_traits> path;
266    }
267#else
268    namespace filesystem2
269    {
270        struct path_traits;
271        template <class String, class Traits> class basic_path;
272        typedef basic_path<std::string, path_traits> path;
273    }
274    namespace filesystem
275    {
276        using filesystem2::basic_path;
277        using filesystem2::path_traits;
278        using filesystem2::path;
279    }
280#endif
281    class thread;
282    class mutex;
283    class shared_mutex;
284    class condition_variable;
285}
286
287// Ogre
288namespace Ogre
289{
290    class DataStream;
291    template <class T> class SharedPtr;
292    typedef SharedPtr<DataStream> DataStreamPtr;
293}
294namespace orxonox
295{
296    // Import the Ogre::DataStream
297    using Ogre::DataStream;
298    using Ogre::DataStreamPtr;
299}
300
301// CEGUI
302namespace CEGUI
303{
304    class DefaultLogger;
305    class Logger;
306    class LuaScriptModule;
307
308    class OgreCEGUIRenderer;
309    class OgreCEGUIResourceProvider;
310    class OgreCEGUITexture;
311}
312
313// Lua
314struct lua_State;
315
316// TinyXML and TinyXML++
317class TiXmlString;
318class TiXmlOutStream;
319class TiXmlNode;
320class TiXmlHandle;
321class TiXmlDocument;
322class TiXmlElement;
323class TiXmlComment;
324class TiXmlUnknown;
325class TiXmlAttribute;
326class TiXmlText;
327class TiXmlDeclaration;
328class TiXmlParsingData;
329namespace ticpp
330{
331    class Document;
332    class Element;
333    class Declaration;
334    class StylesheetReference;
335    class Text;
336    class Comment;
337    class Attribute;
338}
339namespace orxonox
340{
341    using ticpp::Element;
342}
343
344#endif /* _CorePrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.