[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