mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-22 11:23:52 +00:00
Issue #255: added new environment class (not in use yet)
This commit is contained in:
parent
b2521b6c5f
commit
2bfd90f3f9
3 changed files with 244 additions and 0 deletions
|
@ -58,6 +58,10 @@ add_openmw_dir (mwmechanics
|
||||||
mechanicsmanager stat creaturestats magiceffects movement actors drawstate spells
|
mechanicsmanager stat creaturestats magiceffects movement actors drawstate spells
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_openmw_dir (mwbase
|
||||||
|
environment
|
||||||
|
)
|
||||||
|
|
||||||
# Main executable
|
# Main executable
|
||||||
IF(OGRE_STATIC)
|
IF(OGRE_STATIC)
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
|
|
123
apps/openmw/mwbase/environment.cpp
Normal file
123
apps/openmw/mwbase/environment.cpp
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
|
||||||
|
#include "environment.hpp"
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
|
MWBase::Environment *MWBase::Environment::sThis = 0;
|
||||||
|
|
||||||
|
MWBase::Environment::Environment()
|
||||||
|
: mWorld (0), mSoundManager (0), mGlobalScripts (0), mScriptManager (0), mWindowManager (0),
|
||||||
|
mMechanicsManager (0), mDialogueManager (0), mJournal (0), mFrameDuration (0)
|
||||||
|
{
|
||||||
|
assert (!sThis);
|
||||||
|
sThis = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
MWBase::Environment::~Environment()
|
||||||
|
{
|
||||||
|
sThis = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWBase::Environment::setWorld (MWWorld::World *world)
|
||||||
|
{
|
||||||
|
mWorld = world;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWBase::Environment::setSoundManager (MWSound::SoundManager *soundManager)
|
||||||
|
{
|
||||||
|
mSoundManager = soundManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWBase::Environment::setGlobalScripts (MWScript::GlobalScripts *globalScripts)
|
||||||
|
{
|
||||||
|
mGlobalScripts = globalScripts;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWBase::Environment::setScriptManager (MWScript::ScriptManager *scriptManager)
|
||||||
|
{
|
||||||
|
mScriptManager = scriptManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWBase::Environment::setWindowManager (MWGui::WindowManager *windowManager)
|
||||||
|
{
|
||||||
|
mWindowManager = windowManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWBase::Environment::setMechanicsManager (MWMechanics::MechanicsManager *mechanicsManager)
|
||||||
|
{
|
||||||
|
mMechanicsManager = mechanicsManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWBase::Environment::setDialogueManager (MWDialogue::DialogueManager *dialogueManager)
|
||||||
|
{
|
||||||
|
mDialogueManager = dialogueManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWBase::Environment::setJournal (MWDialogue::Journal *journal)
|
||||||
|
{
|
||||||
|
mJournal = journal;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MWBase::Environment::setFrameDuration (float duration)
|
||||||
|
{
|
||||||
|
mFrameDuration = duration;
|
||||||
|
}
|
||||||
|
|
||||||
|
MWWorld::World *MWBase::Environment::getWorld() const
|
||||||
|
{
|
||||||
|
assert (mWorld);
|
||||||
|
return mWorld;
|
||||||
|
}
|
||||||
|
|
||||||
|
MWSound::SoundManager *MWBase::Environment::getSoundManager() const
|
||||||
|
{
|
||||||
|
assert (mSoundManager);
|
||||||
|
return mSoundManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
MWScript::GlobalScripts *MWBase::Environment::getGlobalScripts() const
|
||||||
|
{
|
||||||
|
assert (mGlobalScripts);
|
||||||
|
return mGlobalScripts;
|
||||||
|
}
|
||||||
|
|
||||||
|
MWScript::ScriptManager *MWBase::Environment::getScriptManager() const
|
||||||
|
{
|
||||||
|
assert (mScriptManager);
|
||||||
|
return mScriptManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
MWGui::WindowManager *MWBase::Environment::getWindowManager() const
|
||||||
|
{
|
||||||
|
assert (mWindowManager);
|
||||||
|
return mWindowManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
MWMechanics::MechanicsManager *MWBase::Environment::getMechanicsManager() const
|
||||||
|
{
|
||||||
|
assert (mMechanicsManager);
|
||||||
|
return mMechanicsManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
MWDialogue::DialogueManager *MWBase::Environment::getDialogueManager() const
|
||||||
|
{
|
||||||
|
assert (mDialogueManager);
|
||||||
|
return mDialogueManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
MWDialogue::Journal *MWBase::Environment::getJournal() const
|
||||||
|
{
|
||||||
|
assert (mJournal);
|
||||||
|
return mJournal;
|
||||||
|
}
|
||||||
|
|
||||||
|
float MWBase::Environment::getFrameDuration() const
|
||||||
|
{
|
||||||
|
return mFrameDuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
const MWBase::Environment& MWBase::Environment::get()
|
||||||
|
{
|
||||||
|
assert (sThis);
|
||||||
|
return *sThis;
|
||||||
|
}
|
117
apps/openmw/mwbase/environment.hpp
Normal file
117
apps/openmw/mwbase/environment.hpp
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
#ifndef GAME_BASE_INVIRONMENT_H
|
||||||
|
#define GAME_BASE_INVIRONMENT_H
|
||||||
|
|
||||||
|
namespace MWSound
|
||||||
|
{
|
||||||
|
class SoundManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace MWScript
|
||||||
|
{
|
||||||
|
class GlobalScripts;
|
||||||
|
class ScriptManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace MWGui
|
||||||
|
{
|
||||||
|
class WindowManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace MWMechanics
|
||||||
|
{
|
||||||
|
class MechanicsManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace MWDialogue
|
||||||
|
{
|
||||||
|
class DialogueManager;
|
||||||
|
class Journal;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace MWInput
|
||||||
|
{
|
||||||
|
struct MWInputManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace MWWorld
|
||||||
|
{
|
||||||
|
class World;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace MWBase
|
||||||
|
{
|
||||||
|
/// \brief Central hub for mw-subsystems
|
||||||
|
///
|
||||||
|
/// This class allows each mw-subsystem to access any others subsystem's top-level manager class.
|
||||||
|
///
|
||||||
|
/// \attention Environment does not take ownership of the manager class instances it is handed over in
|
||||||
|
/// the set* functions.
|
||||||
|
class Environment
|
||||||
|
{
|
||||||
|
static Environment *sThis;
|
||||||
|
|
||||||
|
MWWorld::World *mWorld;
|
||||||
|
MWSound::SoundManager *mSoundManager;
|
||||||
|
MWScript::GlobalScripts *mGlobalScripts;
|
||||||
|
MWScript::ScriptManager *mScriptManager;
|
||||||
|
MWGui::WindowManager *mWindowManager;
|
||||||
|
MWMechanics::MechanicsManager *mMechanicsManager;
|
||||||
|
MWDialogue::DialogueManager *mDialogueManager;
|
||||||
|
MWDialogue::Journal *mJournal;
|
||||||
|
float mFrameDuration;
|
||||||
|
|
||||||
|
Environment (const Environment&);
|
||||||
|
///< not implemented
|
||||||
|
|
||||||
|
Environment& operator= (const Environment&);
|
||||||
|
///< not implemented
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
Environment();
|
||||||
|
|
||||||
|
~Environment();
|
||||||
|
|
||||||
|
void setWorld (MWWorld::World *world);
|
||||||
|
|
||||||
|
void setSoundManager (MWSound::SoundManager *soundManager);
|
||||||
|
|
||||||
|
void setGlobalScripts (MWScript::GlobalScripts *globalScripts);
|
||||||
|
|
||||||
|
void setScriptManager (MWScript::ScriptManager *scriptManager);
|
||||||
|
|
||||||
|
void setWindowManager (MWGui::WindowManager *windowManager);
|
||||||
|
|
||||||
|
void setMechanicsManager (MWMechanics::MechanicsManager *mechanicsManager);
|
||||||
|
|
||||||
|
void setDialogueManager (MWDialogue::DialogueManager *dialogueManager);
|
||||||
|
|
||||||
|
void setJournal (MWDialogue::Journal *journal);
|
||||||
|
|
||||||
|
void setFrameDuration (float duration);
|
||||||
|
///< Set length of current frame in seconds.
|
||||||
|
|
||||||
|
MWWorld::World *getWorld() const;
|
||||||
|
|
||||||
|
MWSound::SoundManager *getSoundManager() const;
|
||||||
|
|
||||||
|
MWScript::GlobalScripts *getGlobalScripts() const;
|
||||||
|
|
||||||
|
MWScript::ScriptManager *getScriptManager() const;
|
||||||
|
|
||||||
|
MWGui::WindowManager *getWindowManager() const;
|
||||||
|
|
||||||
|
MWMechanics::MechanicsManager *getMechanicsManager() const;
|
||||||
|
|
||||||
|
MWDialogue::DialogueManager *getDialogueManager() const;
|
||||||
|
|
||||||
|
MWDialogue::Journal *getJournal() const;
|
||||||
|
|
||||||
|
float getFrameDuration() const;
|
||||||
|
|
||||||
|
static const Environment& get();
|
||||||
|
///< Return instance of this class.
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue