[Scummvm-cvs-logs] SF.net SVN: scummvm:[43026] scummvm/branches/branch-1-0-0/engines/agi
buddha_ at users.sourceforge.net
buddha_ at users.sourceforge.net
Mon Aug 3 19:27:55 CEST 2009
Revision: 43026
http://scummvm.svn.sourceforge.net/scummvm/?rev=43026&view=rev
Author: buddha_
Date: 2009-08-03 17:27:55 +0000 (Mon, 03 Aug 2009)
Log Message:
-----------
(Backport of r43025) Fix for bug #2828333 (AGI: KQ1: Greensleeves always plays):
- Made all savegame loading in AGI do the same pre-load and post-load stuff.
- Moved load/saveGameState from AgiBase to AgiEngine
- Added rudimentary error handling to load/saveGameState
- Incidentally also fixes the hanging note from bug #2798797.
Modified Paths:
--------------
scummvm/branches/branch-1-0-0/engines/agi/agi.h
scummvm/branches/branch-1-0-0/engines/agi/detection.cpp
scummvm/branches/branch-1-0-0/engines/agi/saveload.cpp
Modified: scummvm/branches/branch-1-0-0/engines/agi/agi.h
===================================================================
--- scummvm/branches/branch-1-0-0/engines/agi/agi.h 2009-08-03 17:18:18 UTC (rev 43025)
+++ scummvm/branches/branch-1-0-0/engines/agi/agi.h 2009-08-03 17:27:55 UTC (rev 43026)
@@ -760,8 +760,6 @@
void initVersion(void);
void setVersion(uint16 version);
- Common::Error loadGameState(int slot);
- Common::Error saveGameState(int slot, const char *desc);
bool canLoadGameStateCurrently();
bool canSaveGameStateCurrently();
};
@@ -785,6 +783,8 @@
return _gameId;
}
+ Common::Error loadGameState(int slot);
+ Common::Error saveGameState(int slot, const char *desc);
private:
Modified: scummvm/branches/branch-1-0-0/engines/agi/detection.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/agi/detection.cpp 2009-08-03 17:18:18 UTC (rev 43025)
+++ scummvm/branches/branch-1-0-0/engines/agi/detection.cpp 2009-08-03 17:27:55 UTC (rev 43026)
@@ -1290,20 +1290,6 @@
namespace Agi {
-Common::Error AgiBase::loadGameState(int slot) {
- static char saveLoadSlot[12];
- sprintf(saveLoadSlot, "%s.%.3d", _targetName.c_str(), slot);
- loadGame(saveLoadSlot);
- return Common::kNoError; // TODO: return success/failure
-}
-
-Common::Error AgiBase::saveGameState(int slot, const char *desc) {
- static char saveLoadSlot[12];
- sprintf(saveLoadSlot, "%s.%.3d", _targetName.c_str(), slot);
- saveGame(saveLoadSlot, desc);
- return Common::kNoError; // TODO: return success/failure
-}
-
bool AgiBase::canLoadGameStateCurrently() {
return (!(getGameType() == GType_PreAGI) && getflag(fMenusWork) && !_noSaveLoadAllowed);
}
Modified: scummvm/branches/branch-1-0-0/engines/agi/saveload.cpp
===================================================================
--- scummvm/branches/branch-1-0-0/engines/agi/saveload.cpp 2009-08-03 17:18:18 UTC (rev 43025)
+++ scummvm/branches/branch-1-0-0/engines/agi/saveload.cpp 2009-08-03 17:27:55 UTC (rev 43026)
@@ -972,6 +972,9 @@
snprintf (saveNameBuffer, 256, "%s.%03d", _targetName.c_str(), ConfMan.getInt("save_slot"));
+ _sprites->eraseBoth();
+ _sound->stopSound();
+
if (loadGame(saveNameBuffer, false) == errOK) { // Do not check game id
_game.exitAllLogics = 1;
_menu->enableAll();
@@ -979,4 +982,29 @@
}
}
+Common::Error AgiEngine::loadGameState(int slot) {
+ static char saveLoadSlot[12];
+ sprintf(saveLoadSlot, "%s.%.3d", _targetName.c_str(), slot);
+
+ _sprites->eraseBoth();
+ _sound->stopSound();
+
+ if (loadGame(saveLoadSlot) == errOK) {
+ _game.exitAllLogics = 1;
+ _menu->enableAll();
+ return Common::kNoError;
+ } else {
+ return Common::kUnknownError;
+ }
+}
+
+Common::Error AgiEngine::saveGameState(int slot, const char *desc) {
+ static char saveLoadSlot[12];
+ sprintf(saveLoadSlot, "%s.%.3d", _targetName.c_str(), slot);
+ if (saveGame(saveLoadSlot, desc) == errOK)
+ return Common::kNoError;
+ else
+ return Common::kUnknownError;
+}
+
} // End of namespace Agi
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