Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/libraries/core/CorePrereqs.h @ 5929

Last change on this file since 5929 was 5929, checked in by rgrieder, 15 years ago

Merged core5 branch back to the trunk.
Key features include clean level unloading and an extended XML event system.

Two important notes:
Delete your keybindings.ini files! * or you will still get parser errors when loading the key bindings.
Delete build_dir/lib/modules/libgamestates.module! * or orxonox won't start.
Best thing to do is to delete the build folder ;)

  • Property svn:eol-style set to native
File size: 6.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
40//-----------------------------------------------------------------------
41// Shared library settings
42//-----------------------------------------------------------------------
43
44#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined( CORE_STATIC_BUILD )
45#  ifdef CORE_SHARED_BUILD
46#    define _CoreExport __declspec(dllexport)
47#  else
48#    if defined( __MINGW32__ )
49#      define _CoreExport
50#    else
51#      define _CoreExport __declspec(dllimport)
52#    endif
53#  endif
54#elif defined ( ORXONOX_GCC_VISIBILITY )
55#  define _CoreExport  __attribute__ ((visibility("default")))
56#else
57#  define _CoreExport
58#endif
59
60//-----------------------------------------------------------------------
61// Constants
62//-----------------------------------------------------------------------
63
64namespace orxonox
65{
66    static const uint32_t OBJECTID_UNKNOWN = static_cast<uint32_t>(-1);
67}
68
69//-----------------------------------------------------------------------
70// Enums
71//-----------------------------------------------------------------------
72
73namespace orxonox
74{
75    namespace XMLPort
76    {
77        enum Mode
78        {
79            NOP,
80            LoadObject,
81            SaveObject,
82            ExpandObject
83        };
84    }
85
86    namespace KeybindMode
87    {
88        enum Value
89        {
90            OnPress,
91            OnHold,
92            OnRelease,
93            None
94        };
95    };
96}
97
98//-----------------------------------------------------------------------
99// Forward declarations
100//-----------------------------------------------------------------------
101
102namespace orxonox
103{
104    typedef std::string LanguageEntryLabel;
105
106    class ArgumentCompleter;
107    class ArgumentCompletionListElement;
108    class BaseObject;
109    template <class T>
110    class ClassFactory;
111    template <class T>
112    class ClassIdentifier;
113    class ClassTreeMask;
114    class ClassTreeMaskIterator;
115    class ClassTreeMaskNode;
116    class ClassTreeMaskObjectIterator;
117    class CommandEvaluation;
118    class CommandLine;
119    class CommandLineArgument;
120    class ConfigFile;
121    class ConfigFileEntry;
122    class ConfigFileEntryComment;
123    class ConfigFileEntryValue;
124    class ConfigFileManager;
125    class ConfigFileSection;
126    struct ConfigFileType;
127    class ConfigValueContainer;
128    class ConsoleCommand;
129    class Core;
130    class DynLib;
131    class DynLibManager;
132    struct Event;
133    class EventState;
134    class Executor;
135    template <class T>
136    class ExecutorMember;
137    class ExecutorStatic;
138    class Factory;
139    class Functor;
140    template <class T>
141    class FunctorMember;
142    class FunctorStatic;
143    class Game;
144    class GameState;
145    struct GameStateInfo;
146    struct GameStateTreeNode;
147    class GraphicsManager;
148    class GUIManager;
149    class Identifier;
150    class IRC;
151    template <class T>
152    class Iterator;
153    class Language;
154    class LuaState;
155    class MemoryArchive;
156    class MemoryArchiveFactory;
157    class MetaObjectList;
158    class MetaObjectListElement;
159    class Namespace;
160    class NamespaceNode;
161    template <class T>
162    class ObjectList;
163    class ObjectListBase;
164    class ObjectListBaseElement;
165    template <class T>
166    class ObjectListElement;
167    template <class T>
168    class ObjectListIterator;
169    class OgreWindowEventListener;
170    class OrxonoxClass;
171    class PathConfig;
172    struct ResourceInfo;
173    class Shell;
174    class ShellListener;
175    template <class T>
176    class SmartPtr;
177    template <class T>
178    class SubclassIdentifier;
179    class TclBind;
180    struct TclInterpreterBundle;
181    template <class T>
182    class TclThreadList;
183    class TclThreadManager;
184    class Template;
185    class Thread;
186    class ThreadPool;
187    template <class T>
188    class WeakPtr;
189    class WindowEventListener;
190    class XMLFile;
191    class XMLNameListener;
192    template <class T, class O>
193    class XMLPortClassObjectContainer;
194    template <class T>
195    class XMLPortClassParamContainer;
196    class XMLPortObjectContainer;
197    class XMLPortParamContainer;
198
199    // Input
200    class BaseCommand;
201    class BufferedParamCommand;
202    class Button;
203    class HalfAxis;
204    class InputBuffer;
205    class InputDevice;
206    template <class Traits>
207    class InputDeviceTemplated;
208    class InputHandler;
209    class InputManager;
210    class InputState;
211    struct InputStatePriority;
212    class JoyStickQuantityListener;
213    class JoyStick;
214    class KeyBinder;
215    class KeyBinderManager;
216    class Keyboard;
217    class KeyDetector;
218    class KeyEvent;
219    class Mouse;
220    class ParamCommand;
221    class SimpleCommand;
222}
223
224// CppTcl
225namespace Tcl
226{
227    class interpreter;
228    class object;
229}
230
231// Boost
232namespace boost
233{
234    namespace filesystem
235    {
236        struct path_traits;
237        template <class String, class Traits> class basic_path;
238        typedef basic_path<std::string, path_traits> path;
239    }
240    class thread;
241    class mutex;
242    class shared_mutex;
243    class condition_variable;
244}
245
246// Ogre
247namespace Ogre
248{
249    class DataStream;
250    template <class T> class SharedPtr;
251    typedef SharedPtr<DataStream> DataStreamPtr;
252}
253namespace orxonox
254{
255    // Import the Ogre::DataStream
256    using Ogre::DataStream;
257    using Ogre::DataStreamPtr;
258}
259
260// CEGUI
261namespace CEGUI
262{
263    class DefaultLogger;
264    class Logger;
265    class LuaScriptModule;
266
267    class OgreCEGUIRenderer;
268    class OgreCEGUIResourceProvider;
269    class OgreCEGUITexture;
270}
271
272// Lua
273struct lua_State;
274
275// TinyXML and TinyXML++
276class TiXmlString;
277class TiXmlOutStream;
278class TiXmlNode;
279class TiXmlHandle;
280class TiXmlDocument;
281class TiXmlElement;
282class TiXmlComment;
283class TiXmlUnknown;
284class TiXmlAttribute;
285class TiXmlText;
286class TiXmlDeclaration;
287class TiXmlParsingData;
288namespace ticpp
289{
290    class Document;
291    class Element;
292    class Declaration;
293    class StylesheetReference;
294    class Text;
295    class Comment;
296    class Attribute;
297}
298namespace orxonox
299{
300    using ticpp::Element;
301}
302
303#endif /* _CorePrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.