aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/gob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gob/gob.cpp')
-rw-r--r--engines/gob/gob.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp
index 4e7aa467b5..3d8a18ed38 100644
--- a/engines/gob/gob.cpp
+++ b/engines/gob/gob.cpp
@@ -233,6 +233,10 @@ bool GobEngine::isDemo() const {
return (isSCNDemo() || isBATDemo());
}
+bool GobEngine::hasResourceSizeWorkaround() const {
+ return _resourceSizeWorkaround;
+}
+
bool GobEngine::isCurrentTot(const Common::String &tot) const {
return _game->_curTotFile.equalsIgnoreCase(tot);
}
@@ -389,6 +393,8 @@ void GobEngine::pauseGame() {
}
bool GobEngine::initGameParts() {
+ _resourceSizeWorkaround = false;
+
// just detect some devices some of which will be always there if the music is not disabled
_noMusic = MidiDriver::getMusicType(MidiDriver::detectDevice(MDT_PCSPK | MDT_MIDI | MDT_ADLIB)) == MT_NULL ? true : false;
_saveLoad = 0;
@@ -462,6 +468,33 @@ bool GobEngine::initGameParts() {
_saveLoad = new SaveLoad_v2(this, _targetName.c_str());
break;
+ case kGameTypeLittleRed:
+ _init = new Init_v2(this);
+ _video = new Video_v2(this);
+ _inter = new Inter_LittleRed(this);
+ _mult = new Mult_v2(this);
+ _draw = new Draw_v2(this);
+ _map = new Map_v2(this);
+ _goblin = new Goblin_v2(this);
+ _scenery = new Scenery_v2(this);
+
+ // WORKAROUND: Little Red Riding Hood has a small resource size glitch in the
+ // screen where Little Red needs to find the animals' homes.
+ _resourceSizeWorkaround = true;
+ break;
+
+ case kGameTypeAJWorld:
+ _init = new Init_v2(this);
+ _video = new Video_v2(this);
+ _inter = new Inter_v2(this);
+ _mult = new Mult_v2(this);
+ _draw = new Draw_v2(this);
+ _map = new Map_v2(this);
+ _goblin = new Goblin_v2(this);
+ _scenery = new Scenery_v2(this);
+ _saveLoad = new SaveLoad_AJWorld(this, _targetName.c_str());
+ break;
+
case kGameTypeGob3:
_init = new Init_v3(this);
_video = new Video_v2(this);