Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/core7/src/libraries/core/CoreConfig.h @ 10479

Last change on this file since 10479 was 10479, checked in by landauf, 9 years ago

moved config values and all related functions from Game and Core to GameConfig and CoreConfig respectively. this ensures that no framework features are used by Game and Core before Core itself initialized the framework.

File size: 3.2 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 *      Fabian 'x3n' Landau
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29#ifndef _CoreConfig_H__
30#define _CoreConfig_H__
31
32#include "core/CorePrereqs.h"
33
34#include "core/config/Configurable.h"
35
36namespace orxonox
37{
38    class _CoreExport CoreConfig : virtual public Configurable
39    {
40        public:
41            CoreConfig();
42
43            void setConfigValues();
44
45            //! Developers bit. If returns false, some options are not available as to not confuse the normal user.
46            inline bool inDevMode(void) const
47                { return this->bDevMode_; }
48
49            //! Returns the configured language.
50            const std::string& getLanguage()
51                { return this->language_; }
52            void resetLanguage();
53
54            inline bool getStartIOConsole() const
55                { return this->bStartIOConsole_; }
56
57            void updateLastLevelTimestamp();
58            inline long long getLastLevelTimestamp() const
59                { return this->lastLevelTimestamp_; }
60
61            void updateOgreConfigTimestamp();
62            inline long long getOgreConfigTimestamp() const
63                { return this->ogreConfigTimestamp_; }
64
65        private:
66            void devModeChanged();
67            void languageChanged();
68            void initRandomNumberGenerator();
69
70            bool                      bDevMode_;                   //!< Developers bit. If set to false, some options are not available as to not confuse the normal user.
71            std::string               language_;                   //!< The language
72            bool                      bInitRandomNumberGenerator_; //!< If true, srand(time(0)) is called
73            bool                      bStartIOConsole_;            //!< Set to false if you don't want to use the IOConsole
74            long long                 lastLevelTimestamp_;         ///< Timestamp when the last level was started
75            long long                 ogreConfigTimestamp_;        ///< Timestamp wehen the ogre config level was modified
76    };
77
78    //! Informs about changes in the Development Mode.
79    class DevModeListener : virtual public Listable
80    {
81    public:
82        DevModeListener();
83        virtual ~DevModeListener() {}
84        virtual void devModeChanged(bool value) = 0;
85    };
86}
87
88#endif /* _CoreConfig_H__ */
Note: See TracBrowser for help on using the repository browser.