diff options
author | Einar Johan Trøan Sømåen | 2012-08-07 13:51:22 +0200 |
---|---|---|
committer | Einar Johan Trøan Sømåen | 2012-08-07 13:51:22 +0200 |
commit | 6b159d71ab212feb4e93bae412a7352ead59241b (patch) | |
tree | c9e035ee75ab09334f20332218eab2589f712bd7 | |
parent | e32b79bff1260f8d2853404f750acc22209a323b (diff) | |
download | scummvm-rg350-6b159d71ab212feb4e93bae412a7352ead59241b.tar.gz scummvm-rg350-6b159d71ab212feb4e93bae412a7352ead59241b.tar.bz2 scummvm-rg350-6b159d71ab212feb4e93bae412a7352ead59241b.zip |
WINTERMUTE: Remove g_wintermute.
-rw-r--r-- | engines/wintermute/base/base_engine.cpp | 6 | ||||
-rw-r--r-- | engines/wintermute/base/base_engine.h | 4 | ||||
-rw-r--r-- | engines/wintermute/base/base_persistence_manager.cpp | 2 | ||||
-rw-r--r-- | engines/wintermute/base/saveload.cpp | 2 | ||||
-rw-r--r-- | engines/wintermute/base/sound/base_sound_manager.cpp | 2 | ||||
-rw-r--r-- | engines/wintermute/system/sys_class_registry.cpp | 5 | ||||
-rw-r--r-- | engines/wintermute/wintermute.cpp | 14 | ||||
-rw-r--r-- | engines/wintermute/wintermute.h | 5 |
8 files changed, 16 insertions, 24 deletions
diff --git a/engines/wintermute/base/base_engine.cpp b/engines/wintermute/base/base_engine.cpp index 04088d299e..c31777c866 100644 --- a/engines/wintermute/base/base_engine.cpp +++ b/engines/wintermute/base/base_engine.cpp @@ -30,6 +30,7 @@ #include "engines/wintermute/base/base_game.h" #include "engines/wintermute/base/base_engine.h" #include "engines/wintermute/wintermute.h" +#include "engines/wintermute/system/sys_class_registry.h" #include "common/system.h" namespace Common { DECLARE_SINGLETON(WinterMute::BaseEngine); @@ -40,6 +41,7 @@ namespace WinterMute { BaseEngine::BaseEngine() { _fileManager = NULL; _gameRef = NULL; + _classReg = NULL; _rnd = NULL; _gameId = ""; } @@ -48,10 +50,14 @@ void BaseEngine::init() { _fileManager = new BaseFileManager(); // Don't forget to register your random source _rnd = new Common::RandomSource("WinterMute"); + _classReg = new SystemClassRegistry(); + _classReg->registerClasses(); } BaseEngine::~BaseEngine() { delete _fileManager; + delete _rnd; + delete _classReg; } void BaseEngine::createInstance(const Common::String &gameid) { diff --git a/engines/wintermute/base/base_engine.h b/engines/wintermute/base/base_engine.h index 253ef048ab..04199715af 100644 --- a/engines/wintermute/base/base_engine.h +++ b/engines/wintermute/base/base_engine.h @@ -38,6 +38,7 @@ namespace WinterMute { class BaseFileManager; class BaseRegistry; class BaseGame; +class SystemClassRegistry; class BaseEngine : public Common::Singleton<WinterMute::BaseEngine> { void init(); BaseFileManager *_fileManager; @@ -45,6 +46,7 @@ class BaseEngine : public Common::Singleton<WinterMute::BaseEngine> { BaseGame *_gameRef; // We need random numbers Common::RandomSource *_rnd; + SystemClassRegistry *_classReg; public: BaseEngine(); ~BaseEngine(); @@ -53,6 +55,8 @@ public: Common::RandomSource *getRandomSource() { return _rnd; } uint32 randInt(int from, int to); + + SystemClassRegistry *getClassRegistry(){ return _classReg; } BaseGame *getGameRef() { return _gameRef; } BaseFileManager *getFileManager() { return _fileManager; } static void LOG(bool res, const char *fmt, ...); diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp index 4236203292..e6ed5cb7e0 100644 --- a/engines/wintermute/base/base_persistence_manager.cpp +++ b/engines/wintermute/base/base_persistence_manager.cpp @@ -371,7 +371,7 @@ bool BasePersistenceManager::saveFile(const Common::String &filename) { byte *buffer = ((Common::MemoryWriteStreamDynamic *)_saveStream)->getData();
uint32 bufferSize = ((Common::MemoryWriteStreamDynamic *)_saveStream)->size();
- Common::SaveFileManager *saveMan = g_wintermute->getSaveFileMan();
+ Common::SaveFileManager *saveMan = ((WinterMuteEngine *)g_engine)->getSaveFileMan();
Common::OutSaveFile *file = saveMan->openForSaving(filename);
file->write(prefixBuffer, prefixSize);
file->write(buffer, bufferSize);
diff --git a/engines/wintermute/base/saveload.cpp b/engines/wintermute/base/saveload.cpp index 5b51749b43..fe987c0b2a 100644 --- a/engines/wintermute/base/saveload.cpp +++ b/engines/wintermute/base/saveload.cpp @@ -194,7 +194,7 @@ bool SaveLoad::isSaveSlotUsed(int slot) { bool SaveLoad::emptySaveSlot(int slot) { Common::String filename = getSaveSlotFilename(slot); BasePersistenceManager *pm = new BasePersistenceManager(); - g_wintermute->getSaveFileMan()->removeSavefile(pm->getFilenameForSlot(slot)); + ((WinterMuteEngine *)g_engine)->getSaveFileMan()->removeSavefile(pm->getFilenameForSlot(slot)); delete pm; return true; } diff --git a/engines/wintermute/base/sound/base_sound_manager.cpp b/engines/wintermute/base/sound/base_sound_manager.cpp index ed475ec31c..95b7d040ab 100644 --- a/engines/wintermute/base/sound/base_sound_manager.cpp +++ b/engines/wintermute/base/sound/base_sound_manager.cpp @@ -184,7 +184,7 @@ bool BaseSoundMgr::setVolume(Audio::Mixer::SoundType type, int volume) { case Audio::Mixer::kPlainSoundType:
error("Plain sound type shouldn't be used in WME");
}
- g_wintermute->syncSoundSettings();
+ g_engine->syncSoundSettings();
return STATUS_OK;
}
diff --git a/engines/wintermute/system/sys_class_registry.cpp b/engines/wintermute/system/sys_class_registry.cpp index d9303ea729..b9e9bc8878 100644 --- a/engines/wintermute/system/sys_class_registry.cpp +++ b/engines/wintermute/system/sys_class_registry.cpp @@ -28,10 +28,11 @@ #include "engines/wintermute/base/base_game.h"
#include "engines/wintermute/platform_osystem.h"
-#include "engines/wintermute/wintermute.h"
+#include "engines/wintermute/base/base_engine.h"
#include "engines/wintermute/system/sys_instance.h"
#include "engines/wintermute/system/sys_class_registry.h"
#include "engines/wintermute/system/sys_class.h"
+#include "engines/wintermute/wintermute.h"
#include "common/stream.h"
namespace WinterMute {
@@ -50,7 +51,7 @@ SystemClassRegistry::~SystemClassRegistry() { //////////////////////////////////////////////////////////////////////////
SystemClassRegistry *SystemClassRegistry::getInstance() {
- return g_wintermute->getClassRegistry();
+ return BaseEngine::instance().getClassRegistry();
}
void SystemClassRegistry::unregisterClasses() {
diff --git a/engines/wintermute/wintermute.cpp b/engines/wintermute/wintermute.cpp index b97bb22e6b..842a6f0039 100644 --- a/engines/wintermute/wintermute.cpp +++ b/engines/wintermute/wintermute.cpp @@ -43,15 +43,9 @@ namespace WinterMute { -WinterMuteEngine *g_wintermute; - // Simple constructor for detection - we need to setup the persistence to avoid special-casing in-engine // This might not be the prettiest solution WinterMuteEngine::WinterMuteEngine() : Engine(g_system) { - g_wintermute = this; - _classReg = new SystemClassRegistry(); - _classReg->registerClasses(); - _game = new AdGame(""); } @@ -75,9 +69,6 @@ WinterMuteEngine::WinterMuteEngine(OSystem *syst, const ADGameDescription *desc) DebugMan.addDebugChannel(kWinterMuteDebugAudio, "audio", "audio-playback-related issues"); _game = NULL; - - g_wintermute = this; - _classReg = NULL; } WinterMuteEngine::~WinterMuteEngine() { @@ -85,7 +76,6 @@ WinterMuteEngine::~WinterMuteEngine() { deinit(); delete _game; delete _console; - g_wintermute = NULL; // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); @@ -135,8 +125,6 @@ Common::Error WinterMuteEngine::run() { } int WinterMuteEngine::init() { - _classReg = new SystemClassRegistry(); - _classReg->registerClasses(); BaseEngine::createInstance(_targetName); _game = new AdGame(_targetName); if (!_game) return 1; @@ -272,8 +260,6 @@ int WinterMuteEngine::messageLoop() { } void WinterMuteEngine::deinit() { - delete _classReg; - _classReg = NULL; BaseEngine::destroy(); } diff --git a/engines/wintermute/wintermute.h b/engines/wintermute/wintermute.h index fb94fd9175..a0292c17ec 100644 --- a/engines/wintermute/wintermute.h +++ b/engines/wintermute/wintermute.h @@ -50,7 +50,6 @@ public: virtual Common::Error run(); virtual bool hasFeature(EngineFeature f) const; Common::SaveFileManager *getSaveFileMan() { return _saveFileMan; } - SystemClassRegistry *getClassRegistry(){ return _classReg; } virtual Common::Error loadGameState(int slot); virtual bool canLoadGameStateCurrently(); virtual Common::Error saveGameState(int slot, const Common::String &desc); @@ -63,7 +62,6 @@ private: int messageLoop(); Console *_console; BaseGame *_game; - SystemClassRegistry *_classReg; const ADGameDescription *_gameDescription; }; @@ -74,9 +72,6 @@ public: virtual ~Console(void) {} }; -// Mainly used for randInt() -extern WinterMuteEngine *g_wintermute; - } // End of namespace Wintermute #endif |