[Scummvm-git-logs] scummvm master -> 4b9737a497f2200e2549494d5e805dd3f9ee8699

dreammaster noreply at scummvm.org
Wed Feb 8 15:56:16 UTC 2023


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:
03895d242e MM: MM1: Adding a Select keybinding action
4b9737a497 MM: MM1: More Select keybind action handling


Commit: 03895d242ef454dccf238a55f5bb4624a9a2ca55
    https://github.com/scummvm/scummvm/commit/03895d242ef454dccf238a55f5bb4624a9a2ca55
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-08T07:56:02-08:00

Commit Message:
MM: MM1: Adding a Select keybinding action

Changed paths:
    engines/mm/mm1/metaengine.cpp
    engines/mm/mm1/metaengine.h
    engines/mm/mm1/views/are_you_ready.cpp
    engines/mm/mm1/views/are_you_ready.h
    engines/mm/mm1/views/create_characters.cpp
    engines/mm/mm1/views/locations/inn.cpp
    engines/mm/mm1/views/locations/inn.h


diff --git a/engines/mm/mm1/metaengine.cpp b/engines/mm/mm1/metaengine.cpp
index b0d095b1558..ba1c694382f 100644
--- a/engines/mm/mm1/metaengine.cpp
+++ b/engines/mm/mm1/metaengine.cpp
@@ -38,6 +38,7 @@ struct KeybindingRecord {
 
 static const KeybindingRecord MENU_KEYS[] = {
 	{ KEYBIND_ESCAPE, "ESCAPE", "Escape", "ESCAPE", nullptr },
+	{ KEYBIND_SELECT, "SELECT", "Select", "RETURN", nullptr },
 	{ KEYBIND_NONE, nullptr, nullptr, nullptr, nullptr }
 };
 
diff --git a/engines/mm/mm1/metaengine.h b/engines/mm/mm1/metaengine.h
index c23c78f8cd0..c6dd6609004 100644
--- a/engines/mm/mm1/metaengine.h
+++ b/engines/mm/mm1/metaengine.h
@@ -29,6 +29,7 @@ namespace MM1 {
 
 enum KeybindingAction {
 	KEYBIND_ESCAPE,
+	KEYBIND_SELECT,
 
 	KEYBIND_FORWARDS,
 	KEYBIND_BACKWARDS,
diff --git a/engines/mm/mm1/views/are_you_ready.cpp b/engines/mm/mm1/views/are_you_ready.cpp
index 6d58df8e6a1..3c2066b0a23 100644
--- a/engines/mm/mm1/views/are_you_ready.cpp
+++ b/engines/mm/mm1/views/are_you_ready.cpp
@@ -32,8 +32,8 @@ void AreYouReady::draw() {
 	writeString(11, 13, STRING["dialogs.ready.2"]);
 }
 
-bool AreYouReady::msgKeypress(const KeypressMessage &msg) {
-	if (msg.keycode == Common::KEYCODE_RETURN) {
+bool AreYouReady::msgAction(const ActionMessage &msg) {
+	if (msg._action == KEYBIND_SELECT) {
 		replaceView("MainMenu");
 		return true;
 	}
diff --git a/engines/mm/mm1/views/are_you_ready.h b/engines/mm/mm1/views/are_you_ready.h
index d3fca576a36..758482408db 100644
--- a/engines/mm/mm1/views/are_you_ready.h
+++ b/engines/mm/mm1/views/are_you_ready.h
@@ -34,7 +34,7 @@ public:
 	virtual ~AreYouReady() {}
 
 	void draw() override;
-	bool msgKeypress(const KeypressMessage &msg) override;
+	bool msgAction(const ActionMessage &msg) override;
 };
 
 } // namespace Views
diff --git a/engines/mm/mm1/views/create_characters.cpp b/engines/mm/mm1/views/create_characters.cpp
index bd289dc6d0b..997dcd0d829 100644
--- a/engines/mm/mm1/views/create_characters.cpp
+++ b/engines/mm/mm1/views/create_characters.cpp
@@ -345,11 +345,7 @@ void CreateCharacters::printSummary(bool promptToSave) {
 bool CreateCharacters::msgKeypress(const KeypressMessage &msg) {
 	switch (_state) {
 	case SELECT_CLASS:
-		if (msg.keycode == Common::KEYCODE_RETURN) {
-			// Re-roll attributes
-			_newChar.reroll();
-			redraw();
-		} else if (msg.keycode >= Common::KEYCODE_1 &&
+		if (msg.keycode >= Common::KEYCODE_1 &&
 				msg.keycode <= Common::KEYCODE_6) {
 			if (_newChar._classesAllowed[msg.keycode - Common::KEYCODE_0] &&
 					!g_globals->_roster.full()) {
@@ -426,7 +422,7 @@ bool CreateCharacters::msgKeypress(const KeypressMessage &msg) {
 			_newChar._name += toupper(msg.ascii);
 			redraw();
 		}
-		if (msg.keycode == Common::KEYCODE_RETURN || _newChar._name.size() == 15) {
+		if (_newChar._name.size() == 15) {
 			_state = SAVE_PROMPT;
 			redraw();
 		} else if (msg.keycode == Common::KEYCODE_BACKSPACE &&
@@ -450,7 +446,8 @@ bool CreateCharacters::msgKeypress(const KeypressMessage &msg) {
 }
 
 bool CreateCharacters::msgAction(const ActionMessage &msg) {
-	if (msg._action == KEYBIND_ESCAPE) {
+	switch (msg._action) {
+	case KEYBIND_ESCAPE:
 		if (_state == SELECT_CLASS) {
 			close();
 		} else {
@@ -459,6 +456,32 @@ bool CreateCharacters::msgAction(const ActionMessage &msg) {
 			redraw();
 		}
 		return true;
+
+	case KEYBIND_SELECT:
+		switch (_state) {
+		case SELECT_CLASS:
+			// Re-roll attributes
+			_newChar.reroll();
+			redraw();
+			break;
+		case SELECT_NAME:
+			_state = SAVE_PROMPT;
+			redraw();
+			break;
+		case SAVE_PROMPT:
+			_newChar.save();
+
+			_state = SELECT_CLASS;
+			_newChar.reroll();
+			redraw();
+			break;
+		default:
+			break;
+		}
+		return true;
+
+	default:
+		break;
 	}
 
 	return false;
diff --git a/engines/mm/mm1/views/locations/inn.cpp b/engines/mm/mm1/views/locations/inn.cpp
index 5c8848d2f46..d9c1af09ca0 100644
--- a/engines/mm/mm1/views/locations/inn.cpp
+++ b/engines/mm/mm1/views/locations/inn.cpp
@@ -121,30 +121,46 @@ bool Inn::msgKeypress(const KeypressMessage &msg) {
 			g_globals->_currCharacter = &g_globals->_roster[charNum];
 			_characterView.addView();
 		}
+		return true;
+
 	} else if (msg.keycode == Common::KEYCODE_x) {
-		// Load party from selected characters
-		g_globals->_party.clear();
-		for (uint i = 0; i < _partyChars.size(); ++i)
-			g_globals->_party.push_back(
-				g_globals->_roster[_partyChars[i]]);
-		g_globals->_currCharacter = &g_globals->_party.front();
-
-		// Load the given town
-		g_globals->_maps.loadTown(g_globals->_startingTown);
+		exitInn();
+		return true;
 	}
 
 	return false;
 }
 
 bool Inn::msgAction(const ActionMessage &msg) {
-	if (msg._action == KEYBIND_ESCAPE) {
+	switch (msg._action) {
+	case KEYBIND_ESCAPE:
 		replaceView("MainMenu");
 		return true;
+	case KEYBIND_SELECT:
+		exitInn();
+		return true;
+	default:
+		break;
 	}
 
 	return false;
 }
 
+void Inn::exitInn() {
+	if (_partyChars.empty())
+		return;
+
+	// Load party from selected characters
+	g_globals->_party.clear();
+	for (uint i = 0; i < _partyChars.size(); ++i)
+		g_globals->_party.push_back(
+			g_globals->_roster[_partyChars[i]]);
+	g_globals->_currCharacter = &g_globals->_party.front();
+
+	// Load the given town
+	g_globals->_maps.loadTown(g_globals->_startingTown);
+}
+
 } // namespace Locations
 } // namespace Views
 } // namespace MM1
diff --git a/engines/mm/mm1/views/locations/inn.h b/engines/mm/mm1/views/locations/inn.h
index 068467f160f..56c99d7ea22 100644
--- a/engines/mm/mm1/views/locations/inn.h
+++ b/engines/mm/mm1/views/locations/inn.h
@@ -36,6 +36,12 @@ private:
 	CharacterView _characterView;
 	Common::Array<uint> _charNums;
 	IntArray _partyChars;
+
+	/**
+	 * Exit the Inn
+	 */
+	void exitInn();
+
 public:
 	Inn() : TextView("Inn") {
 	}


Commit: 4b9737a497f2200e2549494d5e805dd3f9ee8699
    https://github.com/scummvm/scummvm/commit/4b9737a497f2200e2549494d5e805dd3f9ee8699
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-08T07:56:02-08:00

Commit Message:
MM: MM1: More Select keybind action handling

Changed paths:
    engines/mm/mm1/views/game_messages.cpp
    engines/mm/mm1/views/locations/market.cpp
    engines/mm/mm1/views_enh/game_messages.cpp


diff --git a/engines/mm/mm1/views/game_messages.cpp b/engines/mm/mm1/views/game_messages.cpp
index 6a74c108269..493d9df1b76 100644
--- a/engines/mm/mm1/views/game_messages.cpp
+++ b/engines/mm/mm1/views/game_messages.cpp
@@ -119,9 +119,16 @@ bool GameMessages::msgAction(const ActionMessage &msg) {
 		if (endDelay())
 			return true;
 
-		if (msg._action == KEYBIND_ESCAPE) {
+		switch (msg._action) {
+		case KEYBIND_ESCAPE:
 			close();
 			return true;
+		case KEYBIND_SELECT:
+			close();
+			_ynCallback();
+			return true;
+		default:
+			break;
 		}
 	}
 
diff --git a/engines/mm/mm1/views/locations/market.cpp b/engines/mm/mm1/views/locations/market.cpp
index 94666bf4f92..374c636b60d 100644
--- a/engines/mm/mm1/views/locations/market.cpp
+++ b/engines/mm/mm1/views/locations/market.cpp
@@ -65,9 +65,15 @@ bool Market::msgAction(const ActionMessage &msg) {
 	if (endDelay())
 		return true;
 
-	if (msg._action == KEYBIND_ESCAPE) {
+	switch (msg._action) {
+	case KEYBIND_ESCAPE:
 		leave();
 		return true;
+	case KEYBIND_SELECT:
+		buyFood();
+		return true;
+	default:
+		break;
 	}
 
 	return false;
diff --git a/engines/mm/mm1/views_enh/game_messages.cpp b/engines/mm/mm1/views_enh/game_messages.cpp
index 33ee4cb0df7..c6039d6c349 100644
--- a/engines/mm/mm1/views_enh/game_messages.cpp
+++ b/engines/mm/mm1/views_enh/game_messages.cpp
@@ -108,10 +108,20 @@ bool GameMessages::msgKeypress(const KeypressMessage &msg) {
 }
 
 bool GameMessages::msgAction(const ActionMessage &msg) {
-	if (msg._action == KEYBIND_ESCAPE && g_events->focusedView() == this) {
-		close();
-		g_events->drawElements();
-		return true;
+	if (g_events->focusedView()) {
+		switch (msg._action) {
+		case KEYBIND_ESCAPE:
+			close();
+			g_events->drawElements();
+			return true;
+		case KEYBIND_SELECT:
+			close();
+			g_events->drawElements();
+			_ynCallback();
+			return true;
+		default:
+			break;
+		}
 	}
 
 	return false;




More information about the Scummvm-git-logs mailing list