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

bluegr noreply at scummvm.org
Thu Jul 18 00:46:47 UTC 2024


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

Summary:
724d8b3654 DGDS: Handle spaces in ADS file names
b3d55de276 DGDS: Add handling for the HoC train mini-game menu


Commit: 724d8b3654f14c50870b295f45534c427696a0b1
    https://github.com/scummvm/scummvm/commit/724d8b3654f14c50870b295f45534c427696a0b1
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2024-07-18T03:45:56+03:00

Commit Message:
DGDS: Handle spaces in ADS file names

After the train sequence in HoC, game scripts attempt to
load a file with a single space for a name

Changed paths:
    engines/dgds/dgds.cpp


diff --git a/engines/dgds/dgds.cpp b/engines/dgds/dgds.cpp
index 2a70a3eed5d..7a401768177 100644
--- a/engines/dgds/dgds.cpp
+++ b/engines/dgds/dgds.cpp
@@ -198,8 +198,11 @@ bool DgdsEngine::changeScene(int sceneNum) {
 	if (_scene->getMagic() != _gdsScene->getMagic())
 		error("Scene %s magic does (0x%08x) not match GDS magic (0x%08x)", sceneFile.c_str(), _scene->getMagic(), _gdsScene->getMagic());
 
-	if (!_scene->getAdsFile().empty())
-		_adsInterp->load(_scene->getAdsFile());
+	Common::String adsFile = _scene->getAdsFile();
+	adsFile.trim();
+
+	if (!adsFile.empty())
+		_adsInterp->load(adsFile);
 	else
 		_adsInterp->unload();
 


Commit: b3d55de276851f8c0adef7ebaad55485b1ffc9c1
    https://github.com/scummvm/scummvm/commit/b3d55de276851f8c0adef7ebaad55485b1ffc9c1
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2024-07-18T03:46:37+03:00

Commit Message:
DGDS: Add handling for the HoC train mini-game menu

Changed paths:
    engines/dgds/menu.cpp
    engines/dgds/scene.cpp
    engines/dgds/scene.h


diff --git a/engines/dgds/menu.cpp b/engines/dgds/menu.cpp
index fdb7550d307..8ab80354c35 100644
--- a/engines/dgds/menu.cpp
+++ b/engines/dgds/menu.cpp
@@ -34,6 +34,7 @@
 #include "dgds/menu.h"
 #include "dgds/music.h"
 #include "dgds/request.h"
+#include "dgds/scene.h"
 #include "dgds/sound.h"
 
 namespace Dgds {
@@ -114,9 +115,9 @@ enum MenuButtonIds {
 	kMenuGameOverRestart = 168,
 	kMenuGameOverRestore = 170,
 
-	// Tank menu in Heart of China
-	kMenuTankSkipArcade = 153,
-	kMenuTankPlayArcade = 154,
+	// Tank/train menu in Heart of China
+	kMenuTankTrainSkipArcade = 153,
+	kMenuTankTrainPlayArcade = 154,
 };
 
 Menu::Menu() : _curMenu(kMenuNone), _dragGadget(nullptr), _selectedItem(0), _numSelectable(0) {
@@ -369,6 +370,7 @@ void Menu::onMouseLUp(const Common::Point &mouse) {
 
 void Menu::handleClick(const Common::Point &mouse) {
 	DgdsEngine *engine = static_cast<DgdsEngine *>(g_engine);
+	int currentScene = engine->getScene()->getNum();
 	Gadget *gadget = getClickedMenuItem(mouse);
 	int16 clickedMenuItem = gadget->_gadgetNo;
 
@@ -493,13 +495,19 @@ void Menu::handleClick(const Common::Point &mouse) {
 		drawMenu(_curMenu);
 		break;
 	}
-	case kMenuTankSkipArcade:
+	case kMenuTankTrainSkipArcade:
 		hideMenu();
-		engine->changeScene(12);
+		if (currentScene == 73)
+			engine->changeScene(12);	// skip tank mini-game
+		else if (currentScene == 84)
+			engine->changeScene(106);	// skip train mini-game
 		break;
-	case kMenuTankPlayArcade:
+	case kMenuTankTrainPlayArcade:
 		// TODO
-		warning("Play tank mini-game");
+		if (currentScene == 73)
+			warning("Play tank mini-game");
+		else if (currentScene == 84)
+			warning("Play train mini-game");
 		drawMenu(_curMenu);
 		break;
 	default:
diff --git a/engines/dgds/scene.cpp b/engines/dgds/scene.cpp
index 9f43bed1d8a..d6a41f44e17 100644
--- a/engines/dgds/scene.cpp
+++ b/engines/dgds/scene.cpp
@@ -756,6 +756,7 @@ bool Scene::runChinaOp(const SceneOp &op) {
 		engine->setMenuToTrigger(kMenuSkipPlayIntro);
 		break;
 	case kSceneOpOpenChinaTankMenu:
+	case kSceneOpOpenChinaTrainMenu:
 		engine->setMenuToTrigger(kMenuSkipArcade);
 		break;
 	case kSceneOpShellGame:
diff --git a/engines/dgds/scene.h b/engines/dgds/scene.h
index 6f7ccb0bef7..842938d91a2 100644
--- a/engines/dgds/scene.h
+++ b/engines/dgds/scene.h
@@ -126,6 +126,7 @@ enum SceneOpCode {
 	// China-specific opcodes
 	kSceneOpOpenChinaTankMenu = 102,
 	kSceneOpShellGame = 110,
+	kSceneOpOpenChinaTrainMenu = 113,
 	kSceneOpOpenChinaOpenGameOverMenu = 114,	// args: none.
 	kSceneOpOpenChinaOpenSkipCreditsMenu = 115,	// args: none.
 	kSceneOpOpenChinaStartIntro = 116,	// args: none.




More information about the Scummvm-git-logs mailing list