[Scummvm-git-logs] scummvm master -> 15bb87a420f5d2bae6467f9d7a27e8462577034e

lephilousophe noreply at scummvm.org
Sun Feb 16 15:43:27 UTC 2025


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

Summary:
15bb87a420 DARKSEED: Fix build on MSVC


Commit: 15bb87a420f5d2bae6467f9d7a27e8462577034e
    https://github.com/scummvm/scummvm/commit/15bb87a420f5d2bae6467f9d7a27e8462577034e
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2025-02-16T16:43:10+01:00

Commit Message:
DARKSEED: Fix build on MSVC

Using a non-trivial type as the last argument before variadic ones is
non portable and forbidden with our MSVC invocation.

Changed paths:
    engines/darkseed/darkseed.cpp
    engines/darkseed/inventory.cpp
    engines/darkseed/langtext.cpp
    engines/darkseed/langtext.h
    engines/darkseed/usecode.cpp


diff --git a/engines/darkseed/darkseed.cpp b/engines/darkseed/darkseed.cpp
index 5ce9e9dd30e..56501368f77 100644
--- a/engines/darkseed/darkseed.cpp
+++ b/engines/darkseed/darkseed.cpp
@@ -1909,9 +1909,9 @@ void DarkseedEngine::lookCode(int objNum) {
 		return;
 	}
 	if (g_engine->getLanguage() == Common::KO_KOR) {
-		_console->addTextLine(formatInjectStrings(getI18NText(kI18N_youSeeTheText), KoFont::getObjectString(_objectVar.getObjectName(objNum)).c_str()));
+		_console->addTextLine(formatInjectStrings(getI18NText(kI18N_youSeeTheText).c_str(), KoFont::getObjectString(_objectVar.getObjectName(objNum)).c_str()));
 	} else {
-		_console->addTextLine(formatInjectStrings(getI18NText(kI18N_youSeeTheText), _objectVar.getObjectName(objNum).c_str()));
+		_console->addTextLine(formatInjectStrings(getI18NText(kI18N_youSeeTheText).c_str(), _objectVar.getObjectName(objNum).c_str()));
 	}
 }
 
diff --git a/engines/darkseed/inventory.cpp b/engines/darkseed/inventory.cpp
index 054e2000df8..f23808268af 100644
--- a/engines/darkseed/inventory.cpp
+++ b/engines/darkseed/inventory.cpp
@@ -165,7 +165,7 @@ void Inventory::handleClick() {
 			g_engine->_console->printTosText(972, true);
 		} else {
 			g_engine->_console->printTosText(972);
-			g_engine->_console->addToCurrentLine(formatInjectStrings(Common::U32String("%s."), g_engine->_objectVar.getObjectName(icon).c_str()));
+			g_engine->_console->addToCurrentLine(formatInjectStrings(Common::U32String("%s.").c_str(), g_engine->_objectVar.getObjectName(icon).c_str()));
 		}
 	}
 }
diff --git a/engines/darkseed/langtext.cpp b/engines/darkseed/langtext.cpp
index 8fdcef23c5b..a5e18958f36 100644
--- a/engines/darkseed/langtext.cpp
+++ b/engines/darkseed/langtext.cpp
@@ -69,15 +69,15 @@ Common::U32String convertToU32String(const char *text, Common::Language language
 	return Common::U32String(text);
 }
 
-Common::U32String formatInjectStrings(Common::U32String format, ...) {
+Common::U32String formatInjectStrings(const Common::u32char_type_t *format, ...) {
 	Common::U32String outString;
 	va_list args;
 	va_start(args, format);
 
-	for (Common::U32String::const_iterator itr = format.begin(); itr != format.end(); itr++) {
+	for (const Common::u32char_type_t *itr = format; *itr; itr++) {
 		if (*itr == '%') {
 			itr++;
-			if (itr == format.end()) {
+			if (!*itr) {
 				outString += '%';
 				break;
 			}
diff --git a/engines/darkseed/langtext.h b/engines/darkseed/langtext.h
index 04c66510a5a..6882e04423a 100644
--- a/engines/darkseed/langtext.h
+++ b/engines/darkseed/langtext.h
@@ -54,7 +54,7 @@ const TextWithPosition &getI18NTextWithPosition(const I18NTextWithPosition &i18n
 
 Common::U32String convertToU32String(const char *text, Common::Language language);
 
-Common::U32String formatInjectStrings(Common::U32String format, ...);
+Common::U32String formatInjectStrings(const Common::u32char_type_t *format, ...);
 
 constexpr I18nText kI18N_CarKeysIgnitionText = {
 	"You see the car keys in the ignition.",
diff --git a/engines/darkseed/usecode.cpp b/engines/darkseed/usecode.cpp
index 4ac86df545a..5d5cb484b26 100644
--- a/engines/darkseed/usecode.cpp
+++ b/engines/darkseed/usecode.cpp
@@ -469,7 +469,7 @@ void Darkseed::UseCode::useCode(int objNum) {
 				_console->printTosText(955, true); // "You pick up the "
 			} else {
 				_console->printTosText(955); // "You pick up the "
-				_console->addToCurrentLineU32(formatInjectStrings(Common::U32String("%s."), _objectVar.getObjectName(objNum).c_str()));
+				_console->addToCurrentLineU32(formatInjectStrings(Common::U32String("%s.").c_str(), _objectVar.getObjectName(objNum).c_str()));
 			}
 			_inventory.addItem(objNum);
 			g_engine->_room->_collisionType = 0;
@@ -1621,7 +1621,7 @@ void UseCode::genericResponse(int16 useObjNum, int16 targetObjNum, int16 tosIdx)
 			if (lang == Common::KO_KOR) {
 				_console->addTextLine(
 					formatInjectStrings(
-						getI18NText(kI18N_genResponse0_usingTheObjectOnTheObjectItMustBeYourHeadachesText),
+						getI18NText(kI18N_genResponse0_usingTheObjectOnTheObjectItMustBeYourHeadachesText).c_str(),
 						KoFont::getObjectString(_objectVar.getObjectName(useObjNum)).c_str(),
 						_objectVar.getObjectName(targetObjNum).c_str()
 					)
@@ -1629,7 +1629,7 @@ void UseCode::genericResponse(int16 useObjNum, int16 targetObjNum, int16 tosIdx)
 			} else {
 				_console->addTextLine(
 					formatInjectStrings(
-						getI18NText(kI18N_genResponse0_usingTheObjectOnTheObjectItMustBeYourHeadachesText),
+						getI18NText(kI18N_genResponse0_usingTheObjectOnTheObjectItMustBeYourHeadachesText).c_str(),
 						_objectVar.getObjectName(useObjNum).c_str(),
 						_objectVar.getObjectName(targetObjNum).c_str()
 					)
@@ -1640,7 +1640,7 @@ void UseCode::genericResponse(int16 useObjNum, int16 targetObjNum, int16 tosIdx)
 			if (lang == Common::KO_KOR) {
 				_console->addTextLine(
 					formatInjectStrings(
-						getI18NText(kI18N_genResponse1_theObjectWillDoNothingToTheText),
+						getI18NText(kI18N_genResponse1_theObjectWillDoNothingToTheText).c_str(),
 						KoFont::getObjectString(_objectVar.getObjectName(useObjNum)).c_str(),
 						_objectVar.getObjectName(targetObjNum).c_str()
 					)
@@ -1648,7 +1648,7 @@ void UseCode::genericResponse(int16 useObjNum, int16 targetObjNum, int16 tosIdx)
 			} else {
 				_console->addTextLine(
 					formatInjectStrings(
-						getI18NText(kI18N_genResponse1_theObjectWillDoNothingToTheText),
+						getI18NText(kI18N_genResponse1_theObjectWillDoNothingToTheText).c_str(),
 						_objectVar.getObjectName(useObjNum).c_str(),
 						_objectVar.getObjectName(targetObjNum).c_str()
 					)
@@ -1659,7 +1659,7 @@ void UseCode::genericResponse(int16 useObjNum, int16 targetObjNum, int16 tosIdx)
 			if (lang == Common::KO_KOR) {
 				_console->addTextLine(
 					formatInjectStrings(
-						getI18NText(kI18N_genResponse2_theObjectDoesntHaveAnyEffectOnTheText),
+						getI18NText(kI18N_genResponse2_theObjectDoesntHaveAnyEffectOnTheText).c_str(),
 						KoFont::getTopicString(_objectVar.getObjectName(useObjNum)).c_str(),
 						_objectVar.getObjectName(targetObjNum).c_str()
 					)
@@ -1667,7 +1667,7 @@ void UseCode::genericResponse(int16 useObjNum, int16 targetObjNum, int16 tosIdx)
 			} else {
 				_console->addTextLine(
 					formatInjectStrings(
-						getI18NText(kI18N_genResponse2_theObjectDoesntHaveAnyEffectOnTheText),
+						getI18NText(kI18N_genResponse2_theObjectDoesntHaveAnyEffectOnTheText).c_str(),
 						_objectVar.getObjectName(useObjNum).c_str(),
 						_objectVar.getObjectName(targetObjNum).c_str()
 					)
@@ -1678,7 +1678,7 @@ void UseCode::genericResponse(int16 useObjNum, int16 targetObjNum, int16 tosIdx)
 			if (lang ==Common::KO_KOR) {
 				_console->addTextLine(
 					formatInjectStrings(
-						getI18NText(kI18N_genResponse3_theObjectHasNothingToDoWithTheText),
+						getI18NText(kI18N_genResponse3_theObjectHasNothingToDoWithTheText).c_str(),
 						KoFont::getTopicString(_objectVar.getObjectName(useObjNum)).c_str(),
 						KoFont::getLinkingString(_objectVar.getObjectName(targetObjNum)).c_str()
 					)
@@ -1686,7 +1686,7 @@ void UseCode::genericResponse(int16 useObjNum, int16 targetObjNum, int16 tosIdx)
 			} else {
 				_console->addTextLine(
 					formatInjectStrings(
-						getI18NText(kI18N_genResponse3_theObjectHasNothingToDoWithTheText),
+						getI18NText(kI18N_genResponse3_theObjectHasNothingToDoWithTheText).c_str(),
 						_objectVar.getObjectName(useObjNum).c_str(),
 						_objectVar.getObjectName(targetObjNum).c_str()
 					)
@@ -1742,7 +1742,7 @@ void UseCode::startDigging(int16 targetObjNum) {
 void UseCode::genericSingleObjectResponse(const I18nText &text, int16 useObjNum) {
 	_console->addTextLine(
 		formatInjectStrings(
-			getI18NText(text),
+			getI18NText(text).c_str(),
 			_objectVar.getObjectName(useObjNum).c_str()));
 }
 




More information about the Scummvm-git-logs mailing list