[Scummvm-git-logs] scummvm master -> 34a73670f33c75e864b743b8094275658de24722

sev- noreply at scummvm.org
Sat Jun 21 21:37:57 UTC 2025


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

Summary:
9bf9fb6076 WAGE: Fix weapon menu not being loaded
83d00e2846 WAGE: Fix save loading after game over
8db9b224f7 WAGE: Display result of "look" command after loading a save
3fc039aad5 WAGE: Fix out of bounds array crash in WageEngine::attackHit()
0490a1897c WAGE: Fix occasional crashes during combat
6317ca7419 WAGE: Fix crashes when game is over
739b007359 WAGE: Use MacRoman encoding in About dialog text
01f3eee13d WAGE: Fix text in About dialog
29e7d7cda8 WAGE: Add more games to detection tables
d351a219e7 WAGE: GETOUTMAZE: Fix crash at startup
0789747e20 WAGE: Use a single specific font in About dialog
32412c4587 WAGE: Position "OK" button in About dialog relative to text height
c7e34aa171 WAGE: Add six more games to detection table
34a73670f3 WAGE: Fix startup crash in games with periodic sounds


Commit: 9bf9fb6076d9df6e4717cb49e0e85b908890fba1
    https://github.com/scummvm/scummvm/commit/9bf9fb6076d9df6e4717cb49e0e85b908890fba1
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Fix weapon menu not being loaded

Changed paths:
    engines/wage/gui.cpp
    engines/wage/saveload.cpp


diff --git a/engines/wage/gui.cpp b/engines/wage/gui.cpp
index 16e98c24ca4..bfd82fb4407 100644
--- a/engines/wage/gui.cpp
+++ b/engines/wage/gui.cpp
@@ -302,10 +302,8 @@ void Gui::executeMenuCommand(int action, Common::String &text) {
 		if (_engine->_defaultSaveSlot != -1) {
 			_engine->_isGameOver = false;
 
-			_engine->loadGameState(_engine->_defaultSaveSlot);
 			_engine->_world->_weaponMenuDisabled = false;
-			_engine->_gui->regenCommandsMenu();
-			_engine->_gui->regenWeaponsMenu();
+			_engine->loadGameState(_engine->_defaultSaveSlot);
 
 			_scene = nullptr; 	// To force current scene to be redrawn
 			_engine->redrawScene();
diff --git a/engines/wage/saveload.cpp b/engines/wage/saveload.cpp
index 80307b794ff..114f5e9d1be 100644
--- a/engines/wage/saveload.cpp
+++ b/engines/wage/saveload.cpp
@@ -711,6 +711,9 @@ Common::Error WageEngine::loadGameState(int slot) {
 
 		sayText(_world->_player->_currentScene->_name, Common::TextToSpeechManager::QUEUE);
 
+		_gui->regenCommandsMenu();
+		_gui->regenWeaponsMenu();
+
 		return Common::kNoError;
 	} else {
 		return Common::kUnknownError;


Commit: 83d00e2846d1475d5936c33924e025dc0c2048d4
    https://github.com/scummvm/scummvm/commit/83d00e2846d1475d5936c33924e025dc0c2048d4
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Fix save loading after game over

Changed paths:
    engines/wage/saveload.cpp


diff --git a/engines/wage/saveload.cpp b/engines/wage/saveload.cpp
index 114f5e9d1be..d2d0d8d38e7 100644
--- a/engines/wage/saveload.cpp
+++ b/engines/wage/saveload.cpp
@@ -702,6 +702,10 @@ int WageEngine::loadGame(int slotId) {
 
 Common::Error WageEngine::loadGameState(int slot) {
 	warning("LOADING %d", slot);
+
+	if (_isGameOver)
+		resetState();
+
 	if (loadGame(slot) == 0) {
 		if (slot != getAutosaveSlot()) {
 			_defaultSaveSlot = slot;


Commit: 8db9b224f72e2aa89033dcd31f9d73a440c0ed27
    https://github.com/scummvm/scummvm/commit/8db9b224f72e2aa89033dcd31f9d73a440c0ed27
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Display result of "look" command after loading a save

Changed paths:
    engines/wage/saveload.cpp


diff --git a/engines/wage/saveload.cpp b/engines/wage/saveload.cpp
index d2d0d8d38e7..95295ed6e85 100644
--- a/engines/wage/saveload.cpp
+++ b/engines/wage/saveload.cpp
@@ -706,6 +706,8 @@ Common::Error WageEngine::loadGameState(int slot) {
 	if (_isGameOver)
 		resetState();
 
+	_gui->_consoleWindow->clearText();
+
 	if (loadGame(slot) == 0) {
 		if (slot != getAutosaveSlot()) {
 			_defaultSaveSlot = slot;
@@ -718,6 +720,11 @@ Common::Error WageEngine::loadGameState(int slot) {
 		_gui->regenCommandsMenu();
 		_gui->regenWeaponsMenu();
 
+		_gui->_consoleWindow->setTextWindowFont(_world->_player->_currentScene->getFont());
+
+		Common::String input("look");
+		processTurn(&input, NULL);
+
 		return Common::kNoError;
 	} else {
 		return Common::kUnknownError;


Commit: 3fc039aad5ddfc735009f368a5714d4e99a532d4
    https://github.com/scummvm/scummvm/commit/3fc039aad5ddfc735009f368a5714d4e99a532d4
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Fix out of bounds array crash in WageEngine::attackHit()

Changed paths:
    engines/wage/combat.cpp


diff --git a/engines/wage/combat.cpp b/engines/wage/combat.cpp
index baaed464a3c..854b9c10382 100644
--- a/engines/wage/combat.cpp
+++ b/engines/wage/combat.cpp
@@ -313,7 +313,8 @@ bool WageEngine::attackHit(Chr *attacker, Chr *victim, Obj *weapon, int targetIn
 				Scene *currentScene = victim->_currentScene;
 
 				for (int i = victim->_inventory.size() - 1; i >= 0; i--) {
-					_world->move(victim->_inventory[i], currentScene);
+					if (i < victim->_inventory.size())
+						_world->move(victim->_inventory[i], currentScene);
 				}
 				Common::String *s = getGroundItemsList(currentScene);
 				appendText(s->c_str());


Commit: 0490a1897c8d09760506e8030f7ee3eeccda8824
    https://github.com/scummvm/scummvm/commit/0490a1897c8d09760506e8030f7ee3eeccda8824
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Fix occasional crashes during combat

Changed paths:
    engines/wage/combat.cpp


diff --git a/engines/wage/combat.cpp b/engines/wage/combat.cpp
index 854b9c10382..f9b17f267de 100644
--- a/engines/wage/combat.cpp
+++ b/engines/wage/combat.cpp
@@ -165,10 +165,12 @@ void WageEngine::performCombatAction(Chr *npc, Chr *player) {
 	default:
 		{
 			int cnt = 0;
-			for (ObjList::const_iterator it = objs->begin(); it != objs->end(); ++it, ++cnt)
-				if (cnt == token)
+			for (ObjList::const_iterator it = objs->begin(); it != objs->end(); ++it, ++cnt) {
+				if (cnt == token) {
 					performTake(npc, *it);
-			break;
+					break;
+				}
+			}
 		}
 	}
 


Commit: 6317ca74191544c8090637063a739784266f8d8d
    https://github.com/scummvm/scummvm/commit/6317ca74191544c8090637063a739784266f8d8d
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Fix crashes when game is over

Changed paths:
    engines/wage/wage.cpp


diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp
index d14b2fe2aad..e2ed368d33f 100644
--- a/engines/wage/wage.cpp
+++ b/engines/wage/wage.cpp
@@ -577,6 +577,18 @@ void WageEngine::processTurnInternal(Common::String *textInput, Designed *clickI
 		if (_shouldQuit)
 			return;
 
+		// WORKAROUND: The original Java codebase did not have this check and
+		// called gameOver() only in onMove() method. However, this leads to a crash in
+		// Gui::redraw(), when _engine->_world->_player->_currentScene is equal to _world->_storageScene.
+		// The crash happens because storage scene's _designBounds member is NULL.
+		// Therefore, to fix this, we check and call gameOver() here if needed.
+		if (_world->_player->_currentScene == _world->_storageScene) {
+			if (!_isGameOver) {
+				_isGameOver = true;
+				gameOver();
+			}
+		}
+
 		redrawScene();
 		_temporarilyHidden = false;
 	} else if (_loopCount == 1) {


Commit: 739b007359f53f64c1ea625f348a39195a52c985
    https://github.com/scummvm/scummvm/commit/739b007359f53f64c1ea625f348a39195a52c985
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Use MacRoman encoding in About dialog text

Changed paths:
    engines/wage/wage.cpp


diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp
index e2ed368d33f..f6771c8c540 100644
--- a/engines/wage/wage.cpp
+++ b/engines/wage/wage.cpp
@@ -357,10 +357,10 @@ void WageEngine::aboutDialog() {
 
 	buttons.push_back(new Graphics::MacDialogButton("OK", 191, 167, 68, 28));
 
-	Graphics::MacText aboutMessage(_world->_aboutMessage, _gui->_wm, _gui->_consoleWindow->getTextWindowFont(), Graphics::kColorBlack,
+	Graphics::MacText aboutMessage(Common::U32String(_world->_aboutMessage, Common::kMacRoman), _gui->_wm, _gui->_consoleWindow->getTextWindowFont(), Graphics::kColorBlack,
 											 Graphics::kColorWhite, 400, Graphics::kTextAlignCenter);
 
-	Common::U32String disclaimer("\n\n\n\nThis adventure was produced with World Builder\xAA\nthe adventure game creation system.\n© Copyright 1986 by William C. Appleton, All Right Reserved\nPublished by Silicon Beach Software, Inc.");
+	Common::U32String disclaimer("\n\n\n\nThis adventure was produced with World Builder\xAA\nthe adventure game creation system.\n\xA9 Copyright 1986 by William C. Appleton, All Right Reserved\nPublished by Silicon Beach Software, Inc.", Common::kMacRoman);
 
 	sayText(_world->_aboutMessage);
 	sayText(disclaimer, Common::TextToSpeechManager::QUEUE);


Commit: 01f3eee13d19f5b932387427a171c778a127ad82
    https://github.com/scummvm/scummvm/commit/01f3eee13d19f5b932387427a171c778a127ad82
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Fix text in About dialog

Before the fix, disclaimer text was appended to aboutMessage. This
caused the a problem where the last chunk of aboutMessage - "Rights
Reserved" was added to every line of the whole text. It was happening
because the aboutMessage did not have newline at the end, and the empty
chunk was not created.

Changed paths:
    engines/wage/wage.cpp


diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp
index f6771c8c540..09f516d1fd6 100644
--- a/engines/wage/wage.cpp
+++ b/engines/wage/wage.cpp
@@ -357,15 +357,15 @@ void WageEngine::aboutDialog() {
 
 	buttons.push_back(new Graphics::MacDialogButton("OK", 191, 167, 68, 28));
 
-	Graphics::MacText aboutMessage(Common::U32String(_world->_aboutMessage, Common::kMacRoman), _gui->_wm, _gui->_consoleWindow->getTextWindowFont(), Graphics::kColorBlack,
-											 Graphics::kColorWhite, 400, Graphics::kTextAlignCenter);
-
+	Common::U32String messageText(_world->_aboutMessage, Common::kMacRoman);
 	Common::U32String disclaimer("\n\n\n\nThis adventure was produced with World Builder\xAA\nthe adventure game creation system.\n\xA9 Copyright 1986 by William C. Appleton, All Right Reserved\nPublished by Silicon Beach Software, Inc.", Common::kMacRoman);
 
 	sayText(_world->_aboutMessage);
 	sayText(disclaimer, Common::TextToSpeechManager::QUEUE);
+	messageText += disclaimer;
 
-	aboutMessage.appendText(disclaimer, 3, 9, 0, false);
+	Graphics::MacText aboutMessage(messageText, _gui->_wm, _gui->_consoleWindow->getTextWindowFont(), Graphics::kColorBlack,
+											 Graphics::kColorWhite, 400, Graphics::kTextAlignCenter);
 
 	Graphics::MacDialog about(&_gui->_screen, _gui->_wm, 450, &aboutMessage, 400, &buttons, 0);
 


Commit: 29e7d7cda8dba82a6ea3a96d58a6e80c29897adf
    https://github.com/scummvm/scummvm/commit/29e7d7cda8dba82a6ea3a96d58a6e80c29897adf
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Add more games to detection tables

Changed paths:
    engines/wage/detection_tables.h


diff --git a/engines/wage/detection_tables.h b/engines/wage/detection_tables.h
index 416b384415b..aaac22da38b 100644
--- a/engines/wage/detection_tables.h
+++ b/engines/wage/detection_tables.h
@@ -57,6 +57,7 @@ static const ADGameDescription gameDescriptions[] = {
 	BIGGAME("afm", "v1.3", "Another Fine Mess 1.3", "25934edf84e814f41f3ddf87185b554b", 1409792),
 	BIGGAME("afm", "v1.4", "Another Fine Mess 1.4", "28d2b78c7abcbfd526f9c252444ef0b3", 1420563),
 	BIGGAME("afm", "v1.8", "Another Fine Mess 1.8", "8bbec64ffe9deee4ff48d27f01176814", 1420467),
+	FANGAMEN("Alien Clutch", "Alien Clutch 2.0", "5c783f6b7f4a7d8d49e138be94e00f5a", 514976),
 	BIGGAME("amot", "v1.8", "A Mess O' Trouble 1.8", "57de8f1f79a24fa1a296aa10242c3648", 1842848),
 	FANGAMEN("The Adventures of Steve Reeve", "TAoSR", "e8b8ab3a838382125594aae17d53a4e7", 843323),
 	FANGAMEN("The Ashland Revolution", "Ashland 1.0", "f6ff38b24953ae818a000f88998e938d", 150220),
@@ -64,6 +65,7 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEND("The Ashland Revolution", "Ashland Demo", "7a340e5ea03f7468717de408fb5b13fb", 149828), // alt version
 	FANGAMEND("The Ashland Revolution", "The Ashland Revolution Demo", "de6fdfe2b9d9efc0ea842e2bde68673a", 144753), // alt version
 	FANGAME("The Axe-orcist", "9718b72e86a9727bbd68e12fa992b268", 308508),
+	FANGAMEN("Beyond Twilight Vale", "Beyond Twilight Vale 0.8", "ba67d80dc22d32f42446c891daf56fc8", 248089),
 	FANGAME("Brownie Saves the Day", "964d9cf87422c09c50fe294adf9a7571", 680145),
 	FANGAME("Brownie's Dream", "379f2c810efc18bad932049d331df1b6", 440448),
 	FANGAME("Brownie's Dream", "78f79114a7e85e452a7b8c7346a21456", 440448), // alt version?
@@ -84,6 +86,7 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAME("Castle of Ert", "31a832c2be51e622fb2c586803dadf9e", 198699), // alt version
 	FANGAME("Castle of Ert", "ecadcdd9bdee68aeb32507932857db30", 198727), // alt version, v1.0
 	FANGAMEN("Castle of Ert", "Castle of Ert V1.2", "bc1c119b4a95ea6891a6e22c35e6c2d8", 201984),
+	FANGAMEN("City Adventure", "City Adventure 1.1", "0c9415ea525ffeedb346f7a62ebe6cd3", 285789),
 	FANGAME("Color by Number", "8fc77e5976ca25d05cf74db3ec3e5ef2", 528306),
 	FANGAME("Crystal Adventure", "d9e82fc3a58217a0ea4d6fddcb7fbc2a", 477918),
 	FANGAMEN("Crystal Search", "Crystal Search 1.5", "a9dda0422c6424e915363745ad2ecc41", 517019),
@@ -98,6 +101,7 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEN("Deep Angst II: The Nightmare Ends", "Deep Angst II", "2e468021416bc2b82e283030c7f6bc5d", 408761),
 	FANGAME("Deep Ennui", "9879bf659f11c9177d578a347da0c658", 85819),
 	FANGAME("Deep Ennui", "4d98fcefc3e456be95023b0f06cae320", 85233), // alt version
+	FANGAME("Doomsday Machine", "bdb8845dfe0b4a5eb5c88da5c1b87cd6", 126371),
 	FANGAME("Double Trouble", "1cd05d66163b44f9f0d8c3e7232bc2db", 542115),
 	BIGGAME("drakmythcastle", "Disk I", "Drakmyth Castle disk I of II", "54dd0a817b667fc05c4f2dee6abe126a", 793528),
 	BIGGAME("drakmythcastle", "Disk I", "Drakmyth Castle", "b796545fc4b7c2b89683db873e005e92", 792355), // alt version
@@ -123,10 +127,12 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAME("EveryMan 1", "9104b23c8978c7db118bb60fb5f8bf0f", 335435), // alt version
 	FANGAMEN("EveryMan 1", "EveryMan I", "9104b23c8978c7db118bb60fb5f8bf0f", 335435), // Same as above with different name
 	FANGAME("EveryMan 1", "829aabea15e143f20fe692f0bc38e56a", 335444), // alt version
+	FANGAMEN("EveryMan 2", "EveryMan 2 2.02", "401c1b0eae618fa5f39b6577bc108c2f", 715273),
 	FANGAME("Exploration Zeta!", "9006eff549afadc956e5de4ae6a24fbd", 366343),
 	FANGAMEND("Explorer", "Explorer DEMO", "0ae79f48754466c4cd65137c7f186384", 460972),
 	FANGAMEND("Explorer", "Explorer DEMO", "6b22972808630201ece7cc96a0ef17f7", 460959), // alt version
 	FANGAME("Fantasy Quest", "b52d3e2680a76c23b2791e2c87f6b6bd", 762498),
+	FANGAME("Finding D - concept demo", "3657a0483c70a1b44641e62120290574", 55723),
 	FANGAME("Find the Heart", "0c0c282649597ea1ac82d97c8d4029a2", 105979), // From Joshua's Worlds 1.0
 	FANGAME("Find the Heart", "6fb8c6b8bc2287ba225b0ac6580dc073", 105675), // From Joshua's Worlds 1.0, alt version
 	FANGAME("Find the Heart", "08de3248b8c691d9a08af984bdcfa872", 105629), // From Joshua's Worlds, alt version
@@ -136,12 +142,19 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEN("Fred Rogers - Terrorist", "Terrorist", "a37f39fcf9a1c88e1b30385754b2a1f7", 524199), // alt version
 	FANGAME("Fred Rogers - Terrorist", "8597a77619847efbce3f1f8b2ceb3258", 524199), // alt version
 	FANGAME("Galactic Warrior", "bf61d2344a63b597ab288ddaacfa402a", 89117),
+	FANGAMEN("get-a-mac", "get-a-mac 1.1", "e12a38d9b56ca62414b99cdb58aa3e1c", 144936),
+	// ??? crash at startup
+	FANGAMEN("Get out of MAZE", "Get out of MAZE 1.0", "cd9eb31e1178b0eec35ee84ff781647b", 53583),
+	FANGAME("Gold Bug!", "34a379231ae97150e336b91773e6dd47", 782645),
 	BIGGAME("grailquest", "", "GrailQuest", "6441d134c0aedd8cb3b6909107a22ee3", 739452),
 	BIGGAMED("grailquest", "Demo", "GrailQuest.demo", "c0ef30ef7e4119fe76c5fbe2f930e7b1", 190810),
 	FANGAME("Haikook", "405d383b273a0252645962e0e664be20", 419636),
+	FANGAME("Grendel-Dazz", "968addd863d8e5c90f73d029c9240ded", 267156),
 	FANGAME("Grey Tower", "02d0bb7a8c278d3789616129d47f15c1", 397248), // v1.5.2
 	FANGAMEN("Haunted House", "The haunted house 1.4", "655ff082160909beb83b99979cdfc2c6", 107959),
 	FANGAMEN("Haunted House", "Haunted House 1.5", "5e34e9fa13f4c90876f10a40ea1d1c79", 177244),
+	FANGAMEN("Haunted University", "Haunted University v2.04", "d9511905bb908a0c3ea13c996e053aec", 1674435),
+	FANGAME("Hollywood  Starbound", "34499b3935f4c019c05e77ade28aa527", 633717),
 	FANGAMEN("The Hotel Caper", "The Hotel Caper V1.0", "c9b3c75814fc6b14feae044157bef252", 231713),
 	FANGAMEN("The Hotel Caper", "The Hotel Caper V1.0", "4658ece81a6f211a828e747125482f48", 231713), // alt version
 	FANGAMEN("The Hotel Caper", "The Hotel Caper V1.0", "baaaae4569fbb1947d74667ac484bea9", 231773), // alt version
@@ -149,10 +162,14 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEN("The Hotel Caper", "The Hotel Caper V2.0", "eed79653ca95f4e953aa0ff41e8c8034", 260418),
 	FANGAMEN(".i.f.", "xn--.i.f.-", "575fc0c25e9823dd742de1acdcaac325", 183221),
 	FANGAMEN("Introduction to Gothic", "Intro to Gothic", "606eec666f0b2d767e4423747e740434", 207811),
+	FANGAMEN("Intruder", "INTRUDER 1.1", "7d819891784c79fef66ff3bd9d946d6d", 203105),
 	FANGAMEN("Intruder", "INTRUDER v1.2", "a7df3f4196e922153cd4345def774c29", 241007),
+	FANGAME("Jack & Beanstalk Starring You", "2cd38be71d32892a83913c061a03aa19", 312646),
 	FANGAMEN("James Bond 007", "007", "2449924f2cb43454489a4ef91c0ee702", 50407),
 	FANGAME("Jamie the Demon Slayer", "ed054aa760569059c7ea554e822089a6", 232533),
 	FANGAMEN("Journey", "The Journey 1.5", "4bbc047d21740f79f3f198628ba8f8bc", 665011),
+	FANGAMEN("Journey", "2 The Journey v1.5 (1992)", "4bbc047d21740f79f3f198628ba8f8bc", 665011), // alt version
+	FANGAMEN("Journey", "1 The Journey v1.6 (1992)", "cff7929abf284060c2070dfc1a2fa9cf", 765189),
 	FANGAMEN("Journey", "The Journey 1.6.2 US", "588a516caa187005fdfcbc72823c8eff", 820316),
 	FANGAMEN("Jumble", "xn--LSJUMBLE -", "555ead186ec1683157e53b96fc4a99d5", 647083), // Original file name is "LSJUMBLE† "
 	FANGAME("Karth of the Jungle", "6dae6eef6f46101ba8c9e312bb82e824", 96455),
@@ -167,10 +184,13 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEN("Lost In Kookyville", "Lost In Kookyville 1.2.4", "89ecb4cef5cc4036e54f8bc45ce7520e", 721313),
 	FANGAMEN("Lost In Kookyville", "Lost In Kookyville 1.2.4", "dfa0abbadf3848f415c6696d6d914455", 722917), // alt version?
 	FANGAME("Lost Princess", "29d9889b566286506ded7d8bec7b75ce", 166502),
+	FANGAME("Lost Weekend", "5952ce2396c162e478f49b93f64dbefc", 178443),
+	FANGAME("Lost Weekend", "c1f3de4fedf59b0a7637bbb2a0ed16d6", 178443), // 24-bit version
 	FANGAME("The Lost Skater", "5d1fa9ac715ce780ace9aa018caadb51", 334718),
 	FANGAME("Mac Spudd!", "eaba9195dd27c2a26b809a730417122b", 781859),
 	FANGAME("MacWanker 1.0", "2fd407020adf527d1193f3351d7244b5", 178005),
 	FANGAME("Magic Rings", "263e2c90af61f0798bf41f6a1e3f6345", 108788),
+	FANGAMEN("Mansion!", "Mansion! 1.0", "c993619e5bd99ccca6e3ce28d93be33a", 389857),
 	FANGAMEN("Master's Familiar", "xn--Masters Familiar v2.3 -245mphaaa", "d5ee3e1ff136482ef1de7935a0ac3918", 142827), // Original file name "Master’s Familiar v2.3 ••••"
 	FANGAMEN("Maze of the Questing Beast", "MQB", "03775e1894809f24234aeaab18f39451", 134444),
 	FANGAMEN("Maze of the Questing Beast Solutions", "MQB Solutions", "8a27e515f12162cc8b85e4f2bd16a1e5", 37606),
@@ -181,6 +201,7 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAME("Mike's House", "591b5a4d52ecf9a7d87256e83b78b0fd", 87101),
 	FANGAME("Mike's House", "e4c0b836a21799db3995a921a447c28e", 87087), // alt version
 	FANGAME("Mike's House", "79c5e9ffaacfd8aadddc7c2923655a41", 86775), // alt version
+	FANGAME("Mindy - The Quest for Home", "a60f17662adf23146e5247d4d1e46d07", 117183),
 	FANGAME("Minitorian", "c728dfccdca12571e275a4113b3db343", 586208),
 	FANGAMEN("M'Lord's Warrior", "xn--M'Lord's Warrior -f82j", "e0a0622ce2023984e3118141a9688ec5", 465383), // Original file name is "M'Lord's Warrior †"
 	FANGAMEN("Mormonoids from the Deep", "Mormonoids 1.0",  "15c99d26ac2abb9eb4802a7dd5326086", 642975),
@@ -190,6 +211,8 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAME("Mountain of Mayhem", "c83a5703b3ea95f465839f4f54ef0805", 749733), // alt version
 	FANGAMEN("Maze of the Questing Beast", "MQB", "e2b89bd1ae34114445a4bb4795f0f514", 134444),
 	FANGAME("Muddy Water", "711dd9d154d13c31bc216ef8539bb095", 662438), // v1.3.2
+	FANGAME("Mystery of the Moors", "593dc2fcb92c0f5f4d94b5fc390a2ba2", 849909),
+	FANGAME("Necropolis", "70fbba8a0b1626216f674df2ca9c58ba", 397396),
 	FANGAME("Nightcrawler Ned", "8423fc015c395bd6be54a7ea69170d99", 366286),
 	FANGAMEND("Odyssey", "Odyssey Demo", "c5b23c29bada41b587a86c7090570578", 256842),
 	FANGAMEN("Parrot Talk", "PARROT TALK V1", "c38c090be8c078d931905c93bc0689f5", 118680),
@@ -233,6 +256,8 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEN("Radical Castle", "Radical Castle 2.0", "ff1e2292dc49622b53dc04f6fa2e3577", 357418),
 	BIGGAME("raysmaze", "v1.5", "Ray's Maze1.5", "328096d3c7ccb838956c42b273f17b8e", 1408260),
 	BIGGAME("raysmaze", "v1.5/alt", "Ray's Maze1.5", "401cd46df5e49fa4171ed398b3e0227b", 1408260),
+	// ??? crash at startup
+	FANGAMEN("Realms & Reality", "Realms & Reality 1.2", "13ee1c40855bdf666edafcf554ec35d6", 492358),
 	FANGAME("Ray's World Builder Demo", "eafea10db54530ac6e6128be31741542", 115800),
 	FANGAME("Robot Planet", "1066f6b2892cda16c2f365d1ec97537c", 107089),
 	FANGAME("Royal Malaise, Part 1", "a12d6990b2a0d1ce3cca5f19c8ef70cc", 306481),
@@ -264,11 +289,13 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEN("Strange Disappearance", "xn--Strange Disappearance -xav71fwa", "9d6e41b61c0fc90400e5da2fcb653a4a", 772026), // Original file name '"Strange Disappearance" ', same version
 	FANGAME("The Sultan's Palace", "fde31cbcc77b66969b4cfcd43075341e", 456599), // Releases titled "Palace of Sand" were made with FutureBasic
 	FANGAMEN("Swamp Witch", "xn--Swamp Witch-dl3f", "bd8c8394be31f7845d55785b7ccfbbde", 739525), // Original file name "Swamp Witch†"
+	FANGAMEN("Success", "Success 1.0", "bacb07694a4559ae617923484aa40505", 93935),
 	FANGAME("Swamp Witch", "bd8c8394be31f7845d55785b7ccfbbde", 739525), // same version, normal file name
 	FANGAME("Swamp Witch", "07463c8b3b908b0c493a41b949ac1ff5", 739875), // alt version
 	FANGAME("Swamp Witch", "865a07a0356926d6cab8f14208e11f9c", 739511), // alt version
 	FANGAME("Swamp Witch", "dcda6bb0f27ae66884cab75ffc04e0d9", 739525), // alt version
 	FANGAME("Sweetspace Now!", "574dc7dd25543f7a516d6524f0c5ab33", 123557), // Comes with Jumble
+	FANGAMEN("Sword of Ages", "Sword of Ages 2.1", "d6dfea87c29dfe32dd958bbba25c70f3", 218673),
 	FANGAMEN("Sword of Siegfried", "Sword of Siegfried 1.0", "2ae8f21cfb228ce58ee47b767bdd8820", 234507),
 	FANGAMEN("Sword of Siegfried", "Sword of Siegfried 1.0", "7a68b00019592f3aa671cae024f7e843", 234493), // alt version
 	FANGAME("Sword of Siegfried", "7a68b00019592f3aa671cae024f7e843", 234493), // identical to the above, different file name
@@ -276,9 +303,12 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAME("Time Bomb", "976180f9be0d1029aaba7774fec9767c", 64322), // alt version
 	FANGAMEN("The Time Squisher", "Time Squisher v 1.1", "3e296141e7a7c9b05e0dde779d9bb50d", 463526),
 	FANGAMEND("Time Star", "xn--Time Star-eh2e", "761e91f3da7217dc9516879a8ba08fd9", 210562), // Original file name "Time Starâ„¢"
+	FANGAMEN("Time Streak!!", "xn--Time Streak!!-8q9g", "e90f123a113e38c83c205b5fe50521fb", 483488), // Original file name "Time Streak!!â„¢"
 	FANGAME("The Tower", "4cd8755ccb5bbeaf2e5f7848a8daa033", 556283),
 	FANGAMEND("Tombworld", "xn--Demo TombWorld-8ra", "695734292024290d5d0aa6a66ff628f6", 663996), // Original file name "Demo TombWorld©"
 	FANGAMEND("Tombworld", "DemoTombWorld", "4b3f56cfa595eab3919a918767e11870", 387403), // alt version
+	BIGGAME("twisted", "", "Twisted! 1.1", "7226874582d7e5fa13004340e9c5ba2b", 957878),
+	BIGGAME("twisted", "", "Twisted! 1.5", "786909ab45da5af2b96f3a96a63727f0", 960186),
 	BIGGAME("twisted", "", "Twisted! 1.6", "6e0be4c7d83231e56a431dc4ef7bf978", 960698),
 	FANGAME("The Village", "fd35cad8c61064d6c8aaadab7070ccad", 314572),
 	FANGAME("The Village", "b84ac84be610498c4de5d9bd4fd36175", 314620), // alt version


Commit: d351a219e753320d43aa6d781e899cef8f2115af
    https://github.com/scummvm/scummvm/commit/d351a219e753320d43aa6d781e899cef8f2115af
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: GETOUTMAZE: Fix crash at startup

Changed paths:
    engines/wage/detection_tables.h
    engines/wage/wage.cpp


diff --git a/engines/wage/detection_tables.h b/engines/wage/detection_tables.h
index aaac22da38b..bdf008fd358 100644
--- a/engines/wage/detection_tables.h
+++ b/engines/wage/detection_tables.h
@@ -143,7 +143,6 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAME("Fred Rogers - Terrorist", "8597a77619847efbce3f1f8b2ceb3258", 524199), // alt version
 	FANGAME("Galactic Warrior", "bf61d2344a63b597ab288ddaacfa402a", 89117),
 	FANGAMEN("get-a-mac", "get-a-mac 1.1", "e12a38d9b56ca62414b99cdb58aa3e1c", 144936),
-	// ??? crash at startup
 	FANGAMEN("Get out of MAZE", "Get out of MAZE 1.0", "cd9eb31e1178b0eec35ee84ff781647b", 53583),
 	FANGAME("Gold Bug!", "34a379231ae97150e336b91773e6dd47", 782645),
 	BIGGAME("grailquest", "", "GrailQuest", "6441d134c0aedd8cb3b6909107a22ee3", 739452),
diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp
index 09f516d1fd6..f54289c6309 100644
--- a/engines/wage/wage.cpp
+++ b/engines/wage/wage.cpp
@@ -384,16 +384,20 @@ void WageEngine::saveGame() {
 
 void WageEngine::performInitialSetup() {
 	debug(5, "Resetting Objs: %d", _world->_orderedObjs.size());
-	for (uint i = 0; i < _world->_orderedObjs.size() - 1; i++)
-		_world->move(_world->_orderedObjs[i], _world->_storageScene, true);
+	if (_world->_orderedObjs.size() > 0) {
+		for (uint i = 0; i < _world->_orderedObjs.size() - 1; i++)
+			_world->move(_world->_orderedObjs[i], _world->_storageScene, true);
 
-	_world->move(_world->_orderedObjs[_world->_orderedObjs.size() - 1], _world->_storageScene);
+		_world->move(_world->_orderedObjs[_world->_orderedObjs.size() - 1], _world->_storageScene);
+	}
 
 	debug(5, "Resetting Chrs: %d", _world->_orderedChrs.size());
-	for (uint i = 0; i < _world->_orderedChrs.size() - 1; i++)
-		_world->move(_world->_orderedChrs[i], _world->_storageScene, true);
+	if (_world->_orderedChrs.size() > 0) {
+		for (uint i = 0; i < _world->_orderedChrs.size() - 1; i++)
+			_world->move(_world->_orderedChrs[i], _world->_storageScene, true);
 
-	_world->move(_world->_orderedChrs[_world->_orderedChrs.size() - 1], _world->_storageScene);
+		_world->move(_world->_orderedChrs[_world->_orderedChrs.size() - 1], _world->_storageScene);
+	}
 
 	debug(5, "Resetting Owners: %d", _world->_orderedObjs.size());
 	for (uint i = 0; i < _world->_orderedObjs.size(); i++) {


Commit: 0789747e2065afd8171ee9b9954d426f7300a1e1
    https://github.com/scummvm/scummvm/commit/0789747e2065afd8171ee9b9954d426f7300a1e1
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Use a single specific font in About dialog

Changed paths:
    engines/wage/wage.cpp


diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp
index f54289c6309..5da7a1ed3c7 100644
--- a/engines/wage/wage.cpp
+++ b/engines/wage/wage.cpp
@@ -364,7 +364,8 @@ void WageEngine::aboutDialog() {
 	sayText(disclaimer, Common::TextToSpeechManager::QUEUE);
 	messageText += disclaimer;
 
-	Graphics::MacText aboutMessage(messageText, _gui->_wm, _gui->_consoleWindow->getTextWindowFont(), Graphics::kColorBlack,
+	Graphics::MacFont font(Graphics::kMacFontGeneva, 9, 0);
+	Graphics::MacText aboutMessage(messageText, _gui->_wm, &font, Graphics::kColorBlack,
 											 Graphics::kColorWhite, 400, Graphics::kTextAlignCenter);
 
 	Graphics::MacDialog about(&_gui->_screen, _gui->_wm, 450, &aboutMessage, 400, &buttons, 0);


Commit: 32412c45878c8c1125cddf2c2ee18eb46ab79839
    https://github.com/scummvm/scummvm/commit/32412c45878c8c1125cddf2c2ee18eb46ab79839
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Position "OK" button in About dialog relative to text height

Changed paths:
    engines/wage/wage.cpp


diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp
index 5da7a1ed3c7..3eecaaf03c2 100644
--- a/engines/wage/wage.cpp
+++ b/engines/wage/wage.cpp
@@ -353,10 +353,6 @@ bool WageEngine::saveDialog() {
 }
 
 void WageEngine::aboutDialog() {
-	Graphics::MacDialogButtonArray buttons;
-
-	buttons.push_back(new Graphics::MacDialogButton("OK", 191, 167, 68, 28));
-
 	Common::U32String messageText(_world->_aboutMessage, Common::kMacRoman);
 	Common::U32String disclaimer("\n\n\n\nThis adventure was produced with World Builder\xAA\nthe adventure game creation system.\n\xA9 Copyright 1986 by William C. Appleton, All Right Reserved\nPublished by Silicon Beach Software, Inc.", Common::kMacRoman);
 
@@ -368,6 +364,10 @@ void WageEngine::aboutDialog() {
 	Graphics::MacText aboutMessage(messageText, _gui->_wm, &font, Graphics::kColorBlack,
 											 Graphics::kColorWhite, 400, Graphics::kTextAlignCenter);
 
+	Graphics::MacDialogButtonArray buttons;
+
+	buttons.push_back(new Graphics::MacDialogButton("OK", 191, aboutMessage.getTextHeight() + 30, 68, 28));
+
 	Graphics::MacDialog about(&_gui->_screen, _gui->_wm, 450, &aboutMessage, 400, &buttons, 0);
 
 	int button = about.run();


Commit: c7e34aa17127ac3a02fdbebe70cc59872308c3b6
    https://github.com/scummvm/scummvm/commit/c7e34aa17127ac3a02fdbebe70cc59872308c3b6
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Add six more games to detection table

Changed paths:
    engines/wage/detection_tables.h


diff --git a/engines/wage/detection_tables.h b/engines/wage/detection_tables.h
index bdf008fd358..63029380a26 100644
--- a/engines/wage/detection_tables.h
+++ b/engines/wage/detection_tables.h
@@ -65,6 +65,7 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEND("The Ashland Revolution", "Ashland Demo", "7a340e5ea03f7468717de408fb5b13fb", 149828), // alt version
 	FANGAMEND("The Ashland Revolution", "The Ashland Revolution Demo", "de6fdfe2b9d9efc0ea842e2bde68673a", 144753), // alt version
 	FANGAME("The Axe-orcist", "9718b72e86a9727bbd68e12fa992b268", 308508),
+	FANGAME("Ben's Castle 1.5", "r:6e8d74405be3875fbb85cfe8c358e641", 187691),
 	FANGAMEN("Beyond Twilight Vale", "Beyond Twilight Vale 0.8", "ba67d80dc22d32f42446c891daf56fc8", 248089),
 	FANGAME("Brownie Saves the Day", "964d9cf87422c09c50fe294adf9a7571", 680145),
 	FANGAME("Brownie's Dream", "379f2c810efc18bad932049d331df1b6", 440448),
@@ -163,9 +164,11 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEN("Introduction to Gothic", "Intro to Gothic", "606eec666f0b2d767e4423747e740434", 207811),
 	FANGAMEN("Intruder", "INTRUDER 1.1", "7d819891784c79fef66ff3bd9d946d6d", 203105),
 	FANGAMEN("Intruder", "INTRUDER v1.2", "a7df3f4196e922153cd4345def774c29", 241007),
+	FANGAME("Intruder ][", "r:a35a5e110bb5e4a3a3b91db26deaa881", 697570),
 	FANGAME("Jack & Beanstalk Starring You", "2cd38be71d32892a83913c061a03aa19", 312646),
 	FANGAMEN("James Bond 007", "007", "2449924f2cb43454489a4ef91c0ee702", 50407),
 	FANGAME("Jamie the Demon Slayer", "ed054aa760569059c7ea554e822089a6", 232533),
+	FANGAME("Joe Wu Tse's Dungeon", "r:ea800af93f3886550d7c6c1687cfc9e1", 189764),
 	FANGAMEN("Journey", "The Journey 1.5", "4bbc047d21740f79f3f198628ba8f8bc", 665011),
 	FANGAMEN("Journey", "2 The Journey v1.5 (1992)", "4bbc047d21740f79f3f198628ba8f8bc", 665011), // alt version
 	FANGAMEN("Journey", "1 The Journey v1.6 (1992)", "cff7929abf284060c2070dfc1a2fa9cf", 765189),
@@ -269,6 +272,7 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAME("Schmoozer", "7bbb3d317d2074870c72b28d07984ef8", 221244),
 	FANGAME("Schmoozer", "db31e320f286a5f4ab2c70022d24dcb2", 221244), // alt version
 	FANGAME("sMythWorld", "8224b15a910c9e7515923107d138de77", 472101),
+	FANGAME("Sorceror's Quest (Demo)", "r:ee8efbccea0807674af2bb53e6edf338", 531622),
 	// ??? problems with dog bitmap?
 	FANGAMEN("Space Adventure", "SpaceAdventure", "3908c75d639989a28993c59931fbe1ec", 155100),
 	FANGAMEN("Space Adventure", "SpaceAdventure", "e38d524cb778ed0beb77ee9299f0ed45", 155100), // alt version
@@ -314,6 +318,7 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEN("Volcano", "Volcano 2.4", "d04eba23fe7d566fba0c9b34242d8f10", 227431),
 	FANGAMEN("Volcano II", "xn--Volcano II-0y6e", "7941c08b34bc2408b98c0004c7154aeb", 82735), // Original file name "Volcano II†"
 	FANGAMEN("Who Shot Brownie Dog?", "xn--Who Shot Brownie Dogv1.01-lba88n", "4e7a950567c73e98e4478e5683e943ca", 195923),
+	FANGAME("Widow's Sons", "r:1bfae1966acb268c947a4ba69e0f0693", 65796),
 	FANGAMEN("Wishing Well", "xn--Wishing Well -", "607a66461d65a73c1222d63dbde0175d", 103432), // original file name "Wishing Well "
 	FANGAMEN("Wishing Well", "xn--Wishing Well -", "5fcd9ac410bffd6369fb8723e86e6420", 103421), // original file name "Wishing Well ", alt version
 	FANGAME("The Wizard's Apprentice", "477c2d2d4672d968dfac1df2acef1dc9", 782568),
@@ -321,6 +326,7 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAME("Wizard's Warehouse", "d0ab2d4b0009eb61cbff925f8c382379", 158846), // alt version
 	FANGAMEN("Wizard's Warehouse 2", "WizWarehouse 2.0", "e67ac67548236a73897a85cd12b30492", 230614),
 	FANGAMEN("Wizard's Warehouse 2", "WizWarehouse 2.0", "418cc7a44477a4408ea365c8de86f577", 230614), // alt version
+	FANGAME("Zhore's Xers 2.3", "r:a4d6748fc48988bd6d216468a56b14d6", 484867),
 	FANGAME("ZikTuria", "a91559e6f04a67dcb9023a98a0faed77", 52716),
 	FANGAMEN("Zoony", "xn--Zoony-j64b", "3f7418ea8672ea558521c178188cfce5", 154734), // original file name "Zoonyâ„¢"
 	FANGAMEN("Zoony", "xn--Zoony-j64b", "55d3d42b5dca9630eb28ad464f343c67", 154734), // original file name "Zoonyâ„¢", alt version


Commit: 34a73670f33c75e864b743b8094275658de24722
    https://github.com/scummvm/scummvm/commit/34a73670f33c75e864b743b8094275658de24722
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-06-21T23:37:47+02:00

Commit Message:
WAGE: Fix startup crash in games with periodic sounds

Changed paths:
    engines/wage/detection_tables.h
    engines/wage/sound.cpp


diff --git a/engines/wage/detection_tables.h b/engines/wage/detection_tables.h
index 63029380a26..d955c458379 100644
--- a/engines/wage/detection_tables.h
+++ b/engines/wage/detection_tables.h
@@ -258,7 +258,6 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEN("Radical Castle", "Radical Castle 2.0", "ff1e2292dc49622b53dc04f6fa2e3577", 357418),
 	BIGGAME("raysmaze", "v1.5", "Ray's Maze1.5", "328096d3c7ccb838956c42b273f17b8e", 1408260),
 	BIGGAME("raysmaze", "v1.5/alt", "Ray's Maze1.5", "401cd46df5e49fa4171ed398b3e0227b", 1408260),
-	// ??? crash at startup
 	FANGAMEN("Realms & Reality", "Realms & Reality 1.2", "13ee1c40855bdf666edafcf554ec35d6", 492358),
 	FANGAME("Ray's World Builder Demo", "eafea10db54530ac6e6128be31741542", 115800),
 	FANGAME("Robot Planet", "1066f6b2892cda16c2f365d1ec97537c", 107089),
diff --git a/engines/wage/sound.cpp b/engines/wage/sound.cpp
index 027c12d6ae3..0886558ab2a 100644
--- a/engines/wage/sound.cpp
+++ b/engines/wage/sound.cpp
@@ -123,12 +123,12 @@ static void soundTimer(void *refCon) {
 		return;
 
 	if (engine->_soundQueue.empty()) {
-		if (scene->_soundType == Scene::PERIODIC && 0) {
+		if (scene->_soundType == Scene::PERIODIC) {
 			engine->_soundToPlay = scene->_soundName; // We cannot play sound here because that goes recursively
 
 			uint32 nextRun = 60000 / scene->_soundFrequency;
 			g_system->getTimerManager()->installTimerProc(&soundTimer, nextRun * 1000, scene, "WageEngine::soundTimer");
-		} else if (scene->_soundType == Scene::RANDOM || 1) {
+		} else if (scene->_soundType == Scene::RANDOM) {
 			for (int i = 0; i < scene->_soundFrequency * 5; i++)
 				engine->_soundQueue.push_back(g_system->getMillis() + engine->_rnd->getRandomNumber(60000));
 




More information about the Scummvm-git-logs mailing list