[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