OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
engine.hpp
Go to the documentation of this file.
1 #ifndef ENGINE_H
2 #define ENGINE_H
3 
8 
9 #include <osgViewer/Viewer>
10 #include <osgViewer/ViewerEventHandlers>
11 
12 #include "mwbase/environment.hpp"
13 
14 #include "mwworld/ptr.hpp"
15 
16 namespace Resource
17 {
18  class ResourceSystem;
19 }
20 
21 namespace SceneUtil
22 {
23  class WorkQueue;
24 }
25 
26 namespace VFS
27 {
28  class Manager;
29 }
30 
31 namespace Compiler
32 {
33  class Context;
34 }
35 
36 namespace MWScript
37 {
38  class ScriptManager;
39 }
40 
41 namespace MWSound
42 {
43  class SoundManager;
44 }
45 
46 namespace MWWorld
47 {
48  class World;
49 }
50 
51 namespace MWGui
52 {
53  class WindowManager;
54 }
55 
56 namespace Files
57 {
58  struct ConfigurationManager;
59 }
60 
61 namespace osgViewer
62 {
63  class ScreenCaptureHandler;
64 }
65 
66 struct SDL_Window;
67 
68 namespace OMW
69 {
71  class Engine
72  {
73  SDL_Window* mWindow;
74  std::unique_ptr<VFS::Manager> mVFS;
75  std::unique_ptr<Resource::ResourceSystem> mResourceSystem;
76  osg::ref_ptr<SceneUtil::WorkQueue> mWorkQueue;
81  std::vector<std::string> mArchives;
82  boost::filesystem::path mResDir;
83  osg::ref_ptr<osgViewer::Viewer> mViewer;
84  osg::ref_ptr<osgViewer::ScreenCaptureHandler> mScreenCaptureHandler;
86  std::string mCellName;
87  std::vector<std::string> mContentFiles;
88  bool mSkipMenu;
89  bool mUseSound;
93  std::string mFocusName;
94  std::map<std::string,std::string> mFallbackMap;
96  std::string mStartupScript;
98  std::string mSaveGameFile;
99  // Grab mouse?
100  bool mGrab;
101 
103 
106 
108  bool mFSStrict;
110  std::vector<std::string> mScriptBlacklist;
112  bool mNewGame;
113 
114  osg::Timer_t mStartTick;
115 
116  // not implemented
117  Engine (const Engine&);
118  Engine& operator= (const Engine&);
119 
120  void executeLocalScripts();
121 
122  bool frame (float dt);
123 
125  std::string loadSettings (Settings::Manager & settings);
126 
128  void prepareEngine (Settings::Manager & settings);
129 
130  void createWindow(Settings::Manager& settings);
131  void setWindowIcon();
132 
133  public:
134  Engine(Files::ConfigurationManager& configurationManager);
135  virtual ~Engine();
136 
141  void enableFSStrict(bool fsStrict);
142 
144  void setDataDirs(const Files::PathContainer& dataDirs);
145 
147  void addArchive(const std::string& archive);
148 
150  void setResourceDir(const boost::filesystem::path& parResDir);
151 
153  void setCell(const std::string& cellName);
154 
159  void addContentFile(const std::string& file);
160 
162  void setSoundUsage(bool soundUsage);
163 
168  void setSkipMenu (bool skipMenu, bool newGame);
169 
170  void setGrabMouse(bool grab) { mGrab = grab; }
171 
173  void go();
174 
176  void setCompileAll (bool all);
177 
179  void setCompileAllDialogue (bool all);
180 
182  void setEncoding(const ToUTF8::FromType& encoding);
183 
184  void setFallbackValues(std::map<std::string,std::string> map);
185 
187  void setScriptConsoleMode (bool enabled);
188 
190  void setStartupScript (const std::string& path);
191 
194 
195  void setWarningsMode (int mode);
196 
197  void setScriptBlacklist (const std::vector<std::string>& list);
198 
199  void setScriptBlacklistUse (bool use);
200 
201  void enableFontExport(bool exportFonts);
202 
204  void setSaveGameFile(const std::string& savegame);
205 
206  private:
208  };
209 }
210 
211 #endif /* ENGINE_H */
osg::ref_ptr< osgViewer::Viewer > mViewer
Definition: engine.hpp:83
void executeLocalScripts()
Definition: engine.cpp:70
Main engine class, that brings together all the components of OpenMW.
Definition: engine.hpp:71
Engine & operator=(const Engine &)
MWBase::Environment mEnvironment
Definition: engine.hpp:77
void setFallbackValues(std::map< std::string, std::string > map)
Definition: engine.cpp:764
void addArchive(const std::string &archive)
Add BSA archive.
Definition: engine.cpp:271
std::map< std::string, std::string > mFallbackMap
Definition: engine.hpp:94
bool mScriptConsoleMode
Definition: engine.hpp:95
Files::Collections mFileCollections
Definition: engine.hpp:107
void setScriptBlacklist(const std::vector< std::string > &list)
Definition: engine.cpp:789
ToUTF8::Utf8Encoder * mEncoder
Definition: engine.hpp:79
int mWarningsMode
Definition: engine.hpp:92
void setCell(const std::string &cellName)
Set start cell name.
Definition: engine.cpp:282
Central hub for mw-subsystems.
Definition: environment.hpp:22
bool mFSStrict
Definition: engine.hpp:108
void setSaveGameFile(const std::string &savegame)
Set the save game file to load after initialising the engine.
Definition: engine.cpp:804
int list(Bsa::BSAFile &bsa, Arguments &info)
Definition: bsatool.cpp:182
bool mNewGame
Definition: engine.hpp:112
Definition: context.hpp:10
Definition: configurationmanager.hpp:20
void setDataDirs(const Files::PathContainer &dataDirs)
Set data dirs.
Definition: engine.cpp:264
Definition: translation.hpp:9
bool mUseSound
Definition: engine.hpp:89
std::string loadSettings(Settings::Manager &settings)
Load settings from various files, returns the path to the user settings file.
Definition: engine.cpp:298
virtual ~Engine()
Definition: engine.cpp:235
int mActivationDistanceOverride
Definition: engine.hpp:97
osg::Timer_t mStartTick
Definition: engine.hpp:114
Compiler::Extensions mExtensions
Definition: engine.hpp:104
bool mExportFonts
Definition: engine.hpp:102
std::unique_ptr< Resource::ResourceSystem > mResourceSystem
Definition: engine.hpp:75
Compiler::Context * mScriptContext
Definition: engine.hpp:105
bool mGrab
Definition: engine.hpp:100
void setWindowIcon()
Definition: engine.cpp:419
void setSkipMenu(bool skipMenu, bool newGame)
Definition: engine.cpp:292
std::unique_ptr< VFS::Manager > mVFS
Definition: engine.hpp:74
std::vector< std::string > mScriptBlacklist
Definition: engine.hpp:110
void setResourceDir(const boost::filesystem::path &parResDir)
Set resource dir.
Definition: engine.cpp:276
bool frame(float dt)
Definition: engine.cpp:84
Collection of compiler extensions.
Definition: extensions.hpp:39
osg::ref_ptr< osgViewer::ScreenCaptureHandler > mScreenCaptureHandler
Definition: engine.hpp:84
std::string mStartupScript
Definition: engine.hpp:96
osgViewer::ScreenCaptureHandler::CaptureOperation * mScreenCaptureOperation
Definition: engine.hpp:85
void addContentFile(const std::string &file)
addContentFile - Adds content file (ie. esm/esp, or omwgame/omwaddon) to the content files container...
Definition: engine.cpp:287
bool mCompileAllDialogue
Definition: engine.hpp:91
void setSoundUsage(bool soundUsage)
Disable or enable all sounds.
Definition: engine.cpp:754
FromType
Definition: to_utf8.hpp:11
std::string mCellName
Definition: engine.hpp:86
void setStartupScript(const std::string &path)
Set path for a script that is run on startup in the console.
Definition: engine.cpp:774
std::string mFocusName
Definition: engine.hpp:93
float distance(const ESM::Pathgrid::Point &point, float x, float y, float z)
Definition: pathfinding.cpp:69
Files::PathContainer mDataDirs
Definition: engine.hpp:80
Engine(const Engine &)
void setScriptConsoleMode(bool enabled)
Enable console-only script functionality.
Definition: engine.cpp:769
void setScriptBlacklistUse(bool use)
Definition: engine.cpp:794
void setCompileAll(bool all)
Compile all scripts (excludign dialogue scripts) at startup?
Definition: engine.cpp:744
void setWarningsMode(int mode)
Definition: engine.cpp:784
void createWindow(Settings::Manager &settings)
Definition: engine.cpp:320
std::vector< std::string > mContentFiles
Definition: engine.hpp:87
boost::filesystem::path mResDir
Definition: engine.hpp:82
std::vector< std::string > mArchives
Definition: engine.hpp:81
SDL_Window * mWindow
Definition: engine.hpp:73
Settings management (can change during runtime)
Definition: settings.hpp:17
void enableFontExport(bool exportFonts)
Definition: engine.cpp:799
Translation::Storage mTranslationDataStorage
Definition: engine.hpp:109
void setGrabMouse(bool grab)
Definition: engine.hpp:170
ToUTF8::FromType mEncoding
Definition: engine.hpp:78
bool mSkipMenu
Definition: engine.hpp:88
bool mCompileAll
Definition: engine.hpp:90
std::string mSaveGameFile
Definition: engine.hpp:98
Definition: collections.hpp:10
void enableFSStrict(bool fsStrict)
Definition: engine.cpp:257
bool mScriptBlacklistUse
Definition: engine.hpp:111
Definition: to_utf8.hpp:25
std::vector< boost::filesystem::path > PathContainer
Definition: gamesettings.hpp:14
Files::ConfigurationManager & mCfgMgr
Definition: engine.hpp:207
void prepareEngine(Settings::Manager &settings)
Prepare engine for game play.
Definition: engine.cpp:443
void setActivationDistanceOverride(int distance)
Override the game setting specified activation distance.
Definition: engine.cpp:779
Definition: windowmanagerimp.hpp:127
void setEncoding(const ToUTF8::FromType &encoding)
Font encoding.
Definition: engine.cpp:759
osg::ref_ptr< SceneUtil::WorkQueue > mWorkQueue
Definition: engine.hpp:76
void setCompileAllDialogue(bool all)
Compile all dialogue scripts at startup?
Definition: engine.cpp:749
void go()
Initialise and enter main loop.
Definition: engine.cpp:635