[Scummvm-git-logs] scummvm master -> b93419019db6f434b0368f09a6da82b340f2e8ce

bluegr noreply at scummvm.org
Wed Apr 8 12:16:34 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
b93419019d ENGINES: Change SaveStateDescriptor description to use Common::String


Commit: b93419019db6f434b0368f09a6da82b340f2e8ce
    https://github.com/scummvm/scummvm/commit/b93419019db6f434b0368f09a6da82b340f2e8ce
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2026-04-08T15:16:28+03:00

Commit Message:
ENGINES: Change SaveStateDescriptor description to use Common::String

Changed paths:
    backends/cloud/savessyncrequest.cpp
    base/commandLine.cpp
    engines/ags/engine/gui/gui_dialog.cpp
    engines/bladerunner/ui/kia_section_load.cpp
    engines/bladerunner/ui/kia_section_save.cpp
    engines/cine/metaengine.cpp
    engines/drascula/metaengine.cpp
    engines/engine.cpp
    engines/groovie/script.cpp
    engines/hpl1/hpl1.cpp
    engines/metaengine.cpp
    engines/mohawk/myst_state.cpp
    engines/myst3/metaengine.cpp
    engines/nancy/state/loadsave.cpp
    engines/pink/gui.cpp
    engines/savestate.cpp
    engines/savestate.h
    engines/sky/metaengine.cpp
    engines/startrek/actors.cpp
    engines/startrek/metaengine.cpp
    engines/startrek/startrek.h
    engines/twine/menu/menuoptions.cpp
    engines/ultima/metaengine.cpp
    gui/options.cpp
    gui/saveload-dialog.cpp
    gui/saveload-dialog.h
    gui/saveload.cpp
    gui/saveload.h


diff --git a/backends/cloud/savessyncrequest.cpp b/backends/cloud/savessyncrequest.cpp
index 510165016a1..bb99781aaa5 100644
--- a/backends/cloud/savessyncrequest.cpp
+++ b/backends/cloud/savessyncrequest.cpp
@@ -31,7 +31,6 @@
 #include "common/formats/json.h"
 #include "common/savefile.h"
 #include "common/system.h"
-#include "gui/saveload-dialog.h"
 
 namespace Cloud {
 
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 536a1d7e09b..c6255f22648 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -1566,7 +1566,7 @@ static Common::Error listSaves(const Common::String &singleTarget) {
 					   "  ---- ------------------------------------------------------\n");
 
 			for (const auto &x : saveList) {
-				printf("  %-4d %s\n", x.getSaveSlot(), x.getDescription().encode().c_str());
+				printf("  %-4d %s\n", x.getSaveSlot(), x.getDescription().c_str());
 				// TODO: Could also iterate over the full hashmap, printing all key-value pairs
 			}
 			atLeastOneFound = true;
diff --git a/engines/ags/engine/gui/gui_dialog.cpp b/engines/ags/engine/gui/gui_dialog.cpp
index cafc3db6c32..13cd0416127 100644
--- a/engines/ags/engine/gui/gui_dialog.cpp
+++ b/engines/ags/engine/gui/gui_dialog.cpp
@@ -287,7 +287,7 @@ void preparesavegamelist(int ctrllist) {
 	// fill in the list box and global savegameindex[] array for backward compatibilty
 	for (_G(numsaves) = 0; _G(numsaves) < (int)saveList.size(); ++_G(numsaves)) {
 		CSCISendControlMessage(ctrllist, CLB_ADDITEM, 0,
-		                       saveList[_G(numsaves)].getDescription().encode().c_str());
+		                       saveList[_G(numsaves)].getDescription().c_str());
 		_G(filenumbers)[_G(numsaves)] = saveList[_G(numsaves)].getSaveSlot();
 		_G(filedates)[_G(numsaves)] = 0;
 		//(long int)saveList[_G(numsaves)].FileTime;
diff --git a/engines/bladerunner/ui/kia_section_load.cpp b/engines/bladerunner/ui/kia_section_load.cpp
index a42fe075500..84c80c3c160 100644
--- a/engines/bladerunner/ui/kia_section_load.cpp
+++ b/engines/bladerunner/ui/kia_section_load.cpp
@@ -73,7 +73,7 @@ void KIASectionLoad::open() {
 	if (!_saveList.empty()) {
 		_scrollBox->addLine(_vm->_textOptions->getText(36), -1, 4); // Load game:
 		for (uint i = 0; i < _saveList.size(); ++i) {
-			_scrollBox->addLine(_saveList[i].getDescription().encode(Common::kDos850), i, 0);
+			_scrollBox->addLine(_saveList[i].getDescription().decode().encode(Common::kDos850), i, 0);
 		}
 		_scrollBox->addLine("", -1, 4);
 	}
diff --git a/engines/bladerunner/ui/kia_section_save.cpp b/engines/bladerunner/ui/kia_section_save.cpp
index 3962a495618..c23317dd0e6 100644
--- a/engines/bladerunner/ui/kia_section_save.cpp
+++ b/engines/bladerunner/ui/kia_section_save.cpp
@@ -115,7 +115,7 @@ void KIASectionSave::open() {
 		}
 
 		for (uint i = 0; i < _saveList.size(); ++i) {
-			_scrollBox->addLine(_saveList[i].getDescription().encode(Common::kDos850), i, 0);
+			_scrollBox->addLine(_saveList[i].getDescription().decode().encode(Common::kDos850), i, 0);
 		}
 
 		if (ableToSaveGame) {
@@ -313,7 +313,7 @@ void KIASectionSave::scrollBoxCallback(void *callbackData, void *source, int lin
 		if (self->_selectedLineId == self->_newSaveLineId) {
 			self->_inputBox->setText("");
 		} else {
-			self->_inputBox->setText(self->_saveList[self->_selectedLineId].getDescription().encode(Common::kDos850));
+			self->_inputBox->setText(self->_saveList[self->_selectedLineId].getDescription().decode().encode(Common::kDos850));
 		}
 
 		self->_vm->_audioPlayer->playAud(self->_vm->_gameInfo->getSfxTrack(kSfxSPNBEEP3), 40, 0, 0, 50, 0);
diff --git a/engines/cine/metaengine.cpp b/engines/cine/metaengine.cpp
index 96737ee1d15..2f5d02887bc 100644
--- a/engines/cine/metaengine.cpp
+++ b/engines/cine/metaengine.cpp
@@ -221,7 +221,7 @@ SaveStateDescriptor CineMetaEngine::querySaveMetaInfos(const char *target, int s
 
 	if (f) {
 		// Create the return descriptor
-		SaveStateDescriptor desc(this, slot, Common::U32String());
+		SaveStateDescriptor desc(this, slot);
 
 		ExtendedSavegameHeader header;
 		if (readSavegameHeader(f.get(), &header, false)) {
diff --git a/engines/drascula/metaengine.cpp b/engines/drascula/metaengine.cpp
index df4596619c9..219d434bd67 100644
--- a/engines/drascula/metaengine.cpp
+++ b/engines/drascula/metaengine.cpp
@@ -163,7 +163,7 @@ SaveStateDescriptor DrasculaMetaEngine::querySaveMetaInfos(const char *target, i
 
 	Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(fileName);
 
-	SaveStateDescriptor desc(this, slot, Common::U32String());
+	SaveStateDescriptor desc(this, slot);
 	if (in) {
 		desc = Drascula::loadMetaData(in, slot, false);
 		if (desc.getSaveSlot() != slot) {
diff --git a/engines/engine.cpp b/engines/engine.cpp
index 0185f80e33c..9931471bdd9 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -641,7 +641,7 @@ bool Engine::warnBeforeOverwritingAutosave() {
 	altButtons.push_back(_("Delete"));
 	altButtons.push_back(_("Skip autosave"));
 	const Common::U32String message = Common::U32String::format(
-				_("WARNING: The autosave slot contains a saved game named %S, and an autosave is pending.\n"
+				_("WARNING: The autosave slot contains a saved game named %s, and an autosave is pending.\n"
 				  "Please move this saved game to a new slot, or delete it if it's no longer needed.\n"
 				  "Alternatively, you can skip the autosave (will prompt again in 5 minutes)."), desc.getDescription().c_str());
 	GUI::MessageDialog warn(message, _("Move"), altButtons);
diff --git a/engines/groovie/script.cpp b/engines/groovie/script.cpp
index bb997d8006b..602879cf853 100644
--- a/engines/groovie/script.cpp
+++ b/engines/groovie/script.cpp
@@ -1935,7 +1935,7 @@ void Script::o_checkvalidsaves() {
 	while (it != list.end()) {
 		int8 slot = it->getSaveSlot();
 		if (SaveLoad::isSlotValid(slot)) {
-			debugC(2, kDebugScript, "Groovie::Script:  Found valid savegame: %s", it->getDescription().encode().c_str());
+			debugC(2, kDebugScript, "Groovie::Script:  Found valid savegame: %s", it->getDescription().c_str());
 
 			// Mark this slot as used
 			if (slot < maxSaves) {
diff --git a/engines/hpl1/hpl1.cpp b/engines/hpl1/hpl1.cpp
index 8925e4aa46f..a4886d9efb4 100644
--- a/engines/hpl1/hpl1.cpp
+++ b/engines/hpl1/hpl1.cpp
@@ -137,7 +137,7 @@ Common::StringArray Hpl1Engine::listInternalSaves(const Common::String &pattern)
 Common::Error Hpl1Engine::loadGameState(int slot) {
 	SaveStateDescriptor a = getMetaEngine()->querySaveMetaInfos(_targetName.c_str(), slot);
 	_gameInit->mpMainMenu->SetActive(false);
-	_gameInit->mpSaveHandler->LoadGameFromFile(a.getDescription());
+	_gameInit->mpSaveHandler->LoadGameFromFile(cString::To16Char(a.getDescription()));
 	return Common::kNoError;
 }
 
diff --git a/engines/metaengine.cpp b/engines/metaengine.cpp
index 9e6f8f4c2dc..5a2bfb0f09b 100644
--- a/engines/metaengine.cpp
+++ b/engines/metaengine.cpp
@@ -483,7 +483,7 @@ SaveStateDescriptor MetaEngine::querySaveMetaInfos(const char *target, int slot)
 		}
 
 		// Create the return descriptor
-		SaveStateDescriptor desc(this, slot, Common::U32String());
+		SaveStateDescriptor desc(this, slot);
 		parseSavegameHeader(&header, &desc);
 		desc.setThumbnail(header.thumbnail);
 		desc.setAutosave(header.isAutosave);
diff --git a/engines/mohawk/myst_state.cpp b/engines/mohawk/myst_state.cpp
index c7a07d1ae31..7ec08d528e6 100644
--- a/engines/mohawk/myst_state.cpp
+++ b/engines/mohawk/myst_state.cpp
@@ -268,7 +268,7 @@ bool MystGameState::saveMetadata(int slot, const Graphics::Surface *thumbnail) {
 }
 
 SaveStateDescriptor MystGameState::querySaveMetaInfos(const MetaEngine *metaEngine, int slot) {
-	SaveStateDescriptor desc(metaEngine, slot, Common::U32String());
+	SaveStateDescriptor desc(metaEngine, slot);
 
 	// Open the save file
 	Common::String filename = buildSaveFilename(slot);
diff --git a/engines/myst3/metaengine.cpp b/engines/myst3/metaengine.cpp
index 974d924c191..b4686113ab3 100644
--- a/engines/myst3/metaengine.cpp
+++ b/engines/myst3/metaengine.cpp
@@ -106,7 +106,7 @@ public:
 		// Open save
 		Common::InSaveFile *saveFile = g_system->getSavefileManager()->openForLoading(saveInfos.getDescription());
 		if (!saveFile) {
-			warning("Unable to open file %s for reading, slot %d", saveInfos.getDescription().encode().c_str(), slot);
+			warning("Unable to open file %s for reading, slot %d", saveInfos.getDescription().c_str(), slot);
 			return SaveStateDescriptor();
 		}
 
diff --git a/engines/nancy/state/loadsave.cpp b/engines/nancy/state/loadsave.cpp
index 67abaa50bc9..59bd2269f5a 100644
--- a/engines/nancy/state/loadsave.cpp
+++ b/engines/nancy/state/loadsave.cpp
@@ -688,7 +688,7 @@ bool LoadSaveMenu_V1::save() {
 					}
 
 					SaveStateDescriptor desc = g_nancy->getMetaEngine()->querySaveMetaInfos(ConfMan.getActiveDomainName().c_str(), i);
-					if (desc.getDescription().substr(0, _loadSaveData->_defaultSaveNamePrefix.size()).equals(Common::U32String(_loadSaveData->_defaultSaveNamePrefix))) {
+					if (desc.getDescription().substr(0, _loadSaveData->_defaultSaveNamePrefix.size()).equals(_loadSaveData->_defaultSaveNamePrefix)) {
 						if (desc.getDescription().substr(_loadSaveData->_defaultSaveNamePrefix.size(), 1).asUint64() == suffixNum) {
 							++suffixNum;
 						} else {
diff --git a/engines/pink/gui.cpp b/engines/pink/gui.cpp
index ba6ca85246b..51ba37730a8 100644
--- a/engines/pink/gui.cpp
+++ b/engines/pink/gui.cpp
@@ -196,7 +196,7 @@ void PinkEngine::initMenu() {
 			_menu->removeMenuItem(subMenu, kRecentSaveId);
 			int maxSaves = saves.size() > kMaxSaves ? kMaxSaves : saves.size();
 			for (int i = 0; i < maxSaves; ++i) {
-				_menu->insertMenuItem(subMenu, Common::U32String::format("%i. %S", i + 1, saves[i].getDescription().c_str()),
+				_menu->insertMenuItem(subMenu, Common::U32String::format("%i. %s", i + 1, saves[i].getDescription().c_str()),
 										kRecentSaveId + i, saves[i].getSaveSlot() + kRecentSavesOffset);
 			}
 		}
diff --git a/engines/savestate.cpp b/engines/savestate.cpp
index a9231af1a19..0e2c00149dc 100644
--- a/engines/savestate.cpp
+++ b/engines/savestate.cpp
@@ -34,13 +34,18 @@ SaveStateDescriptor::SaveStateDescriptor()
 	_thumbnail(), _saveType(kSaveTypeUndetermined) {
 }
 
+SaveStateDescriptor::SaveStateDescriptor(const MetaEngine *metaEngine, int slot)
+	: _slot(slot), _description(), _isLocked(false), _playTimeMSecs(0), _saveType(kSaveTypeUndetermined) {
+	initSaveSlot(metaEngine);
+}
+
 SaveStateDescriptor::SaveStateDescriptor(const MetaEngine *metaEngine, int slot, const Common::U32String &d)
-	: _slot(slot), _description(d), _isLocked(false), _playTimeMSecs(0), _saveType(kSaveTypeUndetermined) {
+	: _slot(slot), _description(d.encode()), _isLocked(false), _playTimeMSecs(0), _saveType(kSaveTypeUndetermined) {
 	initSaveSlot(metaEngine);
 }
 
 SaveStateDescriptor::SaveStateDescriptor(const MetaEngine *metaEngine, int slot, const Common::String &d)
-	: _slot(slot), _description(Common::U32String(d)), _isLocked(false), _playTimeMSecs(0), _saveType(kSaveTypeUndetermined) {
+	: _slot(slot), _description(d), _isLocked(false), _playTimeMSecs(0), _saveType(kSaveTypeUndetermined) {
 	initSaveSlot(metaEngine);
 }
 
@@ -96,15 +101,16 @@ bool SaveStateDescriptor::isAutosave() const {
 bool SaveStateDescriptor::hasAutosaveName() const
 {
 	const Common::U32String &autosave = _("Autosave");
+	const Common::U32String description32 = _description.decode();
 
 	// if the save file name is long enough, just check if it starts with "Autosave"
-	if (_description.size() >= autosave.size())
-		return _description.substr(0, autosave.size()) == autosave;
+	if (description32.size() >= autosave.size())
+		return description32.substr(0, autosave.size()) == autosave;
 
 	// if the save name has been trimmed, as long as it isn't too short, use fallback logic
-	if (_description.size() < 14)
+	if (description32.size() < 14)
 		return false;
-	return autosave.substr(0, _description.size()) == _description;
+	return autosave.substr(0, description32.size()) == description32;
 }
 
 bool SaveStateDescriptor::isValid() const
diff --git a/engines/savestate.h b/engines/savestate.h
index 93bda7868fd..edfe7da66d9 100644
--- a/engines/savestate.h
+++ b/engines/savestate.h
@@ -53,7 +53,7 @@ struct Surface;
  *
  * Saves are writable and deletable by default.
  */
-class SaveStateDescriptor {
+class SaveStateDescriptor final {
 private:
 	enum SaveType {
 		kSaveTypeUndetermined,
@@ -64,8 +64,9 @@ private:
 	void initSaveSlot(const MetaEngine *metaEngine);
 public:
 	SaveStateDescriptor();
-	SaveStateDescriptor(const MetaEngine *metaEngine, int slot, const Common::U32String &d);
+	SaveStateDescriptor(const MetaEngine *metaEngine, int slot);
 	SaveStateDescriptor(const MetaEngine *metaEngine, int slot, const Common::String &d);
+	SaveStateDescriptor(const MetaEngine *metaEngine, int slot, const Common::U32String &d);
 
 	/**
 	 * @param slot The saveslot id, as it would be passed to the "-x" command line switch.
@@ -80,13 +81,13 @@ public:
 	/**
 	 * @param desc A human readable description of the save state.
 	 */
-	void setDescription(const Common::String &desc) { _description = desc.decode(); }
-	void setDescription(const Common::U32String &desc) { _description = desc; }
+	void setDescription(const Common::String &desc) { _description = desc; }
+	void setDescription(const Common::U32String &desc) { _description = desc.encode(); }
 
 	/**
 	 * @return A human readable description of the save state.
 	 */
-	const Common::U32String &getDescription() const { return _description; }
+	const Common::String &getDescription() const { return _description; }
 
 	/** Optional entries only included when querying via MetaEngine::querySaveMetaInfo */
 
@@ -234,7 +235,7 @@ private:
 	/**
 	 * A human readable description of the save state.
 	 */
-	Common::U32String _description;
+	Common::String _description;
 
 	/**
 	 * Whether the save state can be deleted.
diff --git a/engines/sky/metaengine.cpp b/engines/sky/metaengine.cpp
index 863322309ba..a392a294903 100644
--- a/engines/sky/metaengine.cpp
+++ b/engines/sky/metaengine.cpp
@@ -214,8 +214,10 @@ SaveStateList SkyMetaEngine::listSaves(const char *target) const {
 		int slotNum = atoi(ext.c_str());
 		Common::InSaveFile *in = saveFileMan->openForLoading(*file);
 		if (in) {
-			saveList.push_back(SaveStateDescriptor(this, slotNum,
-				(slotNum == 0) ? _("Autosave") : Common::U32String(savenames[slotNum - 1])));
+			if (slotNum == 0)
+				saveList.push_back(SaveStateDescriptor(this, slotNum, _("Autosave")));
+			else
+				saveList.push_back(SaveStateDescriptor(this, slotNum, savenames[slotNum - 1]));
 			delete in;
 		}
 	}
diff --git a/engines/startrek/actors.cpp b/engines/startrek/actors.cpp
index dda88bd7cf0..541bc58aa3d 100644
--- a/engines/startrek/actors.cpp
+++ b/engines/startrek/actors.cpp
@@ -21,6 +21,7 @@
 
 #include "common/stream.h"
 #include "common/memstream.h"
+#include "graphics/surface.h"
 
 #include "startrek/iwfile.h"
 #include "startrek/resource.h"
diff --git a/engines/startrek/metaengine.cpp b/engines/startrek/metaengine.cpp
index 02117cdfbef..cbdfc8a768c 100644
--- a/engines/startrek/metaengine.cpp
+++ b/engines/startrek/metaengine.cpp
@@ -174,7 +174,7 @@ SaveStateDescriptor StarTrekMetaEngine::querySaveMetaInfos(const char *target, i
 		return descriptor;
 
 	} else {
-		SaveStateDescriptor emptySave(this, slotNr, Common::U32String());
+		SaveStateDescriptor emptySave(this, slotNr);
 		return emptySave;
 	}
 }
diff --git a/engines/startrek/startrek.h b/engines/startrek/startrek.h
index 0344873e2d1..40024d5a670 100644
--- a/engines/startrek/startrek.h
+++ b/engines/startrek/startrek.h
@@ -34,8 +34,6 @@
 #include "common/system.h"
 #include "common/util.h"
 
-#include "gui/saveload-dialog.h"
-
 #include "engines/engine.h"
 
 #include "math/cosinetables.h"
diff --git a/engines/twine/menu/menuoptions.cpp b/engines/twine/menu/menuoptions.cpp
index 7dc06af736e..4a20baa3460 100644
--- a/engines/twine/menu/menuoptions.cpp
+++ b/engines/twine/menu/menuoptions.cpp
@@ -369,7 +369,7 @@ int MenuOptions::chooseSave(TextId textIdx, bool showEmptySlots) {
 			if (savegame.getSaveSlot() == i - 1) {
 				// manually creating a savegame should not overwrite the autosave slot
 				if (textIdx != TextId::kCreateSaveGame || i > 1) {
-					saveFiles.addButton(savegame.getDescription().encode().c_str(), i);
+					saveFiles.addButton(savegame.getDescription().c_str(), i);
 				}
 				++savesIndex;
 			} else if (showEmptySlots) {
diff --git a/engines/ultima/metaengine.cpp b/engines/ultima/metaengine.cpp
index 6a8d2eb92d6..7db2f0c15c2 100644
--- a/engines/ultima/metaengine.cpp
+++ b/engines/ultima/metaengine.cpp
@@ -244,7 +244,7 @@ SaveStateDescriptor UltimaMetaEngine::querySaveMetaInfos(const char *target, int
 		Common::String gameId = getGameId(target);
 		if (gameId == "ultima8") {
 			Common::String filename = getSavegameFile(slot, target);
-			desc = SaveStateDescriptor(this, slot, Common::U32String());
+			desc = SaveStateDescriptor(this, slot);
 			if (!Ultima::Ultima8::MetaEngine::querySaveMetaInfos(filename, desc))
 				return SaveStateDescriptor();
 		}
diff --git a/gui/options.cpp b/gui/options.cpp
index 4ca63d09094..aa21f72aefe 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -2959,7 +2959,7 @@ bool GlobalOptionsDialog::updateAutosavePeriod(int newValue) {
 				  "will be prompted when autosave is about to overwrite a save).\n"
 				  "List of games:\n");
 		for (ExistingSaveList::const_iterator it = saveList.begin(), end = saveList.end(); it != end; ++it)
-			message += Common::U32String(it->target) + Common::U32String(": ") + it->desc.getDescription() + "\n";
+			message += Common::U32String(it->target + ": " + it->desc.getDescription() + "\n");
 		message.deleteLastChar();
 		if (hasMore)
 			message += _("\nAnd more...");
@@ -2984,7 +2984,7 @@ bool GlobalOptionsDialog::updateAutosavePeriod(int newValue) {
 			if (!failedSaves.empty()) {
 				Common::U32String failMessage = _("ERROR: Failed to move the following saved games:\n");
 				for (ExistingSaveList::const_iterator it = failedSaves.begin(), end = failedSaves.end(); it != end; ++it)
-					failMessage += Common::U32String(it->target) + Common::U32String(": ") + it->desc.getDescription() + "\n";
+					failMessage += Common::U32String(it->target + ": " + it->desc.getDescription() + "\n");
 				failMessage.deleteLastChar();
 				GUI::MessageDialog(failMessage).runModal();
 			}
diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp
index 07060ee82eb..bed72781737 100644
--- a/gui/saveload-dialog.cpp
+++ b/gui/saveload-dialog.cpp
@@ -356,7 +356,7 @@ void SaveLoadChooserDialog::listSaves() {
 #endif
 }
 
-void SaveLoadChooserDialog::activate(int slot, const Common::U32String &description) {
+void SaveLoadChooserDialog::activate(int slot, const Common::String &description) {
 	if (!_saveList.empty() && slot < int(_saveList.size())) {
 		const SaveStateDescriptor &desc = _saveList[slot];
 		if (_saveMode)
@@ -487,9 +487,9 @@ int SaveLoadChooserSimple::runIntern() {
 	return Dialog::runModal();
 }
 
-const Common::U32String SaveLoadChooserSimple::getResultString() const {
+const Common::String SaveLoadChooserSimple::getResultString() const {
 	int selItem = _list->getSelected();
-	return (selItem >= 0) ? _list->getSelectedString() : _resultString;
+	return (selItem >= 0) ? _list->getSelectedString().encode() : _resultString;
 }
 
 void SaveLoadChooserSimple::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
@@ -517,7 +517,7 @@ void SaveLoadChooserSimple::handleCommand(CommandSender *sender, uint32 cmd, uin
 				Common::U32String description;
 				if (!_saveList.empty())
 					description = _list->getSelectedString();
-				activate(selItem, description);
+				activate(selItem, description.encode());
 			}
 		}
 		break;
@@ -527,7 +527,7 @@ void SaveLoadChooserSimple::handleCommand(CommandSender *sender, uint32 cmd, uin
 			Common::U32String description;
 			if (!_saveList.empty())
 				description = _list->getSelectedString();
-			activate(selItem, description);
+			activate(selItem, description.encode());
 		}
 		break;
 	case kListSelectionChangedCmd:
@@ -768,7 +768,7 @@ void SaveLoadChooserSimple::updateSaveList(bool external) {
 		}
 
 		// Show "Untitled saved game" for empty/whitespace saved game descriptions
-		Common::U32String description = x->getDescription();
+		Common::U32String description = x->getDescription().decode();
 		Common::U32String trimmedDescription = description;
 		trimmedDescription.trim();
 		if (trimmedDescription.empty()) {
@@ -856,14 +856,14 @@ SaveLoadChooserGrid::~SaveLoadChooserGrid() {
 	delete _pageDisplay;
 }
 
-const Common::U32String SaveLoadChooserGrid::getResultString() const {
+const Common::String SaveLoadChooserGrid::getResultString() const {
 	return _resultString;
 }
 
 void SaveLoadChooserGrid::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
 	const int slot = cmd + _curPage * _entriesPerPage - 1;
 	if (cmd <= _entriesPerPage && slot < (int)_saveList.size()) {
-		activate(slot, Common::U32String());
+		activate(slot, Common::String());
 	}
 
 	switch (cmd) {
@@ -1180,10 +1180,10 @@ void SaveLoadChooserGrid::updateSaves() {
 		} else {
 			curButton.button->setGfx(kThumbnailWidth, kThumbnailHeight2, 0, 0, 0);
 		}
-		curButton.description->setLabel(Common::U32String(Common::String::format("%d. ", saveSlot)) + _saveList[i].getDescription());
+		curButton.description->setLabel(Common::U32String::format("%d. %s", saveSlot, _saveList[i].getDescription().c_str()));
 
 		Common::U32String tooltip(_("Name: "));
-		tooltip += _saveList[i].getDescription();
+		tooltip += _saveList[i].getDescription().decode();
 
 		if (_saveDateSupport) {
 			const Common::U32String &saveDate = desc.getSaveDate();
@@ -1248,12 +1248,12 @@ SavenameDialog::SavenameDialog()
 	_targetSlot = 0;
 }
 
-void SavenameDialog::setDescription(const Common::U32String &desc) {
-	_description->setEditString(desc);
+void SavenameDialog::setDescription(const Common::String &desc) {
+	_description->setEditString(desc.decode());
 }
 
-const Common::U32String &SavenameDialog::getDescription() {
-	return _description->getEditString();
+const Common::String SavenameDialog::getDescription() {
+	return _description->getEditString().encode();
 }
 
 void SavenameDialog::open() {
diff --git a/gui/saveload-dialog.h b/gui/saveload-dialog.h
index cf16bdeef4f..db70a4358ba 100644
--- a/gui/saveload-dialog.h
+++ b/gui/saveload-dialog.h
@@ -94,7 +94,7 @@ public:
 #endif // !DISABLE_SAVELOADCHOOSER_GRID
 
 	int run(const Common::String &target, const MetaEngine *metaEngine);
-	virtual const Common::U32String getResultString() const = 0;
+	virtual const Common::String getResultString() const = 0;
 
 protected:
 	virtual int runIntern() = 0;
@@ -112,7 +112,7 @@ protected:
 	*/
 	virtual void listSaves();
 
-	void activate(int slot, const Common::U32String &description);
+	void activate(int slot, const Common::String &description);
 
 	const bool					_saveMode;
 	const MetaEngine		    *_metaEngine;
@@ -124,7 +124,7 @@ protected:
 	Common::String				_target;
 	bool _dialogWasShown;
 	SaveStateList				_saveList;
-	Common::U32String			_resultString;
+	Common::String			_resultString;
 
 #ifndef DISABLE_SAVELOADCHOOSER_GRID
 	ButtonWidget *_listButton;
@@ -151,7 +151,7 @@ public:
 
 	void handleCommand(CommandSender *sender, uint32 cmd, uint32 data) override;
 
-	const Common::U32String getResultString() const override;
+	const Common::String getResultString() const override;
 
 	void reflowLayout() override;
 
@@ -188,8 +188,8 @@ class SavenameDialog : public Dialog {
 public:
 	SavenameDialog();
 
-	void setDescription(const Common::U32String &desc);
-	const Common::U32String &getDescription();
+	void setDescription(const Common::String &desc);
+	const Common::String getDescription();
 
 	void setTargetSlot(int slot) { _targetSlot = slot; }
 
@@ -207,7 +207,7 @@ public:
 	SaveLoadChooserGrid(const Common::U32String &title, bool saveMode);
 	~SaveLoadChooserGrid() override;
 
-	const Common::U32String getResultString() const override;
+	const Common::String getResultString() const override;
 
 	void open() override;
 
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index dee005601e7..5b231898361 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -120,7 +120,7 @@ int SaveLoadChooser::runModalWithMetaEngineAndTarget(const MetaEngine *engine, c
 	return ret;
 }
 
-const Common::U32String SaveLoadChooser::getResultString() const {
+const Common::String SaveLoadChooser::getResultString() const {
 	assert(_impl);
 	return _impl->getResultString();
 }
diff --git a/gui/saveload.h b/gui/saveload.h
index b76a6b743e7..5bd963615ab 100644
--- a/gui/saveload.h
+++ b/gui/saveload.h
@@ -52,7 +52,7 @@ public:
 	int runModalWithCurrentTarget();
 	int runModalWithMetaEngineAndTarget(const MetaEngine *engine, const Common::String &target);
 
-	const Common::U32String getResultString() const;
+	const Common::String getResultString() const;
 
 	/**
 	 * Creates a default save description for the specified slot. Depending




More information about the Scummvm-git-logs mailing list