[Scummvm-cvs-logs] scummvm master -> 026ef70b87f4b85476cb6a3d74ffb9170a170718
DrMcCoy
drmccoy at drmccoy.de
Sat Jun 16 15:26:52 CEST 2012
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
3d7c6a2710 GOB: Correct the name of A.J.'s World of Discovery
6d01b51755 GOB: Add a proper GameType for AJ's World
026ef70b87 GOB: Add a SaveLoad class for AJ's World
Commit: 3d7c6a2710e7d8ba1dfc86afe09f94dbf874b99a
https://github.com/scummvm/scummvm/commit/3d7c6a2710e7d8ba1dfc86afe09f94dbf874b99a
Author: Sven Hesse (drmccoy at users.sourceforge.net)
Date: 2012-06-16T06:06:07-07:00
Commit Message:
GOB: Correct the name of A.J.'s World of Discovery
Changed paths:
engines/gob/detection.cpp
diff --git a/engines/gob/detection.cpp b/engines/gob/detection.cpp
index 861cc95..18baffa 100644
--- a/engines/gob/detection.cpp
+++ b/engines/gob/detection.cpp
@@ -51,7 +51,7 @@ static const PlainGameDescriptor gobGames[] = {
{"ween", "Ween: The Prophecy"},
{"bargon", "Bargon Attack"},
{"littlered", "Once Upon A Time: Little Red Riding Hood"},
- {"ajworld", "A.J's World of Discovery"},
+ {"ajworld", "A.J.'s World of Discovery"},
{"gob3", "Goblins Quest 3"},
{"gob3cd", "Goblins Quest 3 CD"},
{"lit1", "Lost in Time Part 1"},
Commit: 6d01b517550d161b45cbebba077bb9f7bbbc99f2
https://github.com/scummvm/scummvm/commit/6d01b517550d161b45cbebba077bb9f7bbbc99f2
Author: Sven Hesse (drmccoy at users.sourceforge.net)
Date: 2012-06-16T06:08:10-07:00
Commit Message:
GOB: Add a proper GameType for AJ's World
Changed paths:
engines/gob/detection_tables.h
engines/gob/gob.cpp
engines/gob/gob.h
diff --git a/engines/gob/detection_tables.h b/engines/gob/detection_tables.h
index bd35900..f3dc375 100644
--- a/engines/gob/detection_tables.h
+++ b/engines/gob/detection_tables.h
@@ -4675,7 +4675,7 @@ static const GOBGameDescription gameDescriptions[] = {
ADGF_NO_FLAGS,
GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH)
},
- kGameTypeGob2,
+ kGameTypeAJWorld,
kFeaturesAdLib,
0, 0, 0
},
diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp
index f3480fe..3d3c43d 100644
--- a/engines/gob/gob.cpp
+++ b/engines/gob/gob.cpp
@@ -483,6 +483,17 @@ bool GobEngine::initGameParts() {
_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);
+ break;
+
case kGameTypeGob3:
_init = new Init_v3(this);
_video = new Video_v2(this);
diff --git a/engines/gob/gob.h b/engines/gob/gob.h
index 808c941..52f3ba8 100644
--- a/engines/gob/gob.h
+++ b/engines/gob/gob.h
@@ -129,7 +129,8 @@ enum GameType {
kGameTypeAdi4,
kGameTypeAdibou2,
kGameTypeAdibou1,
- kGameTypeLittleRed
+ kGameTypeLittleRed,
+ kGameTypeAJWorld
};
enum Features {
Commit: 026ef70b87f4b85476cb6a3d74ffb9170a170718
https://github.com/scummvm/scummvm/commit/026ef70b87f4b85476cb6a3d74ffb9170a170718
Author: Sven Hesse (drmccoy at users.sourceforge.net)
Date: 2012-06-16T06:23:31-07:00
Commit Message:
GOB: Add a SaveLoad class for AJ's World
Only contains a temp sprite handler ("menu.inf") for now.
This fixes the graphical glitch after clicking on the cloud.
Changed paths:
A engines/gob/save/saveload_ajworld.cpp
engines/gob/gob.cpp
engines/gob/module.mk
engines/gob/save/saveload.h
diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp
index 3d3c43d..3d8a18e 100644
--- a/engines/gob/gob.cpp
+++ b/engines/gob/gob.cpp
@@ -492,6 +492,7 @@ bool GobEngine::initGameParts() {
_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:
diff --git a/engines/gob/module.mk b/engines/gob/module.mk
index 20214ea..2249f44 100644
--- a/engines/gob/module.mk
+++ b/engines/gob/module.mk
@@ -94,6 +94,7 @@ MODULE_OBJS := \
save/saveload_v7.o \
save/saveload_geisha.o \
save/saveload_fascin.o \
+ save/saveload_ajworld.o \
save/saveload_inca2.o \
save/saveload_playtoons.o \
save/saveconverter.o \
diff --git a/engines/gob/save/saveload.h b/engines/gob/save/saveload.h
index 66b3482..8344847 100644
--- a/engines/gob/save/saveload.h
+++ b/engines/gob/save/saveload.h
@@ -257,6 +257,33 @@ protected:
SaveFile *getSaveFile(const char *fileName);
};
+/** Save/Load class for A.J.'s World of Discovery. */
+class SaveLoad_AJWorld : public SaveLoad {
+public:
+ SaveLoad_AJWorld(GobEngine *vm, const char *targetName);
+ virtual ~SaveLoad_AJWorld();
+
+ SaveMode getSaveMode(const char *fileName) const;
+
+protected:
+ struct SaveFile {
+ const char *sourceName;
+ SaveMode mode;
+ SaveHandler *handler;
+ const char *description;
+ };
+
+ static SaveFile _saveFiles[];
+
+ TempSpriteHandler *_tempSpriteHandler;
+
+ SaveHandler *getHandler(const char *fileName) const;
+ const char *getDescription(const char *fileName) const;
+
+ const SaveFile *getSaveFile(const char *fileName) const;
+ SaveFile *getSaveFile(const char *fileName);
+};
+
/** Save/Load class for Goblins 3 and Lost in Time. */
class SaveLoad_v3 : public SaveLoad {
public:
diff --git a/engines/gob/save/saveload_ajworld.cpp b/engines/gob/save/saveload_ajworld.cpp
new file mode 100644
index 0000000..727d071
--- /dev/null
+++ b/engines/gob/save/saveload_ajworld.cpp
@@ -0,0 +1,94 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "gob/save/saveload.h"
+#include "gob/save/saveconverter.h"
+#include "gob/inter.h"
+#include "gob/variables.h"
+
+namespace Gob {
+
+SaveLoad_AJWorld::SaveFile SaveLoad_AJWorld::_saveFiles[] = {
+ { "menu.inf", kSaveModeSave, 0, "temporary sprite"}
+};
+
+
+SaveLoad_AJWorld::SaveLoad_AJWorld(GobEngine *vm, const char *targetName) :
+ SaveLoad(vm) {
+
+ _tempSpriteHandler = new TempSpriteHandler(vm);
+
+ _saveFiles[0].handler = _tempSpriteHandler;
+}
+
+SaveLoad_AJWorld::~SaveLoad_AJWorld() {
+ delete _tempSpriteHandler;
+}
+
+const SaveLoad_AJWorld::SaveFile *SaveLoad_AJWorld::getSaveFile(const char *fileName) const {
+ fileName = stripPath(fileName);
+
+ for (int i = 0; i < ARRAYSIZE(_saveFiles); i++)
+ if (!scumm_stricmp(fileName, _saveFiles[i].sourceName))
+ return &_saveFiles[i];
+
+ return 0;
+}
+
+SaveLoad_AJWorld::SaveFile *SaveLoad_AJWorld::getSaveFile(const char *fileName) {
+ fileName = stripPath(fileName);
+
+ for (int i = 0; i < ARRAYSIZE(_saveFiles); i++)
+ if (!scumm_stricmp(fileName, _saveFiles[i].sourceName))
+ return &_saveFiles[i];
+
+ return 0;
+}
+
+SaveHandler *SaveLoad_AJWorld::getHandler(const char *fileName) const {
+ const SaveFile *saveFile = getSaveFile(fileName);
+
+ if (saveFile)
+ return saveFile->handler;
+
+ return 0;
+}
+
+const char *SaveLoad_AJWorld::getDescription(const char *fileName) const {
+ const SaveFile *saveFile = getSaveFile(fileName);
+
+ if (saveFile)
+ return saveFile->description;
+
+ return 0;
+}
+
+SaveLoad::SaveMode SaveLoad_AJWorld::getSaveMode(const char *fileName) const {
+ const SaveFile *saveFile = getSaveFile(fileName);
+
+ if (saveFile)
+ return saveFile->mode;
+
+ return kSaveModeNone;
+}
+
+} // End of namespace Gob
More information about the Scummvm-git-logs
mailing list