aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/hdb/hdb.h2
-rw-r--r--engines/hdb/lua-script.cpp4
-rw-r--r--engines/hdb/lua-script.h2
-rw-r--r--engines/hdb/menu.cpp10
-rw-r--r--engines/hdb/saveload.cpp15
5 files changed, 19 insertions, 14 deletions
diff --git a/engines/hdb/hdb.h b/engines/hdb/hdb.h
index 77e7610dcc..3b42c262bd 100644
--- a/engines/hdb/hdb.h
+++ b/engines/hdb/hdb.h
@@ -180,6 +180,8 @@ public:
void saveGame(Common::OutSaveFile *out);
void loadGame(Common::InSaveFile *in);
+ Common::String genSaveFileName(uint slot, bool lua);
+
void saveWhenReady(int slot) {
_saveInfo.active = true;
_saveInfo.slot = slot;
diff --git a/engines/hdb/lua-script.cpp b/engines/hdb/lua-script.cpp
index b82b7af8c8..1b62081cc6 100644
--- a/engines/hdb/lua-script.cpp
+++ b/engines/hdb/lua-script.cpp
@@ -154,7 +154,7 @@ void LuaScript::purgeGlobals() {
_globals.clear();
}
-void LuaScript::save(Common::OutSaveFile *out, const char *targetName, int slot) {
+void LuaScript::save(Common::OutSaveFile *out, int slot) {
out->writeUint32LE(_globals.size());
// Save Globals
@@ -165,7 +165,7 @@ void LuaScript::save(Common::OutSaveFile *out, const char *targetName, int slot)
out->write(_globals[i]->string, 32);
}
- Common::String saveLuaName = Common::String::format("%s.l.%03d", targetName, slot);
+ Common::String saveLuaName = g_hdb->genSaveFileName(slot, true);
lua_printstack(_state);
lua_getglobal(_state, "SaveState");
diff --git a/engines/hdb/lua-script.h b/engines/hdb/lua-script.h
index 5124ac2638..4dab94efaf 100644
--- a/engines/hdb/lua-script.h
+++ b/engines/hdb/lua-script.h
@@ -59,7 +59,7 @@ public:
void saveGlobalString(const char *global, const char *string);
void loadGlobal(const char *global);
void purgeGlobals();
- void save(Common::OutSaveFile *out, const char *targetName, int slot);
+ void save(Common::OutSaveFile *out, int slot);
void loadSaveFile(Common::InSaveFile *in, const char *fName);
bool init();
diff --git a/engines/hdb/menu.cpp b/engines/hdb/menu.cpp
index 6ea70ea823..ade6156248 100644
--- a/engines/hdb/menu.cpp
+++ b/engines/hdb/menu.cpp
@@ -928,15 +928,11 @@ void Menu::drawTitle() {
}
void Menu::fillSavegameSlots() {
- int i;
- int max = kNumSaveSlots;
-
- Common::InSaveFile *in;
Common::String saveGameFile;
- for (i = 0; i < max; i++) {
- saveGameFile = Common::String::format("%s.%03d", g_hdb->getTargetName()->c_str(), i);
- in = g_system->getSavefileManager()->openForLoading(saveGameFile);
+ for (int i = 0; i < kNumSaveSlots; i++) {
+ saveGameFile = g_hdb->genSaveFileName(i, false);
+ Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(saveGameFile);
if (!in) {
memset(&_saveGames[i], 0, sizeof(Save));
diff --git a/engines/hdb/saveload.cpp b/engines/hdb/saveload.cpp
index acda89222e..5c59619aba 100644
--- a/engines/hdb/saveload.cpp
+++ b/engines/hdb/saveload.cpp
@@ -32,7 +32,7 @@ Common::Error HDBGame::saveGameState(int slot, const Common::String &desc) {
Common::OutSaveFile *out;
- Common::String saveFileName = Common::String::format("%s.%03d", _targetName.c_str(), slot);
+ Common::String saveFileName = genSaveFileName(slot, false);
if (!(out = _saveFileMan->openForSaving(saveFileName)))
error("Unable to open save file");
@@ -45,7 +45,7 @@ Common::Error HDBGame::saveGameState(int slot, const Common::String &desc) {
// Actual Save Data
saveGame(out);
- _lua->save(out, _targetName.c_str(), slot);
+ _lua->save(out, slot);
out->finalize();
if (out->err())
@@ -59,7 +59,7 @@ Common::Error HDBGame::saveGameState(int slot, const Common::String &desc) {
Common::Error HDBGame::loadGameState(int slot) {
Common::InSaveFile *in;
- Common::String saveFileName = Common::String::format("%s.%03d", _targetName.c_str(), slot);
+ Common::String saveFileName = genSaveFileName(slot, false);
if (!(in = _saveFileMan->openForLoading(saveFileName))) {
warning("missing savegame file %s", saveFileName.c_str());
if (g_hdb->_map->isLoaded())
@@ -76,7 +76,7 @@ Common::Error HDBGame::loadGameState(int slot) {
_lua->loadLua(_currentLuaName); // load the Lua code FIRST! (if no file, it's ok)
- saveFileName = Common::String::format("%s.l.%03d", _targetName.c_str(), slot);
+ saveFileName = genSaveFileName(slot, true);
_lua->loadSaveFile(in, saveFileName.c_str());
delete in;
@@ -340,5 +340,12 @@ void AIEntity::load(Common::InSaveFile *in) {
aiDraw = drawf;
}
+Common::String HDBGame::genSaveFileName(uint slot, bool lua) {
+ if (!lua)
+ return Common::String::format("%s.%03d", _targetName.c_str(), slot);
+
+ return Common::String::format("%s.l.%03d", _targetName.c_str(), slot);
+}
+
} // End of Namespace