[Scummvm-cvs-logs] SF.net SVN: scummvm: [26850] scummvm/trunk/engines/agos
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Wed May 16 10:27:16 CEST 2007
Revision: 26850
http://scummvm.svn.sourceforge.net/scummvm/?rev=26850&view=rev
Author: kirben
Date: 2007-05-16 01:27:15 -0700 (Wed, 16 May 2007)
Log Message:
-----------
Add caption to saved games for Elvira 1/2 and Waxworks.
Modified Paths:
--------------
scummvm/trunk/engines/agos/agos.h
scummvm/trunk/engines/agos/saveload.cpp
scummvm/trunk/engines/agos/script_e1.cpp
Modified: scummvm/trunk/engines/agos/agos.h
===================================================================
--- scummvm/trunk/engines/agos/agos.h 2007-05-16 06:36:43 UTC (rev 26849)
+++ scummvm/trunk/engines/agos/agos.h 2007-05-16 08:27:15 UTC (rev 26850)
@@ -1165,12 +1165,9 @@
Item *getNextItemPtrStrange();
- bool loadGame_e1(const char *filename, bool restartMode = false);
- bool saveGame_e1(const char *filename);
+ virtual bool loadGame(const char *filename, bool restartMode = false);
+ virtual bool saveGame(uint slot, const char *caption);
- bool loadGame(const char *filename, bool restartMode = false);
- bool saveGame(uint slot, const char *caption);
-
void openTextWindow();
void tidyIconArray(uint i);
@@ -1283,6 +1280,9 @@
};
const OpcodeEntryElvira1 *_opcodesElvira1;
+
+ virtual bool loadGame(const char *filename, bool restartMode = false);
+ virtual bool saveGame(uint slot, const char *caption);
};
class AGOSEngine_Elvira2 : public AGOSEngine_Elvira1 {
Modified: scummvm/trunk/engines/agos/saveload.cpp
===================================================================
--- scummvm/trunk/engines/agos/saveload.cpp 2007-05-16 06:36:43 UTC (rev 26849)
+++ scummvm/trunk/engines/agos/saveload.cpp 2007-05-16 08:27:15 UTC (rev 26850)
@@ -557,7 +557,8 @@
f->writeUint32BE(val - 1);
}
-bool AGOSEngine::loadGame_e1(const char *filename, bool restartMode) {
+bool AGOSEngine_Elvira1::loadGame(const char *filename, bool restartMode) {
+ char ident[100];
Common::SeekableReadStream *f = NULL;
uint num, item_index, i;
@@ -577,6 +578,10 @@
return false;
}
+ if (!restartMode) {
+ f->read(ident, 8);
+ }
+
num = f->readUint32BE();
if (f->readUint32BE() != 0xFFFFFFFF || num != _itemArrayInited - 1) {
@@ -649,7 +654,7 @@
return true;
}
-bool AGOSEngine::saveGame_e1(const char *filename) {
+bool AGOSEngine_Elvira1::saveGame(uint slot, const char *caption) {
Common::OutSaveFile *f;
uint item_index, num_item, i;
TimeEvent *te;
@@ -658,13 +663,15 @@
_lockWord |= 0x100;
- f = _saveFileMan->openForSaving(filename);
+ f = _saveFileMan->openForSaving(genSaveName(slot));
if (f == NULL) {
- warning("saveGame: Failed to save %s", filename);
+ warning("saveGame: Failed to save slot %d", slot);
_lockWord &= ~0x100;
return false;
}
+ f->write(caption, 8);
+
f->writeUint32BE(_itemArrayInited - 1);
f->writeUint32BE(0xFFFFFFFF);
f->writeUint32BE(0);
@@ -753,6 +760,8 @@
f->read(ident, 100);
} else if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) {
f->read(ident, 18);
+ } else if (!restartMode) {
+ f->read(ident, 8);
}
num = f->readUint32BE();
@@ -894,6 +903,8 @@
curTime = time(NULL);
} else if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) {
f->write(caption, 18);
+ } else {
+ f->write(caption, 8);
}
f->writeUint32BE(_itemArrayInited - 1);
Modified: scummvm/trunk/engines/agos/script_e1.cpp
===================================================================
--- scummvm/trunk/engines/agos/script_e1.cpp 2007-05-16 06:36:43 UTC (rev 26849)
+++ scummvm/trunk/engines/agos/script_e1.cpp 2007-05-16 08:27:15 UTC (rev 26850)
@@ -695,7 +695,9 @@
uint16 stringId = getNextStringID();
debug(0, "oe1_saveGame: stub (%s)", getStringPtrByID(stringId));
- saveGame_e1((const char *)getStringPtrByID(stringId));
+
+ // TODO: Add support for selecting slot
+ saveGame(1, (const char *)getStringPtrByID(stringId));
}
void AGOSEngine_Elvira1::oe1_loadGame() {
@@ -704,9 +706,9 @@
debug(0, "oe1_loadGame: stub (%s)", (const char *)getStringPtrByID(stringId));
if (!scumm_stricmp(getFileName(GAME_RESTFILE), (const char *)getStringPtrByID(stringId))) {
- loadGame_e1(getFileName(GAME_RESTFILE), true);
+ loadGame(getFileName(GAME_RESTFILE), true);
} else {
- loadGame_e1((const char *)getStringPtrByID(stringId));
+ loadGame((const char *)getStringPtrByID(stringId));
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list