Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/masterserver/src/libraries/core/CorePrereqs.h @ 7819

Last change on this file since 7819 was 7284, checked in by landauf, 14 years ago

merged consolecommands3 branch back to trunk.

note: the console command interface has changed completely, but the documentation is not yet up to date. just copy an existing command and change it to your needs, it's pretty self-explanatory. also the include files related to console commands are now located in core/command/. in the game it should work exactly like before, except for some changes in the auto-completion.

  • 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 DynLib;
141    class DynLibManager;
142    struct Event;
143    class EventState;
144    class Factory;
145    class Game;
146    class GameState;
147    struct GameStateInfo;
148    struct GameStateTreeNode;
149    class GraphicsManager;
150    class GUIManager;
151    class Identifier;
152    template <class T>
153    class Iterator;
154    class Language;
155    class LuaFunctor;
156    class LuaState;
157    class MemoryArchive;
158    class MemoryArchiveFactory;
159    class MetaObjectList;
160    class MetaObjectListElement;
161    class Namespace;
162    class NamespaceNode;
163    template <class T>
164    class ObjectList;
165    class ObjectListBase;
166    class ObjectListBaseElement;
167    template <class T>
168    class ObjectListElement;
169    template <class T>
170    class ObjectListIterator;
171    class OgreWindowEventListener;
172    class OrxonoxClass;
173    class PathConfig;
174    struct ResourceInfo;
175    class SettingsConfigFile;
176    template <class T>
177    class SmartPtr;
178    template <class T>
179    class SubclassIdentifier;
180    class Template;
181    class Thread;
182    class ThreadPool;
183    template <class T>
184    class WeakPtr;
185    class WindowEventListener;
186    class XMLFile;
187    class XMLNameListener;
188    template <class T, class O>
189    class XMLPortClassObjectContainer;
190    template <class T>
191    class XMLPortClassParamContainer;
192    class XMLPortObjectContainer;
193    class XMLPortParamContainer;
194
195    // Command
196    class ArgumentCompleter;
197    class ArgumentCompletionListElement;
198    class CommandEvaluation;
199    class ConsoleCommand;
200    class Executor;
201    template <class T>
202    class ExecutorMember;
203    class ExecutorStatic;
204    class Functor;
205    template <class O>
206    class FunctorMember;
207    typedef FunctorMember<void> FunctorStatic;
208    template <class F, class O>
209    class FunctorPointer;
210    class IOConsole;
211    class IRC;
212    class Shell;
213    class ShellListener;
214    class TclBind;
215    struct TclInterpreterBundle;
216    template <class T>
217    class TclThreadList;
218    class TclThreadManager;
219
220    // Input
221    class BaseCommand;
222    class BufferedParamCommand;
223    class Button;
224    class HalfAxis;
225    class InputBuffer;
226    class InputDevice;
227    template <class Traits>
228    class InputDeviceTemplated;
229    class InputHandler;
230    class InputManager;
231    class InputState;
232    struct InputStatePriority;
233    class JoyStickQuantityListener;
234    class JoyStick;
235    class KeyBinder;
236    class KeyBinderManager;
237    class Keyboard;
238    class KeyDetector;
239    class KeyEvent;
240    class Mouse;
241    class ParamCommand;
242    class SimpleCommand;
243}
244
245#include "command/FunctorPtr.h"
246#include "command/ExecutorPtr.h"
247
248// CppTcl
249namespace Tcl
250{
251    class interpreter;
252    class object;
253}
254
255// Boost
256namespace boost
257{
258#if (BOOST_VERSION < 104400)
259    namespace filesystem
260    {
261        struct path_traits;
262        template <class String, class Traits> class basic_path;
263        typedef basic_path<std::string, path_traits> path;
264    }
265#else
266    namespace filesystem2
267    {
268        struct path_traits;
269        template <class String, class Traits> class basic_path;
270        typedef basic_path<std::string, path_traits> path;
271    }
272    namespace filesystem
273    {
274        using filesystem2::basic_path;
275        using filesystem2::path_traits;
276        using filesystem2::path;
277    }
278#endif
279    class thread;
280    class mutex;
281    class shared_mutex;
282    class condition_variable;
283}
284
285// Ogre
286namespace Ogre
287{
288    class DataStream;
289    template <class T> class SharedPtr;
290    typedef SharedPtr<DataStream> DataStreamPtr;
291}
292namespace orxonox
293{
294    // Import the Ogre::DataStream
295    using Ogre::DataStream;
296    using Ogre::DataStreamPtr;
297}
298
299// CEGUI
300namespace CEGUI
301{
302    class DefaultLogger;
303    class Logger;
304    class LuaScriptModule;
305
306    class OgreCEGUIRenderer;
307    class OgreCEGUIResourceProvider;
308    class OgreCEGUITexture;
309}
310
311// Lua
312struct lua_State;
313
314// TinyXML and TinyXML++
315class TiXmlString;
316class TiXmlOutStream;
317class TiXmlNode;
318class TiXmlHandle;
319class TiXmlDocument;
320class TiXmlElement;
321class TiXmlComment;
322class TiXmlUnknown;
323class TiXmlAttribute;
324class TiXmlText;
325class TiXmlDeclaration;
326class TiXmlParsingData;
327namespace ticpp
328{
329    class Document;
330    class Element;
331    class Declaration;
332    class StylesheetReference;
333    class Text;
334    class Comment;
335    class Attribute;
336}
337namespace orxonox
338{
339    using ticpp::Element;
340}
341
342#endif /* _CorePrereqs_H__ */
Note: See TracBrowser for help on using the repository browser.