[Scummvm-git-logs] scummvm master -> b72471875aad8b873fd8cc5bf311f9e6fbe31610
dreammaster
noreply at scummvm.org
Wed Feb 8 05:27:58 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:
4310afe63a MM: MM1: Remove duplicate statColor implementation
b72471875a MM: MM1: Fix the Escape keybinding action
Commit: 4310afe63a99cf881fabd5fc72bc264b746d5c1b
https://github.com/scummvm/scummvm/commit/4310afe63a99cf881fabd5fc72bc264b746d5c1b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-07T20:17:54-08:00
Commit Message:
MM: MM1: Remove duplicate statColor implementation
Changed paths:
engines/mm/mm1/views_enh/character_info.cpp
engines/mm/mm1/views_enh/character_info.h
diff --git a/engines/mm/mm1/views_enh/character_info.cpp b/engines/mm/mm1/views_enh/character_info.cpp
index ede2cedf11c..ba4b90f29d7 100644
--- a/engines/mm/mm1/views_enh/character_info.cpp
+++ b/engines/mm/mm1/views_enh/character_info.cpp
@@ -242,7 +242,7 @@ void CharacterInfo::drawStats() {
if (i < 10)
pt.x += 8 + (CURR[i] < 10 ? 8 : 0);
- setTextColor(statColor(CURR[i], BASE[i]));
+ setTextColor(c.statColor(CURR[i], BASE[i]));
if (i == 16) {
// Food
@@ -271,19 +271,6 @@ void CharacterInfo::drawStats() {
writeString(196, 120, condStr);
}
-int CharacterInfo::statColor(int amount, int threshold) {
- if (amount < 1)
- return 6;
- else if (amount > threshold)
- return 2;
- else if (amount == threshold)
- return 15;
- else if (amount >= (threshold / 4))
- return 9;
- else
- return 32;
-}
-
void CharacterInfo::showCursor(bool flag) {
const int CURSOR_X[4] = { 9, 60, 111, 176 };
const int CURSOR_Y[5] = { 23, 46, 69, 92, 115 };
diff --git a/engines/mm/mm1/views_enh/character_info.h b/engines/mm/mm1/views_enh/character_info.h
index bc9aca7693d..7d72f8463ed 100644
--- a/engines/mm/mm1/views_enh/character_info.h
+++ b/engines/mm/mm1/views_enh/character_info.h
@@ -59,11 +59,6 @@ private:
*/
void drawStats();
- /**
- * Return the color for a given stat
- */
- int statColor(int amount, int threshold);
-
/**
* Toggle display of cursor
*/
Commit: b72471875aad8b873fd8cc5bf311f9e6fbe31610
https://github.com/scummvm/scummvm/commit/b72471875aad8b873fd8cc5bf311f9e6fbe31610
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-07T21:26:52-08:00
Commit Message:
MM: MM1: Fix the Escape keybinding action
I didn't fix it for so long that I ended up adding explicit
checks in msgKeypress in all the various dialogs. Now that
it's fixed, I also have to fix the dialogs to properly
check for the Escape action rather than the key
Changed paths:
engines/mm/mm1/metaengine.cpp
engines/mm/mm1/views/character_info.cpp
engines/mm/mm1/views/create_characters.cpp
engines/mm/mm1/views/create_characters.h
engines/mm/mm1/views/game_messages.cpp
engines/mm/mm1/views/game_messages.h
engines/mm/mm1/views/locations/blacksmith.cpp
engines/mm/mm1/views/locations/blacksmith.h
engines/mm/mm1/views/locations/inn.cpp
engines/mm/mm1/views/locations/inn.h
engines/mm/mm1/views/locations/market.cpp
engines/mm/mm1/views/locations/market.h
engines/mm/mm1/views/locations/statue.cpp
engines/mm/mm1/views/locations/statue.h
engines/mm/mm1/views/locations/tavern.cpp
engines/mm/mm1/views/locations/tavern.h
engines/mm/mm1/views/locations/temple.cpp
engines/mm/mm1/views/locations/temple.h
engines/mm/mm1/views/locations/training.cpp
engines/mm/mm1/views/locations/training.h
engines/mm/mm1/views/order.cpp
engines/mm/mm1/views/order.h
engines/mm/mm1/views/protect.cpp
engines/mm/mm1/views/protect.h
engines/mm/mm1/views/quick_ref.cpp
engines/mm/mm1/views/quick_ref.h
engines/mm/mm1/views/title.cpp
engines/mm/mm1/views/title.h
engines/mm/mm1/views_enh/character_info.cpp
engines/mm/mm1/views_enh/game_messages.cpp
engines/mm/mm1/views_enh/game_messages.h
engines/mm/mm1/views_enh/quick_ref.cpp
engines/mm/mm1/views_enh/scroll_popup.cpp
engines/mm/mm1/views_enh/scroll_popup.h
diff --git a/engines/mm/mm1/metaengine.cpp b/engines/mm/mm1/metaengine.cpp
index 5f085ea2eda..b0d095b1558 100644
--- a/engines/mm/mm1/metaengine.cpp
+++ b/engines/mm/mm1/metaengine.cpp
@@ -37,7 +37,7 @@ struct KeybindingRecord {
};
static const KeybindingRecord MENU_KEYS[] = {
- { KEYBIND_ESCAPE, "ESCAPE", "Escape", "ESC", nullptr },
+ { KEYBIND_ESCAPE, "ESCAPE", "Escape", "ESCAPE", nullptr },
{ KEYBIND_NONE, nullptr, nullptr, nullptr, nullptr }
};
diff --git a/engines/mm/mm1/views/character_info.cpp b/engines/mm/mm1/views/character_info.cpp
index 57f76fab9c8..9abe445143d 100644
--- a/engines/mm/mm1/views/character_info.cpp
+++ b/engines/mm/mm1/views/character_info.cpp
@@ -122,17 +122,6 @@ void CharacterInfo::timeout() {
}
bool CharacterInfo::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- if (_state != DISPLAY) {
- redraw();
- } else {
- close();
- }
-
- _state = DISPLAY;
- return true;
- }
-
switch (_state) {
case DISPLAY:
switch (msg.keycode) {
@@ -265,20 +254,36 @@ bool CharacterInfo::msgKeypress(const KeypressMessage &msg) {
}
bool CharacterInfo::msgAction(const ActionMessage &msg) {
- if (msg._action >= KEYBIND_VIEW_PARTY1 &&
- msg._action <= KEYBIND_VIEW_PARTY6) {
+ switch (msg._action) {
+ case KEYBIND_ESCAPE:
+ if (_state != DISPLAY) {
+ redraw();
+ } else {
+ close();
+ }
+
+ _state = DISPLAY;
+ return true;
+ case KEYBIND_VIEW_PARTY1:
+ case KEYBIND_VIEW_PARTY2:
+ case KEYBIND_VIEW_PARTY3:
+ case KEYBIND_VIEW_PARTY4:
+ case KEYBIND_VIEW_PARTY5:
+ case KEYBIND_VIEW_PARTY6:
if (_state == DISPLAY) {
g_globals->_currCharacter = &g_globals->_party[
msg._action - KEYBIND_VIEW_PARTY1];
redraw();
- return true;
} else if (_state == TRADE_WITH) {
_state = TRADE_KIND;
_tradeWith = msg._action - KEYBIND_VIEW_PARTY1;
redraw();
- return true;
}
+ return true;
+ default:
+ break;
}
+
return false;
}
diff --git a/engines/mm/mm1/views/create_characters.cpp b/engines/mm/mm1/views/create_characters.cpp
index f29f9d36250..bd289dc6d0b 100644
--- a/engines/mm/mm1/views/create_characters.cpp
+++ b/engines/mm/mm1/views/create_characters.cpp
@@ -343,17 +343,6 @@ void CreateCharacters::printSummary(bool promptToSave) {
}
bool CreateCharacters::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- if (_state == SELECT_CLASS) {
- close();
- } else {
- _state = SELECT_CLASS;
- _newChar.reroll();
- redraw();
- }
- return true;
- }
-
switch (_state) {
case SELECT_CLASS:
if (msg.keycode == Common::KEYCODE_RETURN) {
@@ -460,6 +449,21 @@ bool CreateCharacters::msgKeypress(const KeypressMessage &msg) {
return true;
}
+bool CreateCharacters::msgAction(const ActionMessage &msg) {
+ if (msg._action == KEYBIND_ESCAPE) {
+ if (_state == SELECT_CLASS) {
+ close();
+ } else {
+ _state = SELECT_CLASS;
+ _newChar.reroll();
+ redraw();
+ }
+ return true;
+ }
+
+ return false;
+}
+
} // namespace Views
} // namespace MM1
} // namespace MM
diff --git a/engines/mm/mm1/views/create_characters.h b/engines/mm/mm1/views/create_characters.h
index 4e17964d42e..50695f5b299 100644
--- a/engines/mm/mm1/views/create_characters.h
+++ b/engines/mm/mm1/views/create_characters.h
@@ -102,6 +102,7 @@ public:
}
void draw() override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
};
} // namespace Views
diff --git a/engines/mm/mm1/views/game_messages.cpp b/engines/mm/mm1/views/game_messages.cpp
index ea04d51cff2..6a74c108269 100644
--- a/engines/mm/mm1/views/game_messages.cpp
+++ b/engines/mm/mm1/views/game_messages.cpp
@@ -108,6 +108,26 @@ bool GameMessages::msgKeypress(const KeypressMessage &msg) {
return false;
}
+bool GameMessages::msgAction(const ActionMessage &msg) {
+ if (g_globals->_party.isPartyDead()) {
+ // Party is dead, so now that players have read whatever
+ // message was displayed, switch to the Dead screen
+ g_events->clearViews();
+ addView("Dead");
+
+ } else if (g_events->focusedView()) {
+ if (endDelay())
+ return true;
+
+ if (msg._action == KEYBIND_ESCAPE) {
+ close();
+ return true;
+ }
+ }
+
+ return false;
+}
+
void GameMessages::timeout() {
if (_ynCallback) {
// _ynCallback is also used for timeout callbacks
diff --git a/engines/mm/mm1/views/game_messages.h b/engines/mm/mm1/views/game_messages.h
index 32c1e94ce48..e9d52175116 100644
--- a/engines/mm/mm1/views/game_messages.h
+++ b/engines/mm/mm1/views/game_messages.h
@@ -42,6 +42,7 @@ public:
void draw() override;
bool msgInfo(const InfoMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
void timeout() override;
};
diff --git a/engines/mm/mm1/views/locations/blacksmith.cpp b/engines/mm/mm1/views/locations/blacksmith.cpp
index 5b5c89a216c..887ea71c9d7 100644
--- a/engines/mm/mm1/views/locations/blacksmith.cpp
+++ b/engines/mm/mm1/views/locations/blacksmith.cpp
@@ -51,9 +51,6 @@ void Blacksmith::draw() {
bool Blacksmith::msgKeypress(const KeypressMessage &msg) {
switch (msg.keycode) {
- case Common::KEYCODE_ESCAPE:
- leave();
- break;
case Common::KEYCODE_1:
case Common::KEYCODE_2:
case Common::KEYCODE_3:
@@ -81,6 +78,18 @@ bool Blacksmith::msgKeypress(const KeypressMessage &msg) {
return true;
}
+bool Blacksmith::msgAction(const ActionMessage &msg) {
+ if (endDelay())
+ return true;
+
+ if (msg._action == KEYBIND_ESCAPE) {
+ leave();
+ return true;
+ }
+
+ return false;
+}
+
} // namespace Locations
} // namespace Views
} // namespace MM1
diff --git a/engines/mm/mm1/views/locations/blacksmith.h b/engines/mm/mm1/views/locations/blacksmith.h
index d7e0f2204bb..83baaa43892 100644
--- a/engines/mm/mm1/views/locations/blacksmith.h
+++ b/engines/mm/mm1/views/locations/blacksmith.h
@@ -45,6 +45,7 @@ public:
bool msgFocus(const FocusMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
void draw() override;
};
diff --git a/engines/mm/mm1/views/locations/inn.cpp b/engines/mm/mm1/views/locations/inn.cpp
index fde5edefc79..5c8848d2f46 100644
--- a/engines/mm/mm1/views/locations/inn.cpp
+++ b/engines/mm/mm1/views/locations/inn.cpp
@@ -103,10 +103,7 @@ void Inn::draw() {
}
bool Inn::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- replaceView("MainMenu");
- return true;
- } else if (msg.keycode >= Common::KEYCODE_a &&
+ if (msg.keycode >= Common::KEYCODE_a &&
msg.keycode < (Common::KeyCode)(Common::KEYCODE_a + _charNums.size())) {
int charNum = _charNums[msg.keycode - Common::KEYCODE_a];
@@ -139,6 +136,15 @@ bool Inn::msgKeypress(const KeypressMessage &msg) {
return false;
}
+bool Inn::msgAction(const ActionMessage &msg) {
+ if (msg._action == KEYBIND_ESCAPE) {
+ replaceView("MainMenu");
+ return true;
+ }
+
+ return false;
+}
+
} // 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 bb2c3a32763..068467f160f 100644
--- a/engines/mm/mm1/views/locations/inn.h
+++ b/engines/mm/mm1/views/locations/inn.h
@@ -45,6 +45,7 @@ public:
bool msgFocus(const FocusMessage &msg) override;
void draw() override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
};
} // namespace Locations
diff --git a/engines/mm/mm1/views/locations/market.cpp b/engines/mm/mm1/views/locations/market.cpp
index 0b53a6c9ac2..94666bf4f92 100644
--- a/engines/mm/mm1/views/locations/market.cpp
+++ b/engines/mm/mm1/views/locations/market.cpp
@@ -48,9 +48,8 @@ bool Market::msgKeypress(const KeypressMessage &msg) {
return true;
switch (msg.keycode) {
- case Common::KEYCODE_ESCAPE:
case Common::KEYCODE_n:
- leave();
+ msgAction(ActionMessage(KEYBIND_ESCAPE));
break;
case Common::KEYCODE_y:
buyFood();
@@ -62,6 +61,18 @@ bool Market::msgKeypress(const KeypressMessage &msg) {
return true;
}
+bool Market::msgAction(const ActionMessage &msg) {
+ if (endDelay())
+ return true;
+
+ if (msg._action == KEYBIND_ESCAPE) {
+ leave();
+ return true;
+ }
+
+ return false;
+}
+
void Market::draw() {
clearSurface();
diff --git a/engines/mm/mm1/views/locations/market.h b/engines/mm/mm1/views/locations/market.h
index a23319f1691..5b1df57f909 100644
--- a/engines/mm/mm1/views/locations/market.h
+++ b/engines/mm/mm1/views/locations/market.h
@@ -50,6 +50,7 @@ public:
bool msgFocus(const FocusMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
void draw() override;
/**
diff --git a/engines/mm/mm1/views/locations/statue.cpp b/engines/mm/mm1/views/locations/statue.cpp
index e3ae7652e0b..344692cdbe2 100644
--- a/engines/mm/mm1/views/locations/statue.cpp
+++ b/engines/mm/mm1/views/locations/statue.cpp
@@ -49,6 +49,18 @@ bool Statue::msgKeypress(const KeypressMessage &msg) {
return true;
}
+bool Statue::msgAction(const ActionMessage &msg) {
+ if (endDelay())
+ return true;
+
+ if (msg._action == KEYBIND_ESCAPE) {
+ leave();
+ return true;
+ }
+
+ return false;
+}
+
void Statue::draw() {
switch (_pageNum) {
case 0:
diff --git a/engines/mm/mm1/views/locations/statue.h b/engines/mm/mm1/views/locations/statue.h
index da8424a30aa..a975c818fab 100644
--- a/engines/mm/mm1/views/locations/statue.h
+++ b/engines/mm/mm1/views/locations/statue.h
@@ -40,6 +40,7 @@ public:
void draw() override;
bool msgValue(const ValueMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
};
} // namespace Locations
diff --git a/engines/mm/mm1/views/locations/tavern.cpp b/engines/mm/mm1/views/locations/tavern.cpp
index 93b3986cad4..c9c156a68be 100644
--- a/engines/mm/mm1/views/locations/tavern.cpp
+++ b/engines/mm/mm1/views/locations/tavern.cpp
@@ -40,11 +40,6 @@ bool Tavern::msgFocus(const FocusMessage &msg) {
}
bool Tavern::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- leave();
- return true;
- }
-
// If timed message display, end the waiting
if (endDelay())
return true;
@@ -78,6 +73,18 @@ bool Tavern::msgKeypress(const KeypressMessage &msg) {
return true;
}
+bool Tavern::msgAction(const ActionMessage &msg) {
+ if (endDelay())
+ return true;
+
+ if (msg._action == KEYBIND_ESCAPE) {
+ leave();
+ return true;
+ }
+
+ return false;
+}
+
void Tavern::draw() {
Location::draw();
diff --git a/engines/mm/mm1/views/locations/tavern.h b/engines/mm/mm1/views/locations/tavern.h
index c781b92b48a..60136563463 100644
--- a/engines/mm/mm1/views/locations/tavern.h
+++ b/engines/mm/mm1/views/locations/tavern.h
@@ -52,6 +52,7 @@ public:
bool msgFocus(const FocusMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
void draw() override;
};
diff --git a/engines/mm/mm1/views/locations/temple.cpp b/engines/mm/mm1/views/locations/temple.cpp
index 40e152b952e..699a43a5547 100644
--- a/engines/mm/mm1/views/locations/temple.cpp
+++ b/engines/mm/mm1/views/locations/temple.cpp
@@ -41,11 +41,6 @@ bool Temple::msgFocus(const FocusMessage &msg) {
}
bool Temple::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- leave();
- return true;
- }
-
// If a delay is active, end it
if (endDelay())
return true;
@@ -82,6 +77,18 @@ bool Temple::msgKeypress(const KeypressMessage &msg) {
return true;
}
+bool Temple::msgAction(const ActionMessage &msg) {
+ if (endDelay())
+ return true;
+
+ if (msg._action == KEYBIND_ESCAPE) {
+ leave();
+ return true;
+ }
+
+ return false;
+}
+
void Temple::changeCharacter(uint index) {
Maps::Map &map = *g_maps->_currentMap;
int i;
diff --git a/engines/mm/mm1/views/locations/temple.h b/engines/mm/mm1/views/locations/temple.h
index 9bcae5b5996..8c7930fb2f6 100644
--- a/engines/mm/mm1/views/locations/temple.h
+++ b/engines/mm/mm1/views/locations/temple.h
@@ -53,6 +53,7 @@ public:
bool msgFocus(const FocusMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
void draw() override;
};
diff --git a/engines/mm/mm1/views/locations/training.cpp b/engines/mm/mm1/views/locations/training.cpp
index 360e8cb09f5..88c6eebfb95 100644
--- a/engines/mm/mm1/views/locations/training.cpp
+++ b/engines/mm/mm1/views/locations/training.cpp
@@ -117,11 +117,6 @@ void Training::draw() {
}
bool Training::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- leave();
- return true;
- }
-
// If a delay is active, end it
if (endDelay())
return true;
@@ -150,6 +145,18 @@ bool Training::msgKeypress(const KeypressMessage &msg) {
return true;
}
+bool Training::msgAction(const ActionMessage &msg) {
+ if (endDelay())
+ return true;
+
+ if (msg._action == KEYBIND_ESCAPE) {
+ leave();
+ return true;
+ }
+
+ return false;
+}
+
void Training::train() {
Character &c = *g_globals->_currCharacter;
diff --git a/engines/mm/mm1/views/locations/training.h b/engines/mm/mm1/views/locations/training.h
index 565c0e3e7d8..318f2a0bd1d 100644
--- a/engines/mm/mm1/views/locations/training.h
+++ b/engines/mm/mm1/views/locations/training.h
@@ -69,6 +69,7 @@ public:
bool msgFocus(const FocusMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
void draw() override;
};
diff --git a/engines/mm/mm1/views/order.cpp b/engines/mm/mm1/views/order.cpp
index b085fa2b242..26b1a52b816 100644
--- a/engines/mm/mm1/views/order.cpp
+++ b/engines/mm/mm1/views/order.cpp
@@ -41,10 +41,7 @@ bool Order::msgGame(const GameMessage &msg) {
}
bool Order::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- close();
-
- } else if (msg.keycode == Common::KEYCODE_BACKSPACE &&
+ if (msg.keycode == Common::KEYCODE_BACKSPACE &&
!_indexes.empty()) {
_indexes.remove_at(_indexes.size() - 1);
redraw();
@@ -76,6 +73,15 @@ bool Order::msgKeypress(const KeypressMessage &msg) {
return true;
}
+bool Order::msgAction(const ActionMessage &msg) {
+ if (msg._action == KEYBIND_ESCAPE) {
+ close();
+ return true;
+ }
+
+ return false;
+}
+
void Order::draw() {
clearSurface();
writeString(0, 0, STRING["dialogs.order.title"]);
diff --git a/engines/mm/mm1/views/order.h b/engines/mm/mm1/views/order.h
index dc9a927f968..54679d991dc 100644
--- a/engines/mm/mm1/views/order.h
+++ b/engines/mm/mm1/views/order.h
@@ -37,6 +37,7 @@ public:
bool msgGame(const GameMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
void draw() override;
};
diff --git a/engines/mm/mm1/views/protect.cpp b/engines/mm/mm1/views/protect.cpp
index 2b935b82981..a921a416727 100644
--- a/engines/mm/mm1/views/protect.cpp
+++ b/engines/mm/mm1/views/protect.cpp
@@ -88,19 +88,16 @@ void Protect::printProtectionLevel(uint protectIndex) {
newLine();
}
-bool Protect::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- close();
- return true;
- }
-
- return false;
-}
-
bool Protect::msgAction(const ActionMessage &msg) {
- if (msg._action == KEYBIND_PROTECT) {
+ switch (msg._action) {
+ case KEYBIND_PROTECT:
addView();
return true;
+ case KEYBIND_ESCAPE:
+ close();
+ return true;
+ default:
+ break;
}
return false;
diff --git a/engines/mm/mm1/views/protect.h b/engines/mm/mm1/views/protect.h
index 5eac588de5d..fb9856a7aa6 100644
--- a/engines/mm/mm1/views/protect.h
+++ b/engines/mm/mm1/views/protect.h
@@ -37,7 +37,6 @@ public:
virtual ~Protect() {}
void draw() override;
- bool msgKeypress(const KeypressMessage &msg) override;
bool msgAction(const ActionMessage &msg) override;
};
diff --git a/engines/mm/mm1/views/quick_ref.cpp b/engines/mm/mm1/views/quick_ref.cpp
index cae2c8d38a1..031e157490e 100644
--- a/engines/mm/mm1/views/quick_ref.cpp
+++ b/engines/mm/mm1/views/quick_ref.cpp
@@ -94,17 +94,11 @@ void QuickRef::draw() {
escToGoBack();
}
-bool QuickRef::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- close();
- return true;
- }
-
- return false;
-}
-
bool QuickRef::msgAction(const ActionMessage &msg) {
switch (msg._action) {
+ case KEYBIND_ESCAPE:
+ close();
+ return true;
case KEYBIND_VIEW_PARTY1:
case KEYBIND_VIEW_PARTY2:
case KEYBIND_VIEW_PARTY3:
diff --git a/engines/mm/mm1/views/quick_ref.h b/engines/mm/mm1/views/quick_ref.h
index 3bf01603abc..0fda61b0f40 100644
--- a/engines/mm/mm1/views/quick_ref.h
+++ b/engines/mm/mm1/views/quick_ref.h
@@ -42,7 +42,6 @@ public:
bool msgFocus(const FocusMessage &msg) override;
bool msgUnfocus(const UnfocusMessage &msg) override;
void draw() override;
- bool msgKeypress(const KeypressMessage &msg) override;
bool msgAction(const ActionMessage &msg) override;
};
diff --git a/engines/mm/mm1/views/title.cpp b/engines/mm/mm1/views/title.cpp
index b366229ad63..1acf177f921 100644
--- a/engines/mm/mm1/views/title.cpp
+++ b/engines/mm/mm1/views/title.cpp
@@ -130,11 +130,7 @@ void Title::timeout() {
}
bool Title::msgKeypress(const KeypressMessage &msg) {
- if (msg.keycode == Common::KEYCODE_ESCAPE) {
- // Show the main menu
- g_events->replaceView("AreYouReady");
-
- } else if (msg.keycode == Common::KEYCODE_SPACE) {
+ if (msg.keycode == Common::KEYCODE_SPACE) {
// Start showing game screens slideshow
cancelDelay();
_screenNum = 2;
@@ -145,6 +141,15 @@ bool Title::msgKeypress(const KeypressMessage &msg) {
return true;
}
+bool Title::msgAction(const ActionMessage &msg) {
+ if (msg._action == KEYBIND_ESCAPE) {
+ g_events->replaceView("AreYouReady");
+ return true;
+ }
+
+ return false;
+}
+
} // namespace Views
} // namespace MM1
} // namespace MM
diff --git a/engines/mm/mm1/views/title.h b/engines/mm/mm1/views/title.h
index 068c7286f73..0b1d61ba340 100644
--- a/engines/mm/mm1/views/title.h
+++ b/engines/mm/mm1/views/title.h
@@ -64,6 +64,10 @@ public:
*/
bool msgKeypress(const KeypressMessage &msg) override;
+ /**
+ * Handle actions
+ */
+ bool msgAction(const ActionMessage &msg) override;
};
} // namespace Views
diff --git a/engines/mm/mm1/views_enh/character_info.cpp b/engines/mm/mm1/views_enh/character_info.cpp
index ba4b90f29d7..0daf45a15fa 100644
--- a/engines/mm/mm1/views_enh/character_info.cpp
+++ b/engines/mm/mm1/views_enh/character_info.cpp
@@ -101,9 +101,6 @@ bool CharacterInfo::msgKeypress(const KeypressMessage &msg) {
int idx;
switch (msg.keycode) {
- case Common::KEYCODE_ESCAPE:
- close();
- return true;
case Common::KEYCODE_UP:
showCursor(false);
if (--_cursorCell < 0)
@@ -147,7 +144,10 @@ bool CharacterInfo::msgKeypress(const KeypressMessage &msg) {
}
bool CharacterInfo::msgAction(const ActionMessage &msg) {
- if (msg._action >= KEYBIND_VIEW_PARTY1 &&
+ if (msg._action == KEYBIND_ESCAPE) {
+ close();
+ return true;
+ } else if (msg._action >= KEYBIND_VIEW_PARTY1 &&
msg._action <= KEYBIND_VIEW_PARTY6) {
g_globals->_currCharacter = &g_globals->_party[
msg._action - KEYBIND_VIEW_PARTY1];
diff --git a/engines/mm/mm1/views_enh/game_messages.cpp b/engines/mm/mm1/views_enh/game_messages.cpp
index 1557244208c..33ee4cb0df7 100644
--- a/engines/mm/mm1/views_enh/game_messages.cpp
+++ b/engines/mm/mm1/views_enh/game_messages.cpp
@@ -107,6 +107,16 @@ bool GameMessages::msgKeypress(const KeypressMessage &msg) {
return false;
}
+bool GameMessages::msgAction(const ActionMessage &msg) {
+ if (msg._action == KEYBIND_ESCAPE && g_events->focusedView() == this) {
+ close();
+ g_events->drawElements();
+ return true;
+ }
+
+ return false;
+}
+
bool GameMessages::msgMouseDown(const MouseDownMessage &msg) {
// If yes/no prompting, also pass events to buttons view
if (_ynCallback)
diff --git a/engines/mm/mm1/views_enh/game_messages.h b/engines/mm/mm1/views_enh/game_messages.h
index fc3740b9e2e..1dbf0802361 100644
--- a/engines/mm/mm1/views_enh/game_messages.h
+++ b/engines/mm/mm1/views_enh/game_messages.h
@@ -47,6 +47,7 @@ public:
void draw() override;
bool msgInfo(const InfoMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
bool msgMouseDown(const MouseDownMessage &msg) override;
bool msgMouseUp(const MouseUpMessage &msg) override;
};
diff --git a/engines/mm/mm1/views_enh/quick_ref.cpp b/engines/mm/mm1/views_enh/quick_ref.cpp
index dc8fd55c8d6..f6f1abd6e24 100644
--- a/engines/mm/mm1/views_enh/quick_ref.cpp
+++ b/engines/mm/mm1/views_enh/quick_ref.cpp
@@ -128,13 +128,11 @@ bool QuickRef::msgAction(const ActionMessage &msg) {
replaceView("CharacterInfo");
}
}
- break;
+ return true;
}
default:
- break;
+ return ScrollPopup::msgAction(msg);
}
-
- return false;
}
bool QuickRef::isInCombat() const {
diff --git a/engines/mm/mm1/views_enh/scroll_popup.cpp b/engines/mm/mm1/views_enh/scroll_popup.cpp
index 64b600f3d21..a9d970c75f5 100644
--- a/engines/mm/mm1/views_enh/scroll_popup.cpp
+++ b/engines/mm/mm1/views_enh/scroll_popup.cpp
@@ -39,6 +39,16 @@ bool ScrollPopup::msgMouseUp(const MouseUpMessage &msg) {
return true;
}
+bool ScrollPopup::msgAction(const ActionMessage &msg) {
+ if (msg._action == KEYBIND_ESCAPE) {
+ close();
+ return true;
+ }
+
+ return false;
+}
+
+
} // namespace ViewsEnh
} // namespace MM1
} // namespace MM
diff --git a/engines/mm/mm1/views_enh/scroll_popup.h b/engines/mm/mm1/views_enh/scroll_popup.h
index dea74ce6a80..d941c7d83e4 100644
--- a/engines/mm/mm1/views_enh/scroll_popup.h
+++ b/engines/mm/mm1/views_enh/scroll_popup.h
@@ -34,6 +34,7 @@ public:
bool msgKeypress(const KeypressMessage &msg) override;
bool msgMouseUp(const MouseUpMessage &msg) override;
+ bool msgAction(const ActionMessage &msg) override;
};
} // namespace ViewsEnh
More information about the Scummvm-git-logs
mailing list