aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2012-08-07 13:51:22 +0200
committerEinar Johan Trøan Sømåen2012-08-07 13:51:22 +0200
commit6b159d71ab212feb4e93bae412a7352ead59241b (patch)
treec9e035ee75ab09334f20332218eab2589f712bd7
parente32b79bff1260f8d2853404f750acc22209a323b (diff)
downloadscummvm-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.cpp6
-rw-r--r--engines/wintermute/base/base_engine.h4
-rw-r--r--engines/wintermute/base/base_persistence_manager.cpp2
-rw-r--r--engines/wintermute/base/saveload.cpp2
-rw-r--r--engines/wintermute/base/sound/base_sound_manager.cpp2
-rw-r--r--engines/wintermute/system/sys_class_registry.cpp5
-rw-r--r--engines/wintermute/wintermute.cpp14
-rw-r--r--engines/wintermute/wintermute.h5
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