[Scummvm-git-logs] scummvm master -> 8d96fef0abfcc488b71a9f5c978e9346de7159a0

dreammaster noreply at scummvm.org
Sat Apr 8 04:02:34 UTC 2023


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

Summary:
1fab07fd7c MM: MM1: Improve No response for Yes/No query messages
014852c0eb MM: MM1: Update map specials y/n key handlers
8d96fef0ab MM: MM1: Map 14 fixes


Commit: 1fab07fd7cc623d9bb5b03fb18b48893c8cfda58
    https://github.com/scummvm/scummvm/commit/1fab07fd7cc623d9bb5b03fb18b48893c8cfda58
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-04-07T21:02:25-07:00

Commit Message:
MM: MM1: Improve No response for Yes/No query messages

Changed paths:
    engines/mm/mm1/maps/map15.cpp
    engines/mm/mm1/messages.cpp
    engines/mm/mm1/messages.h
    engines/mm/mm1/views/game_messages.cpp
    engines/mm/mm1/views/game_messages.h
    engines/mm/mm1/views_enh/game_messages.cpp
    engines/mm/mm1/views_enh/game_messages.h


diff --git a/engines/mm/mm1/maps/map15.cpp b/engines/mm/mm1/maps/map15.cpp
index e43cf70c7ee..bb3426edbed 100644
--- a/engines/mm/mm1/maps/map15.cpp
+++ b/engines/mm/mm1/maps/map15.cpp
@@ -168,25 +168,20 @@ void Map15::special05() {
 void Map15::special06() {
 	g_maps->clearSpecial();
 	send(SoundMessage(STRING["maps.map15.percella1"],
-		[](const Common::KeyState &ks) {
-			if (ks.keycode == Common::KEYCODE_y) {
-				g_events->close();
-				g_globals->_treasure._items[2] = KINGS_PASS_ID;
-				g_events->addAction(KEYBIND_SEARCH);
-
-			} else if (ks.keycode == Common::KEYCODE_n) {
-				g_events->close();
-
-				SoundMessage msg(
-					STRING["maps.map15.percella2"],
-					[]() {
-						g_maps->_mapPos = Common::Point(14, 2);
-						g_maps->_currentMap->updateGame();
-					}
-				);
-				msg._delaySeconds = 5;
-				g_events->send(msg);
-			}
+		[]() {
+			g_globals->_treasure._items[2] = KINGS_PASS_ID;
+			g_events->addAction(KEYBIND_SEARCH);
+		},
+		[]() {
+			SoundMessage msg(
+				STRING["maps.map15.percella2"],
+				[]() {
+					g_maps->_mapPos = Common::Point(14, 2);
+					g_maps->_currentMap->updateGame();
+				}
+			);
+			msg._delaySeconds = 5;
+			g_events->send(msg);
 		}
 	));
 }
diff --git a/engines/mm/mm1/messages.cpp b/engines/mm/mm1/messages.cpp
index 19eed73d215..082778db7b5 100644
--- a/engines/mm/mm1/messages.cpp
+++ b/engines/mm/mm1/messages.cpp
@@ -60,19 +60,22 @@ InfoMessage::InfoMessage(int x1, int y1, const Common::String &str1,
 	_lines.push_back(Line(x2, y2, str2));
 }
 
-InfoMessage::InfoMessage(const Common::String &str, YNCallback ynCallback) :
-		Message(), _ynCallback(ynCallback) {
+InfoMessage::InfoMessage(const Common::String &str, YNCallback yCallback,
+			YNCallback nCallback) :
+		Message(), _yCallback(yCallback), _nCallback(nCallback) {
 	_lines.push_back(str);
 }
 
-InfoMessage::InfoMessage(int x, int y, const Common::String &str, YNCallback ynCallback) :
-		Message(), _ynCallback(ynCallback) {
+InfoMessage::InfoMessage(int x, int y, const Common::String &str,
+		YNCallback yCallback, YNCallback nCallback) :
+		Message(), _yCallback(yCallback), _nCallback(nCallback) {
 	_lines.push_back(Line(x, y, str));
 }
 
 InfoMessage::InfoMessage(int x1, int y1, const Common::String &str1,
-		int x2, int y2, const Common::String &str2, YNCallback ynCallback) :
-		Message(), _ynCallback(ynCallback) {
+		int x2, int y2, const Common::String &str2,
+		YNCallback yCallback, YNCallback nCallback) :
+		Message(), _yCallback(yCallback), _nCallback(nCallback) {
 	_lines.push_back(Line(x1, y1, str1));
 	_lines.push_back(Line(x2, y2, str2));
 }
@@ -96,7 +99,8 @@ InfoMessage::InfoMessage(int x1, int y1, const Common::String &str1,
 
 InfoMessage &InfoMessage::operator=(const InfoMessage &src) {
 	_lines = src._lines;
-	_ynCallback = src._ynCallback;
+	_yCallback = src._yCallback;
+	_nCallback = src._nCallback;
 	_keyCallback = src._keyCallback;
 	_largeMessage = src._largeMessage;
 	_sound = src._sound;
@@ -114,8 +118,8 @@ SoundMessage::SoundMessage(const Common::String &str, TextAlign align) :
 }
 
 SoundMessage::SoundMessage(const Common::String &str,
-	YNCallback ynCallback) :
-	InfoMessage(0, g_engine->isEnhanced() ? 0 : 1, str, ynCallback) {
+	YNCallback yCallback, YNCallback nCallback) :
+	InfoMessage(0, g_engine->isEnhanced() ? 0 : 1, str, yCallback, nCallback) {
 	_sound = true;
 }
 
diff --git a/engines/mm/mm1/messages.h b/engines/mm/mm1/messages.h
index 84a3c8fd0ce..9535fcb5780 100644
--- a/engines/mm/mm1/messages.h
+++ b/engines/mm/mm1/messages.h
@@ -128,9 +128,10 @@ typedef void (*YNCallback)();
 typedef void (*KeyCallback)(const Common::KeyState &keyState);
 struct InfoMessage : public Message {
 	LineArray _lines;
-	YNCallback _ynCallback = nullptr;
+	YNCallback _yCallback = nullptr;
+	YNCallback _nCallback = nullptr;
 	KeyCallback _keyCallback = nullptr;
-	YNCallback &_timeoutCallback = _ynCallback;
+	YNCallback &_timeoutCallback = _yCallback;
 	bool _largeMessage = false;
 	bool _sound = false;
 	int _delaySeconds = 0;
@@ -142,12 +143,12 @@ struct InfoMessage : public Message {
 		int x2, int y2, const Common::String &str2);
 
 	InfoMessage(const Common::String &str,
-		YNCallback ynCallback);
+		YNCallback yCallback, YNCallback nCallback = nullptr);
 	InfoMessage(int x, int y, const Common::String &str,
-		YNCallback ynCallback);
+		YNCallback yCallback, YNCallback nCallback = nullptr);
 	InfoMessage(int x1, int y1, const Common::String &str1,
 		int x2, int y2, const Common::String &str2,
-		YNCallback ynCallback);
+		YNCallback ynCallback, YNCallback nCallback = nullptr);
 
 	InfoMessage(const Common::String &str,
 		KeyCallback keyCallback);
@@ -171,14 +172,15 @@ public:
 		int x2, int y2, const Common::String &str2) :
 		InfoMessage(x1, y1, str1, x2, y2, str2) { _sound = true; }
 
-	SoundMessage(const Common::String &str, YNCallback ynCallback);
+	SoundMessage(const Common::String &str, YNCallback yCallback,
+		YNCallback nCallback = nullptr);
 	SoundMessage(int x, int y, const Common::String &str,
-		YNCallback ynCallback) :
-		InfoMessage(x, y, str, ynCallback) { _sound = true; }
+		YNCallback yCallback, YNCallback nCallback = nullptr) :
+		InfoMessage(x, y, str, yCallback, nCallback) { _sound = true; }
 	SoundMessage(int x1, int y1, const Common::String &str1,
 		int x2, int y2, const Common::String &str2,
-		YNCallback ynCallback) :
-		InfoMessage(x1, y1, str1, x2, y2, str2, ynCallback) { _sound = true; }
+		YNCallback yCallback, YNCallback nCallback = nullptr) :
+		InfoMessage(x1, y1, str1, x2, y2, str2, yCallback, nCallback) { _sound = true; }
 
 	SoundMessage(const Common::String &str, KeyCallback keyCallback);
 	SoundMessage(int x, int y, const Common::String &str,
diff --git a/engines/mm/mm1/views/game_messages.cpp b/engines/mm/mm1/views/game_messages.cpp
index 98cb0d0ebb2..56e523f0d42 100644
--- a/engines/mm/mm1/views/game_messages.cpp
+++ b/engines/mm/mm1/views/game_messages.cpp
@@ -57,13 +57,14 @@ void GameMessages::draw() {
 }
 
 bool GameMessages::msgInfo(const InfoMessage &msg) {
-	if (msg._ynCallback || msg._keyCallback ||
+	if (msg._yCallback || msg._keyCallback ||
 			g_globals->_party.isPartyDead()) {
 		addView(this);
 	}
 
 	_lines = msg._lines;
-	_ynCallback = msg._ynCallback;
+	_yCallback = msg._yCallback;
+	_nCallback = msg._nCallback;
 	_keyCallback = msg._keyCallback;
 
 	if (msg._largeMessage)
@@ -97,9 +98,11 @@ bool GameMessages::msgKeypress(const KeypressMessage &msg) {
 			_keyCallback(msg);
 		} else if (msg.keycode == Common::KEYCODE_n) {
 			close();
+			if (_nCallback)
+				_nCallback();
 		} else if (msg.keycode == Common::KEYCODE_y) {
 			close();
-			_ynCallback();
+			_yCallback();
 		}
 
 		return true;
@@ -127,14 +130,16 @@ bool GameMessages::msgAction(const ActionMessage &msg) {
 				_keyCallback(Common::KeyState(Common::KEYCODE_ESCAPE));
 			} else {
 				close();
+				if (_nCallback)
+					_nCallback();
 			}
 			return true;
 		case KEYBIND_SELECT:
 			if (_keyCallback) {
 				_keyCallback(Common::KeyState(Common::KEYCODE_RETURN));
-			} else if (_ynCallback) {
+			} else if (_yCallback) {
 				close();
-				_ynCallback();
+				_yCallback();
 			}
 			return true;
 		default:
@@ -149,10 +154,10 @@ bool GameMessages::msgAction(const ActionMessage &msg) {
 }
 
 void GameMessages::timeout() {
-	if (_ynCallback) {
+	if (_yCallback) {
 		// _ynCallback is also used for timeout callbacks
 		close();
-		_ynCallback();
+		_yCallback();
 	}
 }
 
diff --git a/engines/mm/mm1/views/game_messages.h b/engines/mm/mm1/views/game_messages.h
index e9d52175116..202bbda60b5 100644
--- a/engines/mm/mm1/views/game_messages.h
+++ b/engines/mm/mm1/views/game_messages.h
@@ -32,7 +32,8 @@ namespace Views {
 class GameMessages : public TextView {
 private:
 	Common::Array<Line> _lines;
-	YNCallback _ynCallback = nullptr;
+	YNCallback _yCallback = nullptr;
+	YNCallback _nCallback = nullptr;
 	KeyCallback _keyCallback = nullptr;
 public:
 	GameMessages(UIElement *owner);
diff --git a/engines/mm/mm1/views_enh/game_messages.cpp b/engines/mm/mm1/views_enh/game_messages.cpp
index 7dd337f29cb..8fa455c96ae 100644
--- a/engines/mm/mm1/views_enh/game_messages.cpp
+++ b/engines/mm/mm1/views_enh/game_messages.cpp
@@ -52,14 +52,14 @@ GameMessages::GameMessages() : ScrollText("GameMessages") {
 void GameMessages::draw() {
 	ScrollText::draw();
 
-	if (_ynCallback && !isDelayActive()) {
+	if (_yCallback && !isDelayActive()) {
 		_yesNo.resetSelectedButton();
 		_yesNo.draw();
 	}
 }
 
 bool GameMessages::msgFocus(const FocusMessage &msg) {
-	MetaEngine::setKeybindingMode(_ynCallback || _keyCallback ?
+	MetaEngine::setKeybindingMode(_yCallback || _keyCallback ?
 		KeybindingMode::KBMODE_MENUS :
 		KeybindingMode::KBMODE_NORMAL);
 	return true;
@@ -70,7 +70,8 @@ bool GameMessages::msgInfo(const InfoMessage &msg) {
 	g_events->redraw();
 	g_events->draw();
 
-	_ynCallback = msg._ynCallback;
+	_yCallback = msg._yCallback;
+	_nCallback = msg._nCallback;
 	_keyCallback = msg._keyCallback;
 
 	// Add the view
@@ -96,14 +97,14 @@ bool GameMessages::msgKeypress(const KeypressMessage &msg) {
 	if (_keyCallback) {
 		_keyCallback(msg);
 
-	} else if (_ynCallback) {
+	} else if (_yCallback) {
 		if (msg.keycode == Common::KEYCODE_n) {
 			close();
-			g_events->drawElements();
+			if (_nCallback)
+				_nCallback();
 		} else if (msg.keycode == Common::KEYCODE_y) {
 			close();
-			g_events->drawElements();
-			_ynCallback();
+			_yCallback();
 		}
 	} else {
 		// Displayed message, any keypress closes the window
@@ -118,14 +119,15 @@ bool GameMessages::msgKeypress(const KeypressMessage &msg) {
 }
 
 bool GameMessages::msgAction(const ActionMessage &msg) {
-	if (_ynCallback || _keyCallback) {
+	if (_yCallback || _keyCallback) {
 		switch (msg._action) {
 		case KEYBIND_ESCAPE:
 			if (_keyCallback) {
 				_keyCallback(Common::KeyState(Common::KEYCODE_ESCAPE));
 			} else {
 				close();
-				g_events->drawElements();
+				if (_nCallback)
+					_nCallback();
 			}
 			return true;
 		case KEYBIND_SELECT:
@@ -133,8 +135,7 @@ bool GameMessages::msgAction(const ActionMessage &msg) {
 				_keyCallback(Common::KeyState(Common::KEYCODE_RETURN));
 			} else {
 				close();
-				g_events->drawElements();
-				_ynCallback();
+				_yCallback();
 			}
 			return true;
 		default:
@@ -152,14 +153,14 @@ bool GameMessages::msgAction(const ActionMessage &msg) {
 
 bool GameMessages::msgMouseDown(const MouseDownMessage &msg) {
 	// If yes/no prompting, also pass events to buttons view
-	if (_ynCallback)
+	if (_yCallback)
 		return send("MessagesYesNo", msg);
 	return false;
 }
 
 bool GameMessages::msgMouseUp(const MouseUpMessage &msg) {
 	// If yes/no prompting, also pass events to buttons view
-	if (_ynCallback)
+	if (_yCallback)
 		return send("MessagesYesNo", msg);
 	return false;
 }
diff --git a/engines/mm/mm1/views_enh/game_messages.h b/engines/mm/mm1/views_enh/game_messages.h
index a5bb46fb90b..4fb21fd18d5 100644
--- a/engines/mm/mm1/views_enh/game_messages.h
+++ b/engines/mm/mm1/views_enh/game_messages.h
@@ -36,9 +36,10 @@ class GameMessages : public ScrollText {
 		bool msgKeypress(const KeypressMessage &msg) override;
 	};
 private:
-	YNCallback _ynCallback = nullptr;
+	YNCallback _yCallback = nullptr;
+	YNCallback _nCallback = nullptr;
 	KeyCallback _keyCallback = nullptr;
-	YNCallback &_timeoutCallback = _ynCallback;
+	YNCallback &_timeoutCallback = _yCallback;
 	YesNo _yesNo;
 public:
 	GameMessages();


Commit: 014852c0eb25583898b137518663438bd63b9eac
    https://github.com/scummvm/scummvm/commit/014852c0eb25583898b137518663438bd63b9eac
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-04-07T21:02:25-07:00

Commit Message:
MM: MM1: Update map specials y/n key handlers

Changed paths:
    engines/mm/mm1/maps/map05.cpp
    engines/mm/mm1/maps/map10.cpp
    engines/mm/mm1/maps/map14.cpp
    engines/mm/mm1/maps/map14.h
    engines/mm/mm1/maps/map18.cpp
    engines/mm/mm1/maps/map20.cpp
    engines/mm/mm1/maps/map21.cpp
    engines/mm/mm1/maps/map29.cpp
    engines/mm/mm1/maps/map32.cpp


diff --git a/engines/mm/mm1/maps/map05.cpp b/engines/mm/mm1/maps/map05.cpp
index ef16142dfbf..613593825d7 100644
--- a/engines/mm/mm1/maps/map05.cpp
+++ b/engines/mm/mm1/maps/map05.cpp
@@ -129,23 +129,21 @@ void Map05::special08() {
 void Map05::special09() {
 	send(SoundMessage(
 		0, 1, STRING["maps.map05.arena_inside"],
-		[](const Common::KeyState &keyState) {
+		[]() {
 			Map05 &map = *static_cast<Map05 *>(g_maps->_currentMap);
-			if (keyState.keycode == Common::KEYCODE_y) {
-				g_events->close();
-				map[MAP_47] = 2;
-				map[MAP_33] = 6;
-				map[MAP_MAX_MONSTERS] = 15;
-				g_globals->_encounters._encounterType = Game::FORCE_SURPRISED;
-				g_globals->_encounters.execute();
-
-			} else if (keyState.keycode == Common::KEYCODE_n) {
-				g_events->close();
-				map[MAP_47] = 1;
-				map[MAP_33] = 4;
-				map[MAP_MAX_MONSTERS] = 10;
-				g_globals->_treasure.clear();
-			}
+			map[MAP_47] = 2;
+			map[MAP_33] = 6;
+			map[MAP_MAX_MONSTERS] = 15;
+			g_globals->_encounters._encounterType = Game::FORCE_SURPRISED;
+			g_globals->_encounters.execute();
+		},
+		[]() {
+			Map05 &map = *static_cast<Map05 *>(g_maps->_currentMap);
+			g_events->close();
+			map[MAP_47] = 1;
+			map[MAP_33] = 4;
+			map[MAP_MAX_MONSTERS] = 10;
+			g_globals->_treasure.clear();
 		}
 	));
 }
diff --git a/engines/mm/mm1/maps/map10.cpp b/engines/mm/mm1/maps/map10.cpp
index 2280433f7d4..87310b31b1b 100644
--- a/engines/mm/mm1/maps/map10.cpp
+++ b/engines/mm/mm1/maps/map10.cpp
@@ -77,21 +77,19 @@ void Map10::special00() {
 void Map10::special01() {
 	send(SoundMessage(
 		STRING["maps.map10.ranalou1"],
-		[](const Common::KeyState &ks) {
-			if (ks.keycode == Common::KEYCODE_y) {
-				g_events->send(InfoMessage(STRING["maps.map10.ranalou2"]));
-				Sound::sound(SOUND_3);
-
-				for (uint i = 0; i < g_globals->_party.size(); ++i)
-					g_globals->_party[i]._flags[1] |= CHARFLAG1_1;
+		[]() {
+			g_events->send(InfoMessage(STRING["maps.map10.ranalou2"]));
+			Sound::sound(SOUND_3);
 
-				g_maps->clearSpecial();
+			for (uint i = 0; i < g_globals->_party.size(); ++i)
+				g_globals->_party[i]._flags[1] |= CHARFLAG1_1;
 
-			} else if (ks.keycode == Common::KEYCODE_n) {
-				g_events->send(SoundMessage(STRING["maps.map10.ranalou3"]));
-				g_maps->_mapPos = Common::Point(15, 0);
-				g_maps->_currentMap->updateGame();
-			}
+			g_maps->clearSpecial();
+		},
+		[]() {
+			g_events->send(SoundMessage(STRING["maps.map10.ranalou3"]));
+			g_maps->_mapPos = Common::Point(15, 0);
+			g_maps->_currentMap->updateGame();
 		}
 	));
 }
diff --git a/engines/mm/mm1/maps/map14.cpp b/engines/mm/mm1/maps/map14.cpp
index 6748ad98735..44cb5915a9e 100644
--- a/engines/mm/mm1/maps/map14.cpp
+++ b/engines/mm/mm1/maps/map14.cpp
@@ -80,35 +80,37 @@ void Map14::special00() {
 		}
 
 		send(SoundMessage(STRING["maps.map14.surrounded"],
-			[](const Common::KeyState &ks) {
+			[]() {
 				Map14 &map = *static_cast<Map14 *>(g_maps->_currentMap);
-				Game::Encounter &enc = g_globals->_encounters;
-
-				if (ks.keycode == Common::KEYCODE_y ||
-						ks.keycode == Common::KEYCODE_n) {
-					g_events->close();
-
-					// Note: The original seems to be backwards
-					if (ks.keycode == Common::KEYCODE_n &&
-							g_events->getRandomNumber(3) == 3) {
-						g_maps->_mapPos = Common::Point(15, 10);
-					} else {
-						map[VAL1]++;
-						enc.clearMonsters();
-						enc.addMonster(2, 12);
-						for (int i = 1; i < 12; ++i)
-							enc.addMonster(13, 8);
-
-						enc._levelIndex = 80;
-						enc._manual = true;
-						enc.execute();
-					}
+				map.encounter();
+			},
+			[]() {
+				if (g_events->getRandomNumber(3) == 3) {
+					g_maps->_mapPos = Common::Point(15, 10);
+				} else {
+					Map14 &map = *static_cast<Map14 *>(g_maps->_currentMap);
+					map.encounter();
 				}
 			}
 		));
 	}
 }
 
+void Map14::encounter() {
+	Game::Encounter &enc = g_globals->_encounters;
+
+	_data[VAL1]++;
+	enc.clearMonsters();
+	enc.addMonster(2, 12);
+	for (int i = 1; i < 12; ++i)
+		enc.addMonster(13, 8);
+
+	enc._levelIndex = 80;
+	enc._manual = true;
+	enc.execute();
+};
+
+
 void Map14::special01() {
 	_data[VAL1] = 0;
 	_data[VAL2]++;
@@ -126,17 +128,15 @@ void Map14::special02() {
 
 		send(SoundMessage(
 			STRING["maps.map14.castle"],
-			[](const Common::KeyState &ks) {
+			[]() {
 				Map14 &map = *static_cast<Map14 *>(g_maps->_currentMap);
-				if (ks.keycode == Common::KEYCODE_y) {
-					g_events->close();
-					map[VAL3] = 0xff;
-					map.updateGame();
-				} else if (ks.keycode == Common::KEYCODE_n) {
-					g_events->close();
-					map[VAL3]++;
-					map.updateGame();
-				}
+				map[VAL3] = 0xff;
+				map.updateGame();
+			},
+			[]() {
+				Map14 &map = *static_cast<Map14 *>(g_maps->_currentMap);
+				map[VAL3]++;
+				map.updateGame();
 			}
 		));
 	}
diff --git a/engines/mm/mm1/maps/map14.h b/engines/mm/mm1/maps/map14.h
index fe1225386c1..f61bbc3170c 100644
--- a/engines/mm/mm1/maps/map14.h
+++ b/engines/mm/mm1/maps/map14.h
@@ -46,6 +46,9 @@ private:
 		&Map14::special04,
 		&Map14::special05
 	};
+
+	void encounter();
+
 public:
 	Map14() : Map(14, "areaa1", 0xf01, 2) {}
 
diff --git a/engines/mm/mm1/maps/map18.cpp b/engines/mm/mm1/maps/map18.cpp
index a99ba589055..a63e790b6e9 100644
--- a/engines/mm/mm1/maps/map18.cpp
+++ b/engines/mm/mm1/maps/map18.cpp
@@ -76,17 +76,15 @@ void Map18::special01() {
 		send("View", DrawGraphicMessage(65 + 6));
 		send(SoundMessage(
 			STRING["maps.map18.castle_south"],
-			[](const Common::KeyState &ks) {
+			[]() {
 				Map18 &map = *static_cast<Map18 *>(g_maps->_currentMap);
-				if (ks.keycode == Common::KEYCODE_y) {
-					g_events->close();
-					map[VAL1] = 0xff;
-					map.updateGame();
-				} else if (ks.keycode == Common::KEYCODE_n) {
-					g_events->close();
-					map[VAL1]++;
-					map.updateGame();
-				}
+				map[VAL1] = 0xff;
+				map.updateGame();
+			},
+			[]() {
+				Map18 &map = *static_cast<Map18 *>(g_maps->_currentMap);
+				map[VAL1]++;
+				map.updateGame();
 			}
 		));
 	}
@@ -105,17 +103,15 @@ void Map18::special02() {
 		send("View", DrawGraphicMessage(65 + 6));
 		send(SoundMessage(
 			STRING["maps.map18.castle_north"],
-			[](const Common::KeyState &ks) {
+			[]() {
+				Map18 &map = *static_cast<Map18 *>(g_maps->_currentMap);
+				map[VAL2] = 0xff;
+				map.updateGame();
+			},
+			[]() {
 				Map18 &map = *static_cast<Map18 *>(g_maps->_currentMap);
-				if (ks.keycode == Common::KEYCODE_y) {
-					g_events->close();
-					map[VAL2] = 0xff;
-					map.updateGame();
-				} else if (ks.keycode == Common::KEYCODE_n) {
-					g_events->close();
-					map[VAL2]++;
-					map.updateGame();
-				}
+				map[VAL2]++;
+				map.updateGame();
 			}
 		));
 	}
diff --git a/engines/mm/mm1/maps/map20.cpp b/engines/mm/mm1/maps/map20.cpp
index a52f233e686..fc17fffe6a2 100644
--- a/engines/mm/mm1/maps/map20.cpp
+++ b/engines/mm/mm1/maps/map20.cpp
@@ -104,18 +104,15 @@ void Map20::special02() {
 
 		send(SoundMessage(
 			STRING["maps.map20.castle"],
-			[](const Common::KeyState &ks) {
+			[]() {
 				Map20 &map = *static_cast<Map20 *>(g_maps->_currentMap);
-				if (ks.keycode == Common::KEYCODE_y) {
-					g_events->focusedView()->close();
-					map[CASTLE_STATE] = 0xff;
-					map.goToCastle();
-
-				} else if (ks.keycode == Common::KEYCODE_n) {
-					g_events->focusedView()->close();
-					map[CASTLE_STATE]++;
-					map.updateGame();
-				}
+				map[CASTLE_STATE] = 0xff;
+				map.goToCastle();
+			},
+			[]() {
+				Map20 &map = *static_cast<Map20 *>(g_maps->_currentMap);
+				map[CASTLE_STATE]++;
+				map.updateGame();
 			}
 		));
 	}
diff --git a/engines/mm/mm1/maps/map21.cpp b/engines/mm/mm1/maps/map21.cpp
index 09bbaf980fb..68bbc3ffb77 100644
--- a/engines/mm/mm1/maps/map21.cpp
+++ b/engines/mm/mm1/maps/map21.cpp
@@ -118,31 +118,28 @@ void Map21::special02() {
 
 	send(SoundMessage(
 		STRING["maps.map21.trivia_island"],
-		[](const Common::KeyState &ks) {
-			if (ks.keycode == Common::KEYCODE_y) {
-				MM1::Maps::Map &map = *g_maps->_currentMap;
-				g_events->close();
-
-				for (uint i = 0; i < g_globals->_party.size(); ++i) {
-					Character &c = g_globals->_party[i];
-					g_globals->_currCharacter = &c;
-					if (g_globals->_currCharacter->_gold >= TRIVIA_COST) {
-						c._gold -= 500;
-						g_maps->clearSpecial();
-						map[TRIVIA_ENABLED]++;
-						return;
-					}
+		[]() {
+			MM1::Maps::Map &map = *g_maps->_currentMap;
+
+			for (uint i = 0; i < g_globals->_party.size(); ++i) {
+				Character &c = g_globals->_party[i];
+				g_globals->_currCharacter = &c;
+				if (g_globals->_currCharacter->_gold >= TRIVIA_COST) {
+					c._gold -= 500;
+					g_maps->clearSpecial();
+					map[TRIVIA_ENABLED]++;
+					return;
 				}
-
-				g_events->send(SoundMessage(STRING["maps.map21.not_enough_gold"]));
-				g_maps->_mapPos.y++;
-				g_maps->_currentMap->updateGame();
-
-			} else if (ks.keycode == Common::KEYCODE_n) {
-				g_events->close();
-				g_maps->_mapPos.y++;
-				g_maps->_currentMap->updateGame();
 			}
+
+			g_events->send(SoundMessage(STRING["maps.map21.not_enough_gold"]));
+			g_maps->_mapPos.y++;
+			g_maps->_currentMap->updateGame();
+		},
+		[]() {
+			MM1::Maps::Map &map = *g_maps->_currentMap;
+			g_maps->_mapPos.y++;
+			g_maps->_currentMap->updateGame();
 		}
 	));
 }
diff --git a/engines/mm/mm1/maps/map29.cpp b/engines/mm/mm1/maps/map29.cpp
index 4ae60418f56..5cdb9b14ab2 100644
--- a/engines/mm/mm1/maps/map29.cpp
+++ b/engines/mm/mm1/maps/map29.cpp
@@ -111,27 +111,25 @@ void Map29::special01() {
 
 		send(SoundMessage(
 			STRING["maps.map29.beast"],
-			[](const Common::KeyState &ks) {
-				if (ks.keycode == Common::KEYCODE_y) {
-					g_events->close();
-					g_maps->_mapPos = Common::Point(12, 12);
-					g_maps->_currentMap->updateGame();
-				} else if (ks.keycode == Common::KEYCODE_n) {
-					Game::Encounter &enc = g_globals->_encounters;
-					Map29 &map = *static_cast<Map29 *>(g_maps->_currentMap);
-					g_events->close();
-					map[BEAST_FLAG]++;
-
-					enc.clearMonsters();
-					enc.addMonster(3, 12);
-					for (int i = 1; i < 13; ++i)
-						enc.addMonster(3, 5);
-
-					enc._manual = true;
-					enc._encounterType = Game::FORCE_SURPRISED;
-					enc._levelIndex = 80;
-					enc.execute();
-				}
+			[]() {
+				g_maps->_mapPos = Common::Point(12, 12);
+				g_maps->_currentMap->updateGame();
+			},
+			[]() {
+				Game::Encounter &enc = g_globals->_encounters;
+				Map29 &map = *static_cast<Map29 *>(g_maps->_currentMap);
+				g_events->close();
+				map[BEAST_FLAG]++;
+
+				enc.clearMonsters();
+				enc.addMonster(3, 12);
+				for (int i = 1; i < 13; ++i)
+					enc.addMonster(3, 5);
+
+				enc._manual = true;
+				enc._encounterType = Game::FORCE_SURPRISED;
+				enc._levelIndex = 80;
+				enc.execute();
 			}
 		));
 	}
diff --git a/engines/mm/mm1/maps/map32.cpp b/engines/mm/mm1/maps/map32.cpp
index 1ec47d1737f..3d818bb4975 100644
--- a/engines/mm/mm1/maps/map32.cpp
+++ b/engines/mm/mm1/maps/map32.cpp
@@ -91,17 +91,15 @@ void Map32::special02() {
 		send("View", DrawGraphicMessage(65 + 6));
 		send(SoundMessage(
 			STRING["maps.map32.castle"],
-			[](const Common::KeyState &ks) {
+			[]() {
+				Map32 &map = *static_cast<Map32 *>(g_maps->_currentMap);
+				map[VAL2] = 0xff;
+				map.updateGame();
+			},
+			[]() {
 				Map32 &map = *static_cast<Map32 *>(g_maps->_currentMap);
-				if (ks.keycode == Common::KEYCODE_y) {
-					g_events->close();
-					map[VAL2] = 0xff;
-					map.updateGame();
-				} else if (ks.keycode == Common::KEYCODE_n) {
-					g_events->close();
-					map[VAL2]++;
-					map.updateGame();
-				}
+				map[VAL2]++;
+				map.updateGame();
 			}
 		));
 	}


Commit: 8d96fef0abfcc488b71a9f5c978e9346de7159a0
    https://github.com/scummvm/scummvm/commit/8d96fef0abfcc488b71a9f5c978e9346de7159a0
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-04-07T21:02:26-07:00

Commit Message:
MM: MM1: Map 14 fixes

Changed paths:
    devtools/create_mm/files/mm1/strings_en.yml
    engines/mm/mm1/maps/map14.cpp


diff --git a/devtools/create_mm/files/mm1/strings_en.yml b/devtools/create_mm/files/mm1/strings_en.yml
index 9b90c3252ff..f91fae6d80e 100644
--- a/devtools/create_mm/files/mm1/strings_en.yml
+++ b/devtools/create_mm/files/mm1/strings_en.yml
@@ -1207,7 +1207,7 @@ maps:
 		words: "Carved on a block of ice are the words:\nStart at 15-7 and walk to Doom!"
 		passage: "A secret passage to Doom, take it (Y/N)?"
 		pool: "The pool of health grants those who are\nworthy +4 endurance!"
-		surrounded: "You've been surrounded by the Dark Riderand his men! He challenges you to a duel...accept (Y/N)?"
+		surrounded: "You've been surrounded by the Dark Rider\nand his men! He challenges you to a duel... accept (Y/N)?"
 		castle: "The fabeled Castle Doom!\nWill you enter (Y/N)?"
 
 	map15:
diff --git a/engines/mm/mm1/maps/map14.cpp b/engines/mm/mm1/maps/map14.cpp
index 44cb5915a9e..6ad2ca60479 100644
--- a/engines/mm/mm1/maps/map14.cpp
+++ b/engines/mm/mm1/maps/map14.cpp
@@ -87,6 +87,8 @@ void Map14::special00() {
 			[]() {
 				if (g_events->getRandomNumber(3) == 3) {
 					g_maps->_mapPos = Common::Point(15, 10);
+					g_maps->_currentMap->updateGame();
+
 				} else {
 					Map14 &map = *static_cast<Map14 *>(g_maps->_currentMap);
 					map.encounter();




More information about the Scummvm-git-logs mailing list