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

moralrecordings noreply at scummvm.org
Wed Jul 15 15:49:31 UTC 2026


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

Summary:
c03b37a79f FOOL: Fix typo in puzzleCompletionStatus check
043e02da33 FOOL: Replace entire menu if item slot zero gets defined
e5055b7e7a FOOL: Add basic custom keymap


Commit: c03b37a79fe34312760ddddf414f7f82e9c1bf1a
    https://github.com/scummvm/scummvm/commit/c03b37a79fe34312760ddddf414f7f82e9c1bf1a
Author: Scott Percival (code at moral.net.au)
Date: 2026-07-15T23:48:16+08:00

Commit Message:
FOOL: Fix typo in puzzleCompletionStatus check

Changed paths:
    engines/fool/fool_thoth.cpp


diff --git a/engines/fool/fool_thoth.cpp b/engines/fool/fool_thoth.cpp
index c087f50fe18..5247297492d 100644
--- a/engines/fool/fool_thoth.cpp
+++ b/engines/fool/fool_thoth.cpp
@@ -1072,7 +1072,7 @@ void FoolGame::hermitScreenZoom() {
 
 void FoolGame::hermitScreenBehold() {
 	// 140:28bc
-	if (_puzzleCompletionStatus[0x68] > 4) {
+	if (_puzzleCompletionStatus[0x34] > 4) {
 		waitForMouseUp();
 		menuClickMessage();
 		flashRect(0x29, 0x37, 0x142, 0x1c9, 0x96);


Commit: 043e02da331d3cb7061f7ac737f402708dd3e819
    https://github.com/scummvm/scummvm/commit/043e02da331d3cb7061f7ac737f402708dd3e819
Author: Scott Percival (code at moral.net.au)
Date: 2026-07-15T23:48:16+08:00

Commit Message:
FOOL: Replace entire menu if item slot zero gets defined

Fixes menu change between "The 2 Enchantments" and "The Last
Enchantment" in the High Priestess challenge.

Changed paths:
    engines/fool/zbasic.cpp


diff --git a/engines/fool/zbasic.cpp b/engines/fool/zbasic.cpp
index 437c08da36b..f926774470f 100644
--- a/engines/fool/zbasic.cpp
+++ b/engines/fool/zbasic.cpp
@@ -328,7 +328,13 @@ uint32 ZBasic::mem(int16 index) {
 
 void ZBasic::menu(uint16 menuNo, uint16 itemNo, uint16 state, const Common::U32String &title) {
 	debugC(5, kDebugLoading, "ZBasic::menu: menuNo %d, itemNo %d, state %d, title \"%s\"", menuNo, itemNo, state, title.encode().c_str());
-	Graphics::MacToolbox::MenuHandle handle = _toolbox->GetMHandle(menuNo);
+	Graphics::MacToolbox::MenuHandle handle;
+	// if we define itemNo = 0, throw out the old menu first
+	if (itemNo == 0) {
+		_toolbox->DeleteMenu(menuNo);
+	} else {
+		handle = _toolbox->GetMHandle(menuNo);
+	}
 	if (!handle) {
 		handle = _toolbox->NewMenu(menuNo, Common::U32String());
 	}


Commit: e5055b7e7aaebf89473465c0c4f780f5f21e2707
    https://github.com/scummvm/scummvm/commit/e5055b7e7aaebf89473465c0c4f780f5f21e2707
Author: Scott Percival (code at moral.net.au)
Date: 2026-07-15T23:48:16+08:00

Commit Message:
FOOL: Add basic custom keymap

Needed as the new hotspot display feature in the default keymappings
will eat all uses of the letter H.

Changed paths:
    engines/fool/metaengine.cpp


diff --git a/engines/fool/metaengine.cpp b/engines/fool/metaengine.cpp
index 674225b1f32..d495ddce376 100644
--- a/engines/fool/metaengine.cpp
+++ b/engines/fool/metaengine.cpp
@@ -19,6 +19,9 @@
  *
  */
 
+#include "backends/keymapper/action.h"
+#include "backends/keymapper/keymap.h"
+#include "backends/keymapper/standard-actions.h"
 #include "common/punycode.h"
 #include "common/savefile.h"
 #include "common/translation.h"
@@ -64,6 +67,7 @@ public:
 	bool removeSaveState(const char *target, int slot) const override;
 
 	const ADExtraGuiOptionsMap *getAdvancedExtraGuiOptions() const override;
+	Common::KeymapArray initKeymaps(const char *target) const override;
 };
 
 const char *FoolMetaEngine::getName() const {
@@ -123,6 +127,62 @@ bool FoolMetaEngine::removeSaveState(const char *target, int slot) const {
 	return g_system->getSavefileManager()->removeSavefile(getSavegameFile(slot, target));
 }
 
+Common::KeymapArray FoolMetaEngine::initKeymaps(const char *target) const {
+
+	Common::String gameId = ConfMan.get("gameid", target);
+	Common::Keymap *engineKeyMap = new Common::Keymap(Common::Keymap::kKeymapTypeGame, "fool-default", _("Fool's Errand keymappings"));
+
+	Common::Action *act;
+
+	act = new Common::Action(Common::kStandardActionLeftClick, _("Left click"));
+	act->setLeftClickEvent();
+	act->addDefaultInputMapping("MOUSE_LEFT");
+	act->addDefaultInputMapping("JOY_A");
+	engineKeyMap->addAction(act);
+
+	act = new Common::Action(Common::kStandardActionMiddleClick, _("Middle click"));
+	act->addDefaultInputMapping("MOUSE_MIDDLE");
+	act->setMiddleClickEvent();
+	engineKeyMap->addAction(act);
+
+	act = new Common::Action(Common::kStandardActionRightClick, _("Right click"));
+	act->setRightClickEvent();
+	act->addDefaultInputMapping("MOUSE_RIGHT");
+	act->addDefaultInputMapping("JOY_B");
+	engineKeyMap->addAction(act);
+
+	act = new Common::Action("PIND", _("Predictive input dialog"));
+	act->setEvent(Common::EVENT_PREDICTIVE_DIALOG);
+	act->allowKbdRepeats();
+	engineKeyMap->addAction(act);
+
+	act = new Common::Action(Common::kStandardActionMoveUp, _("Up"));
+	act->setKeyEvent(Common::KEYCODE_KP8);
+	act->addDefaultInputMapping("JOY_UP");
+	act->allowKbdRepeats();
+	engineKeyMap->addAction(act);
+
+	act = new Common::Action(Common::kStandardActionMoveDown, _("Down"));
+	act->setKeyEvent(Common::KEYCODE_KP2);
+	act->addDefaultInputMapping("JOY_DOWN");
+	act->allowKbdRepeats();
+	engineKeyMap->addAction(act);
+
+	act = new Common::Action(Common::kStandardActionMoveLeft, _("Left"));
+	act->setKeyEvent(Common::KEYCODE_KP4);
+	act->addDefaultInputMapping("JOY_LEFT");
+	act->allowKbdRepeats();
+	engineKeyMap->addAction(act);
+
+	act = new Common::Action(Common::kStandardActionMoveRight, _("Right"));
+	act->setKeyEvent(Common::KEYCODE_KP6);
+	act->addDefaultInputMapping("JOY_RIGHT");
+	act->allowKbdRepeats();
+	engineKeyMap->addAction(act);
+
+	return Common::Keymap::arrayOf(engineKeyMap);
+}
+
 
 #if PLUGIN_ENABLED_DYNAMIC(FOOL)
 REGISTER_PLUGIN_DYNAMIC(FOOL, PLUGIN_TYPE_ENGINE, FoolMetaEngine);




More information about the Scummvm-git-logs mailing list