[Scummvm-git-logs] scummvm branch-2-8 -> 58f4eea8d5c04f6627783d234a69e5dc87801b3e

fracturehill noreply at scummvm.org
Sun Jan 7 20:58:01 UTC 2024


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

Summary:
72a319bc15 NANCY: Fix nancy1 telephone hints
6d4693bc46 NANCY: Show/hide virtual keyboard when saving
ff6b203abe NANCY: Show general keymaps in GMM
2bb5b95b04 NANCY: Split maze map key into separate Keymap
58f4eea8d5 NEWS: Mention Nancy fixes


Commit: 72a319bc158e5883d82898ec834cf5b27cd74a56
    https://github.com/scummvm/scummvm/commit/72a319bc158e5883d82898ec834cf5b27cd74a56
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2024-01-07T20:39:29+01:00

Commit Message:
NANCY: Fix nancy1 telephone hints

A fix for some broken nancy3 phone calls resulted in
the nancy1 hint system not working. This commit makes
sure the fix only applies to later games, which do not use
the HintSystem action record.

Changed paths:
    engines/nancy/action/puzzle/telephone.cpp


diff --git a/engines/nancy/action/puzzle/telephone.cpp b/engines/nancy/action/puzzle/telephone.cpp
index 30526200063..184ffb56aab 100644
--- a/engines/nancy/action/puzzle/telephone.cpp
+++ b/engines/nancy/action/puzzle/telephone.cpp
@@ -241,8 +241,10 @@ void Telephone::execute() {
 			break;
 		case kCall: {
 			PhoneCall &call = _calls[_selected];
-			if (call.sceneChange._sceneChange.sceneID == kNoScene) {
-				// Make sure we don't get stuck here. Happens in nancy3 when calling George's number
+
+			// Make sure we don't get stuck here. Happens in nancy3 when calling George's number
+			// Check ignored in nancy1 since the HintSystem AR is in the same scene as the Telephone
+			if (call.sceneChange._sceneChange.sceneID == kNoScene && g_nancy->getGameType() != kGameTypeNancy1) {
 				call.sceneChange._sceneChange = NancySceneState.getSceneInfo();
 			}
 


Commit: 6d4693bc46c318c08974e2ed97b94f783934486d
    https://github.com/scummvm/scummvm/commit/6d4693bc46c318c08974e2ed97b94f783934486d
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2024-01-07T20:39:29+01:00

Commit Message:
NANCY: Show/hide virtual keyboard when saving

Changed paths:
    engines/nancy/state/loadsave.cpp


diff --git a/engines/nancy/state/loadsave.cpp b/engines/nancy/state/loadsave.cpp
index 7346bbf269c..454fb840212 100644
--- a/engines/nancy/state/loadsave.cpp
+++ b/engines/nancy/state/loadsave.cpp
@@ -399,6 +399,7 @@ void LoadSaveMenu::enterFilename() {
 		_blinkingCursorOverlay.setVisible(true);
 		_nextBlink = g_nancy->getTotalPlayTime() + _loadSaveData->_blinkingTimeDelay;
 		_enteringNewState = false;
+		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
 	}
 
 	// Perform cursor blinking
@@ -436,6 +437,7 @@ void LoadSaveMenu::enterFilename() {
 		_state = kRun;
 		_enteringNewState = true;
 		g_nancy->_sound->playSound("BULS");
+		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
 		return;
 	}
 
@@ -444,6 +446,7 @@ void LoadSaveMenu::enterFilename() {
 		_state = kSave;
 		_enteringNewState = true;
 		g_nancy->_sound->playSound("BULS");
+		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
 		return;
 	}
 }


Commit: ff6b203abeb30acee1e17ebe3644d7974f7b03fb
    https://github.com/scummvm/scummvm/commit/ff6b203abeb30acee1e17ebe3644d7974f7b03fb
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2024-01-07T20:39:30+01:00

Commit Message:
NANCY: Show general keymaps in GMM

Fixed an issue in the nancy MetaEngine which caused
the general keymaps to not be shown alongside the
engine-specific ones.

Changed paths:
    engines/nancy/metaengine.cpp


diff --git a/engines/nancy/metaengine.cpp b/engines/nancy/metaengine.cpp
index 0f6b9a1b5b6..0d1f5cd5609 100644
--- a/engines/nancy/metaengine.cpp
+++ b/engines/nancy/metaengine.cpp
@@ -123,7 +123,7 @@ public:
 };
 
 Common::KeymapArray NancyMetaEngine::initKeymaps(const char *target) const {
-	Common::KeymapArray keymaps;
+	Common::KeymapArray keymaps = MetaEngine::initKeymaps(target);
 	Nancy::InputManager::initKeymaps(keymaps, target);
 	return keymaps;
 }


Commit: 2bb5b95b04e2fe8377b2b8014f3dd4ce09be2695
    https://github.com/scummvm/scummvm/commit/2bb5b95b04e2fe8377b2b8014f3dd4ce09be2695
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2024-01-07T20:39:30+01:00

Commit Message:
NANCY: Split maze map key into separate Keymap

The "Open map" action used in nancy3/nancy6's
RaycastPuzzle interfered with general keyboard input,
causing whichever key was bound to it to not fire.
Effectively, this meant that inputting the letter 'm' was
impossible. This commit makes sure the binding is
deactivated whenever text input is needed.

Changed paths:
    engines/nancy/action/puzzle/passwordpuzzle.cpp
    engines/nancy/action/puzzle/riddlepuzzle.cpp
    engines/nancy/input.cpp
    engines/nancy/input.h
    engines/nancy/state/loadsave.cpp


diff --git a/engines/nancy/action/puzzle/passwordpuzzle.cpp b/engines/nancy/action/puzzle/passwordpuzzle.cpp
index d538731ac3d..b77360cd971 100644
--- a/engines/nancy/action/puzzle/passwordpuzzle.cpp
+++ b/engines/nancy/action/puzzle/passwordpuzzle.cpp
@@ -92,6 +92,7 @@ void PasswordPuzzle::execute() {
 		init();
 		registerGraphics();
 		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
+		g_nancy->_input->enableSecondaryKeymaps(false);
 		_nextBlinkTime = g_nancy->getTotalPlayTime() + _cursorBlinkTime;
 		_state = kRun;
 		// fall through
@@ -180,6 +181,7 @@ void PasswordPuzzle::execute() {
 		}
 
 		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
+		g_nancy->_input->enableSecondaryKeymaps(true);
 		finishExecution();
 	}
 }
diff --git a/engines/nancy/action/puzzle/riddlepuzzle.cpp b/engines/nancy/action/puzzle/riddlepuzzle.cpp
index 25441773bef..09238414efd 100644
--- a/engines/nancy/action/puzzle/riddlepuzzle.cpp
+++ b/engines/nancy/action/puzzle/riddlepuzzle.cpp
@@ -145,6 +145,7 @@ void RiddlePuzzle::execute() {
 			if (!g_nancy->_sound->isSoundPlaying(_riddles[_riddleID].sound)) {
 				_solveState = kNotSolved;
 				g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
+				g_nancy->_input->enableSecondaryKeymaps(false);
 
 			}
 
@@ -257,6 +258,7 @@ void RiddlePuzzle::execute() {
 
 		sceneChange->execute();
 		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
+		g_nancy->_input->enableSecondaryKeymaps(true);
 		finishExecution();
 	}
 	}
diff --git a/engines/nancy/input.cpp b/engines/nancy/input.cpp
index b589ddfe375..8338a0e1c7d 100644
--- a/engines/nancy/input.cpp
+++ b/engines/nancy/input.cpp
@@ -23,6 +23,7 @@
 
 #include "backends/keymapper/action.h"
 #include "backends/keymapper/keymap.h"
+#include "backends/keymapper/keymapper.h"
 #include "backends/keymapper/standard-actions.h"
 
 #include "engines/nancy/nancy.h"
@@ -30,6 +31,8 @@
 
 namespace Nancy {
 
+static const char *mazeKeymapID = "nancy-maze";
+
 void InputManager::processEvents() {
 	using namespace Common;
 	Common::Event event;
@@ -155,10 +158,18 @@ void InputManager::forceCleanInput() {
 	_otherKbdInput.clear();
 }
 
+void InputManager::enableSecondaryKeymaps(bool enabled) {
+	Common::Keymapper *keymapper = g_nancy->getEventManager()->getKeymapper();
+	Common::Keymap *mazeKeymap = keymapper->getKeymap(mazeKeymapID);
+	if (mazeKeymap)
+		mazeKeymap->setEnabled(enabled);
+}
+
 void InputManager::initKeymaps(Common::KeymapArray &keymaps, const char *target) {
 	using namespace Common;
 	using namespace Nancy;
 
+	Common::String gameId = ConfMan.get("gameid", target);
 	Keymap *mainKeymap = new Keymap(Keymap::kKeymapTypeGame, "nancy-main", "Nancy Drew");
 	Action *act;
 
@@ -211,17 +222,20 @@ void InputManager::initKeymaps(Common::KeymapArray &keymaps, const char *target)
 	act->addDefaultInputMapping("ESCAPE");
 	act->addDefaultInputMapping("JOY_START");
 	mainKeymap->addAction(act);
+
+	keymaps.push_back(mainKeymap);
 	
-	Common::String t(target);
-	if (t.hasPrefix("nancy3") || t.hasPrefix("nancy6")) {
+	if (gameId == "nancy3" || gameId == "nancy6") {
+		Keymap *mazeKeymap = new Keymap(Keymap::kKeymapTypeGame, mazeKeymapID, "Nancy Drew - Maze");
+
 		act = new Action("RAYCM", _("Show/hide maze map"));
 		act->setCustomEngineActionEvent(kNancyActionShowRaycastMap);
 		act->addDefaultInputMapping("m");
 		act->addDefaultInputMapping("JOY_RIGHT_SHOULDER");
-		mainKeymap->addAction(act);
-	}
+		mazeKeymap->addAction(act);
 
-	keymaps.push_back(mainKeymap);
+		keymaps.push_back(mazeKeymap);
+	}
 }
 
 } // End of namespace Nancy
diff --git a/engines/nancy/input.h b/engines/nancy/input.h
index de816b4a597..b09b32c8904 100644
--- a/engines/nancy/input.h
+++ b/engines/nancy/input.h
@@ -93,6 +93,7 @@ public:
 	NancyInput getInput() const;
 	void forceCleanInput();
 	void setMouseInputEnabled(bool enabled) { _mouseEnabled = enabled; }
+	void enableSecondaryKeymaps(bool enabled);
 
 	static void initKeymaps(Common::KeymapArray &keymaps, const char *target);
 
diff --git a/engines/nancy/state/loadsave.cpp b/engines/nancy/state/loadsave.cpp
index 454fb840212..ccb3315f87d 100644
--- a/engines/nancy/state/loadsave.cpp
+++ b/engines/nancy/state/loadsave.cpp
@@ -69,6 +69,7 @@ void LoadSaveMenu::process() {
 	switch (_state) {
 	case kInit:
 		init();
+		g_nancy->_input->enableSecondaryKeymaps(false);
 		// fall through
 	case kRun:
 		run();
@@ -92,6 +93,7 @@ void LoadSaveMenu::process() {
 	// Make sure stop runs on the same frame
 	if (_state == kStop) {
 		stop();
+		g_nancy->_input->enableSecondaryKeymaps(true);
 	}
 
 	g_nancy->_cursorManager->setCursorType(CursorManager::kNormalArrow);


Commit: 58f4eea8d5c04f6627783d234a69e5dc87801b3e
    https://github.com/scummvm/scummvm/commit/58f4eea8d5c04f6627783d234a69e5dc87801b3e
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2024-01-07T21:57:18+01:00

Commit Message:
NEWS: Mention Nancy fixes

Changed paths:
    NEWS.md


diff --git a/NEWS.md b/NEWS.md
index 1b087701453..0f2ca8f330c 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -9,6 +9,12 @@ For a more comprehensive changelog of the latest experimental code, see:
  MM:
    - Enabled engine, allowing MM1 and Xeen to be compiled.
 
+ NANCY:
+   - Fixed the telephone hints in Secrets Can Kill.
+   - Fixed the 'M' keyboard key not working in Message in a Haunted Mansion.
+   - Allowed general keymaps to be shown in the engine Keymaps menu.
+   - Virtual keyboard now triggers when using the load/save menu.
+
  SCUMM:
    - Fix screen corruption (and sometimes even crashes) in Mac Loom and
      Indiana Jones and the Last Crusade when using menu shortcut keys.




More information about the Scummvm-git-logs mailing list