aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/riven_card.cpp
diff options
context:
space:
mode:
authorBastien Bouclet2018-06-18 21:33:56 +0200
committerBastien Bouclet2018-06-29 13:31:54 +0200
commitdc93e5bb6a220773add19bd0eb04f0ffca685279 (patch)
tree86dfca70e9186dd430cf46f6f91dc2c0e7bbc5b1 /engines/mohawk/riven_card.cpp
parent86e0089cc6233964ca8ac858f627e0572078b199 (diff)
downloadscummvm-rg350-dc93e5bb6a220773add19bd0eb04f0ffca685279.tar.gz
scummvm-rg350-dc93e5bb6a220773add19bd0eb04f0ffca685279.tar.bz2
scummvm-rg350-dc93e5bb6a220773add19bd0eb04f0ffca685279.zip
MOHAWK: RIVEN: Add more options to the main menu
Diffstat (limited to 'engines/mohawk/riven_card.cpp')
-rw-r--r--engines/mohawk/riven_card.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/engines/mohawk/riven_card.cpp b/engines/mohawk/riven_card.cpp
index ffbbc69cae..304f596780 100644
--- a/engines/mohawk/riven_card.cpp
+++ b/engines/mohawk/riven_card.cpp
@@ -396,15 +396,31 @@ void RivenCard::applyPropertiesPatchE2E(uint32 globalId) {
// The main menu in the Myst 25th anniversary version is patched to include new items:
// - Save game
if (globalId == 0xE2E) {
- addMenuHotspot(23, Common::Rect(485, 283, 602, 300), 3, RivenStacks::ASpit::kExternalRestoreGame, "xarestoregame");
- addMenuHotspot(24, Common::Rect(485, 311, 602, 326), 4, RivenStacks::ASpit::kExternalSaveGame, "xaSaveGame");
+ moveHotspot( 22, Common::Rect(485, 175, 602, 190)); // Setup
+ moveHotspot( 16, Common::Rect(485, 201, 602, 216)); // New game
+ addMenuHotspot(23, Common::Rect(485, 227, 602, 242), 3, RivenStacks::ASpit::kExternalRestoreGame, "xarestoregame");
+ addMenuHotspot(24, Common::Rect(485, 256, 602, 271), 4, RivenStacks::ASpit::kExternalSaveGame, "xaSaveGame");
+ addMenuHotspot(25, Common::Rect(485, 283, 602, 300), 5, RivenStacks::ASpit::kExternalResume, "xaResumeGame");
+ addMenuHotspot(26, Common::Rect(485, 309, 602, 326), 6, RivenStacks::ASpit::kExternalOptions, "xaOptions");
+ addMenuHotspot(27, Common::Rect(485, 335, 602, 352), 7, RivenStacks::ASpit::kExternalQuit, "xademoquit");
}
}
+void RivenCard::moveHotspot(uint16 blstId, const Common::Rect &position) {
+ RivenHotspot *hotspot = getHotspotByBlstId(blstId);
+ if (!hotspot) {
+ warning("Could not find hotspot with blstId %d", blstId);
+ return;
+ }
+
+ hotspot->setRect(position);
+}
+
void RivenCard::addMenuHotspot(uint16 blstId, const Common::Rect &position, uint16 index,
uint16 externalCommandNameId, const char *externalCommandName) {
RivenHotspot *existingHotspot = getHotspotByBlstId(blstId);
if (existingHotspot) {
+ moveHotspot(blstId, position);
return; // Don't add the hotspot if it already exists
}