aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/illusions/duckman/illusions_duckman.cpp3
-rw-r--r--engines/illusions/illusions.h1
-rw-r--r--engines/illusions/menusystem.cpp12
-rw-r--r--engines/illusions/menusystem.h1
4 files changed, 12 insertions, 5 deletions
diff --git a/engines/illusions/duckman/illusions_duckman.cpp b/engines/illusions/duckman/illusions_duckman.cpp
index 199bae7eb3..955aa8da84 100644
--- a/engines/illusions/duckman/illusions_duckman.cpp
+++ b/engines/illusions/duckman/illusions_duckman.cpp
@@ -1180,8 +1180,7 @@ bool IllusionsEngine_Duckman::loadSavegameFromScript(int16 slotNum, uint32 calli
bool IllusionsEngine_Duckman::saveSavegameFromScript(int16 slotNum, uint32 callingThreadId) {
const char *fileName = getSavegameFilename(_savegameSlotNum);
- bool success = savegame(fileName, "");//_savegameDescription.c_str()); //TODO
- return success;
+ return savegame(fileName, _savegameDescription.c_str());
}
void IllusionsEngine_Duckman::activateSavegame(uint32 callingThreadId) {
diff --git a/engines/illusions/illusions.h b/engines/illusions/illusions.h
index 40ed32702c..7154467873 100644
--- a/engines/illusions/illusions.h
+++ b/engines/illusions/illusions.h
@@ -139,6 +139,7 @@ public:
int _resumeFromSavegameRequested;
int _savegameSlotNum;
+ Common::String _savegameDescription;
uint32 _savegameSceneId;
uint32 _savegameThreadId;
diff --git a/engines/illusions/menusystem.cpp b/engines/illusions/menusystem.cpp
index c8bf36e6f4..f32bdc6a78 100644
--- a/engines/illusions/menusystem.cpp
+++ b/engines/illusions/menusystem.cpp
@@ -504,6 +504,10 @@ void BaseMenuSystem::setSavegameSlotNum(int slotNum) {
_vm->_savegameSlotNum = slotNum;
}
+void BaseMenuSystem::setSavegameDescription(Common::String desc) {
+ _vm->_savegameDescription = desc;
+}
+
void BaseMenuSystem::updateTimeOut(bool resetTimeOut) {
if (!_isTimeOutEnabled)
@@ -636,11 +640,13 @@ void MenuActionLoadGame::execute() {
dialog = new GUI::SaveLoadChooser(_("Save game:"), _("Save"), true);
slot = dialog->runModalWithPluginAndTarget(plugin, ConfMan.getActiveDomainName());
+ desc = dialog->getResultString().c_str();
- delete dialog;
+ delete dialog;
- if (slot >= 0) {
- _menuSystem->setSavegameSlotNum(slot);
+ if (slot >= 0) {
+ _menuSystem->setSavegameSlotNum(slot);
+ _menuSystem->setSavegameDescription(desc);
_menuSystem->selectMenuChoiceIndex(_choiceIndex);
}
}
diff --git a/engines/illusions/menusystem.h b/engines/illusions/menusystem.h
index 26324c6786..6262cefc32 100644
--- a/engines/illusions/menusystem.h
+++ b/engines/illusions/menusystem.h
@@ -103,6 +103,7 @@ public:
void setMenuCallerThreadId(uint32 menuCallerThreadId);
void setMenuChoiceOffsets(MenuChoiceOffsets menuChoiceOffsets, int16 *menuChoiceOffset);
void setSavegameSlotNum(int slotNum);
+ void setSavegameDescription(Common::String desc);
virtual bool initMenuCursor() = 0;
virtual int getGameState() = 0;
virtual void setGameState(int gameState) = 0;