From 4b9737a497f2200e2549494d5e805dd3f9ee8699 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 7 Feb 2023 22:39:44 -0800 Subject: [PATCH] MM: MM1: More Select keybind action handling --- engines/mm/mm1/views/game_messages.cpp | 9 ++++++++- engines/mm/mm1/views/locations/market.cpp | 8 +++++++- engines/mm/mm1/views_enh/game_messages.cpp | 18 ++++++++++++++---- 3 files changed, 29 insertions(+), 6 deletions(-) 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;