[Scummvm-git-logs] scummvm master -> 7b543ba883b6cad40bc04be1272bd639ad2fb62f
dreammaster
noreply at scummvm.org
Sat Feb 25 04:02:47 UTC 2023
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
3a79bede8e MM: MM1: Fix clicking buttons in Cast Spell view
e1889bb9a6 MM: MM1: Better handling of single turn message displays
06ddef22f3 MM: MM1: Fix button coordinates for spellbook
7b543ba883 MM: MM1: Properly redraw Cast Spell after closing spellbook
Commit: 3a79bede8e1d32bc73eb9d9491b1e5e26946fcda
https://github.com/scummvm/scummvm/commit/3a79bede8e1d32bc73eb9d9491b1e5e26946fcda
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-24T19:23:11-08:00
Commit Message:
MM: MM1: Fix clicking buttons in Cast Spell view
Changed paths:
engines/mm/mm1/views_enh/party_view.cpp
engines/mm/mm1/views_enh/scroll_view.cpp
diff --git a/engines/mm/mm1/views_enh/party_view.cpp b/engines/mm/mm1/views_enh/party_view.cpp
index d2a21076da5..be65d6869b1 100644
--- a/engines/mm/mm1/views_enh/party_view.cpp
+++ b/engines/mm/mm1/views_enh/party_view.cpp
@@ -49,10 +49,11 @@ bool PartyView::msgUnfocus(const UnfocusMessage &msg) {
bool PartyView::msgMouseDown(const MouseDownMessage &msg) {
if (canSwitchChar()) {
- return send("GameParty", msg);
- } else {
- return ScrollView::msgMouseDown(msg);
+ if (send("GameParty", msg))
+ return true;
}
+
+ return ScrollView::msgMouseDown(msg);
}
bool PartyView::msgGame(const GameMessage &msg) {
diff --git a/engines/mm/mm1/views_enh/scroll_view.cpp b/engines/mm/mm1/views_enh/scroll_view.cpp
index 64aeb9808d3..dc00d63a4dc 100644
--- a/engines/mm/mm1/views_enh/scroll_view.cpp
+++ b/engines/mm/mm1/views_enh/scroll_view.cpp
@@ -199,7 +199,10 @@ bool ScrollView::msgMouseUp(const MouseUpMessage &msg) {
int ScrollView::getButtonAt(const Common::Point &pos) {
for (uint i = 0; i < _buttons.size(); ++i) {
- if (_buttons[i]._bounds.contains(pos))
+ Common::Rect r = _buttons[i]._bounds;
+ r.translate(_innerBounds.left, _innerBounds.top);
+
+ if (r.contains(pos))
return i;
}
Commit: e1889bb9a62fca18fa3fae9a1afaf747b95a0337
https://github.com/scummvm/scummvm/commit/e1889bb9a62fca18fa3fae9a1afaf747b95a0337
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-24T19:23:12-08:00
Commit Message:
MM: MM1: Better handling of single turn message displays
Changed paths:
engines/mm/mm1/game/view_base.cpp
engines/mm/mm1/views_enh/dialogs.h
engines/mm/mm1/views_enh/game.cpp
engines/mm/mm1/views_enh/game.h
engines/mm/mm1/views_enh/game_messages.cpp
engines/mm/mm1/views_enh/game_messages.h
diff --git a/engines/mm/mm1/game/view_base.cpp b/engines/mm/mm1/game/view_base.cpp
index 3225cdf8375..3e95d229c87 100644
--- a/engines/mm/mm1/game/view_base.cpp
+++ b/engines/mm/mm1/game/view_base.cpp
@@ -78,10 +78,6 @@ darkness:
bool ViewBase::msgAction(const ActionMessage &msg) {
switch (msg._action) {
- case KEYBIND_SELECT:
- // Shortcut for closing messages
- g_events->redraw();
- break;
case KEYBIND_FORWARDS:
case KEYBIND_STRAFE_LEFT:
case KEYBIND_STRAFE_RIGHT:
diff --git a/engines/mm/mm1/views_enh/dialogs.h b/engines/mm/mm1/views_enh/dialogs.h
index b32cc784c2e..e1d8ecc94ab 100644
--- a/engines/mm/mm1/views_enh/dialogs.h
+++ b/engines/mm/mm1/views_enh/dialogs.h
@@ -30,6 +30,7 @@
#include "mm/mm1/views_enh/character_info.h"
#include "mm/mm1/views_enh/character_select.h"
#include "mm/mm1/views_enh/game.h"
+#include "mm/mm1/views_enh/game_messages.h"
#include "mm/mm1/views_enh/main_menu.h"
#include "mm/mm1/views_enh/map_popup.h"
#include "mm/mm1/views_enh/quick_ref.h"
@@ -44,9 +45,6 @@ namespace ViewsEnh {
struct Dialogs {
private:
- ViewsEnh::CharacterInfo _characterInfo;
- ViewsEnh::Game _game;
-
// Unenhanced views
Views::Characters _characters;
Views::CreateCharacters _createCharacters;
@@ -58,7 +56,10 @@ private:
ViewsEnh::Locations::Temple _temple;
ViewsEnh::Spells::CastSpell _castSpell;
ViewsEnh::Spells::Spellbook _spellbook;
+ ViewsEnh::CharacterInfo _characterInfo;
ViewsEnh::CharacterSelect _characterSelect;
+ ViewsEnh::Game _game;
+ ViewsEnh::GameMessages _gameMessages;
ViewsEnh::MainMenu _mainMenu;
ViewsEnh::MapPopup _mapPopup;
ViewsEnh::QuickRef _quickRef;
diff --git a/engines/mm/mm1/views_enh/game.cpp b/engines/mm/mm1/views_enh/game.cpp
index 6ceed2843c1..0edb0d36951 100644
--- a/engines/mm/mm1/views_enh/game.cpp
+++ b/engines/mm/mm1/views_enh/game.cpp
@@ -31,7 +31,6 @@ namespace ViewsEnh {
Game::Game() : TextView("Game"),
_view(this),
_commands(this),
- _messages(this),
_party(this) {
_view.setBounds(Common::Rect(8, 15, 224, 130));
diff --git a/engines/mm/mm1/views_enh/game.h b/engines/mm/mm1/views_enh/game.h
index 050a11e67cb..68d33d22413 100644
--- a/engines/mm/mm1/views_enh/game.h
+++ b/engines/mm/mm1/views_enh/game.h
@@ -38,7 +38,6 @@ private:
Graphics::ManagedSurface _bg;
Views::GameView _view;
GameCommands _commands;
- GameMessages _messages;
GameParty _party;
public:
Game();
diff --git a/engines/mm/mm1/views_enh/game_messages.cpp b/engines/mm/mm1/views_enh/game_messages.cpp
index fe3f965fa71..2edcd8bde2f 100644
--- a/engines/mm/mm1/views_enh/game_messages.cpp
+++ b/engines/mm/mm1/views_enh/game_messages.cpp
@@ -47,52 +47,51 @@ bool GameMessages::YesNo::msgKeypress(const KeypressMessage &msg) {
/*------------------------------------------------------------------------*/
-GameMessages::GameMessages(UIElement *owner) :
- ScrollText("GameMessages", owner) {
+GameMessages::GameMessages() : ScrollText("GameMessages") {
+ setBounds(Common::Rect(0, 144, 234, 200));
}
void GameMessages::draw() {
- // Only draw non-focused messages for a single turn
- if (_show || g_events->focusedView() == this) {
- ScrollText::draw();
- if (_ynCallback) {
- _yesNo.resetSelectedButton();
- _yesNo.draw();
- }
+ ScrollText::draw();
- _show = false;
+ if (_ynCallback) {
+ _yesNo.resetSelectedButton();
+ _yesNo.draw();
}
}
-bool GameMessages::msgInfo(const InfoMessage &msg) {
- if (msg._ynCallback || msg._keyCallback) {
- // Do a first draw to show 3d view at new position
- g_events->redraw();
- g_events->drawElements();
-
- addView(this);
- }
+bool GameMessages::msgFocus(const FocusMessage &msg) {
+ MetaEngine::setKeybindingMode(_ynCallback || _keyCallback ?
+ KeybindingMode::KBMODE_MENUS :
+ KeybindingMode::KBMODE_NORMAL);
+ return true;
+}
- setBounds(Common::Rect(0, 18 * 8, 234, 200));
+bool GameMessages::msgInfo(const InfoMessage &msg) {
+ // Do a first draw to show 3d view at new position
+ g_events->redraw();
+ g_events->draw();
- _show = true;
_ynCallback = msg._ynCallback;
_keyCallback = msg._keyCallback;
+ // Add the view
+ addView(this);
+
// Process the lines
clear();
for (auto line : msg._lines)
addText(line._text, line.y, 0, line._align, line.x * 8);
- redraw();
return true;
}
bool GameMessages::msgKeypress(const KeypressMessage &msg) {
- if (g_events->focusedView() == this) {
- if (_keyCallback) {
- _keyCallback(msg);
- } else if (msg.keycode == Common::KEYCODE_n) {
+ if (_keyCallback) {
+ _keyCallback(msg);
+
+ } else if (_ynCallback) {
+ if (msg.keycode == Common::KEYCODE_n) {
close();
g_events->drawElements();
} else if (msg.keycode == Common::KEYCODE_y) {
@@ -100,15 +99,20 @@ bool GameMessages::msgKeypress(const KeypressMessage &msg) {
g_events->drawElements();
_ynCallback();
}
+ } else {
+ // Displayed message, any keypress closes the window
+ // and passes control to the game
+ close();
- return true;
+ if (msg.keycode != Common::KEYCODE_SPACE)
+ send("Game", msg);
}
- return false;
+ return true;
}
bool GameMessages::msgAction(const ActionMessage &msg) {
- if (g_events->focusedView()) {
+ if (_ynCallback || _keyCallback) {
switch (msg._action) {
case KEYBIND_ESCAPE:
if (_keyCallback) {
@@ -130,6 +134,11 @@ bool GameMessages::msgAction(const ActionMessage &msg) {
default:
break;
}
+ } else {
+ // Single turn message display
+ close();
+ if (msg._action != KEYBIND_SELECT)
+ return send("Game", msg);
}
return false;
diff --git a/engines/mm/mm1/views_enh/game_messages.h b/engines/mm/mm1/views_enh/game_messages.h
index 1dbf0802361..6ca7acf6b6d 100644
--- a/engines/mm/mm1/views_enh/game_messages.h
+++ b/engines/mm/mm1/views_enh/game_messages.h
@@ -36,15 +36,15 @@ class GameMessages : public ScrollText {
bool msgKeypress(const KeypressMessage &msg) override;
};
private:
- bool _show = false;
YNCallback _ynCallback = nullptr;
KeyCallback _keyCallback = nullptr;
YesNo _yesNo;
public:
- GameMessages(UIElement *owner);
+ GameMessages();
virtual ~GameMessages() {}
void draw() override;
+ bool msgFocus(const FocusMessage &msg) override;
bool msgInfo(const InfoMessage &msg) override;
bool msgKeypress(const KeypressMessage &msg) override;
bool msgAction(const ActionMessage &msg) override;
Commit: 06ddef22f3a684b877de292b8d68d0e066b5342d
https://github.com/scummvm/scummvm/commit/06ddef22f3a684b877de292b8d68d0e066b5342d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-24T19:50:28-08:00
Commit Message:
MM: MM1: Fix button coordinates for spellbook
Changed paths:
engines/mm/mm1/views_enh/spells/spellbook.cpp
diff --git a/engines/mm/mm1/views_enh/spells/spellbook.cpp b/engines/mm/mm1/views_enh/spells/spellbook.cpp
index e7e688ed21f..c314590cb97 100644
--- a/engines/mm/mm1/views_enh/spells/spellbook.cpp
+++ b/engines/mm/mm1/views_enh/spells/spellbook.cpp
@@ -39,20 +39,21 @@ void Spellbook::addButtons() {
addButton(&g_globals->_mainIcons, Common::Point(187, 111), 2, Common::KEYCODE_DOWN);
addButton(&_scrollSprites, Common::Point(100, 109), 5, KEYBIND_SELECT);
- addButton(Common::Rect(40, 28, 187, 36), Common::KEYCODE_1);
- addButton(Common::Rect(40, 37, 187, 45), Common::KEYCODE_2);
- addButton(Common::Rect(40, 46, 187, 54), Common::KEYCODE_3);
- addButton(Common::Rect(40, 55, 187, 63), Common::KEYCODE_4);
- addButton(Common::Rect(40, 64, 187, 72), Common::KEYCODE_5);
- addButton(Common::Rect(40, 73, 187, 81), Common::KEYCODE_6);
- addButton(Common::Rect(40, 82, 187, 90), Common::KEYCODE_7);
- addButton(Common::Rect(40, 91, 187, 99), Common::KEYCODE_8);
- addButton(Common::Rect(40, 100, 187, 108), Common::KEYCODE_9);
- addButton(Common::Rect(40, 109, 187, 117), Common::KEYCODE_0);
- addButton(Common::Rect(174, 123, 198, 133), KEYBIND_ESCAPE);
- addButton(Common::Rect(187, 35, 198, 73), Common::KEYCODE_PAGEUP);
- addButton(Common::Rect(187, 74, 198, 112), Common::KEYCODE_PAGEDOWN);
- addButton(Common::Rect(132, 123, 168, 133), KEYBIND_SELECT);
+ addButton(Common::Rect(5, 14, 152, 22), Common::KEYCODE_1);
+ addButton(Common::Rect(5, 23, 152, 31), Common::KEYCODE_2);
+ addButton(Common::Rect(5, 32, 152, 40), Common::KEYCODE_3);
+ addButton(Common::Rect(5, 41, 152, 49), Common::KEYCODE_4);
+ addButton(Common::Rect(5, 50, 152, 58), Common::KEYCODE_5);
+ addButton(Common::Rect(5, 59, 152, 67), Common::KEYCODE_6);
+ addButton(Common::Rect(5, 68, 152, 76), Common::KEYCODE_7);
+ addButton(Common::Rect(5, 77, 152, 85), Common::KEYCODE_8);
+ addButton(Common::Rect(5, 86, 152, 94), Common::KEYCODE_9);
+ addButton(Common::Rect(5, 95, 152, 103), Common::KEYCODE_0);
+
+ addButton(Common::Rect(139, 109, 163, 119), KEYBIND_ESCAPE);
+ addButton(Common::Rect(152, 21, 163, 59), Common::KEYCODE_PAGEUP);
+ addButton(Common::Rect(152, 60, 163, 98), Common::KEYCODE_PAGEDOWN);
+ addButton(Common::Rect(97, 109, 163, 119), KEYBIND_SELECT);
}
bool Spellbook::msgFocus(const FocusMessage &msg) {
Commit: 7b543ba883b6cad40bc04be1272bd639ad2fb62f
https://github.com/scummvm/scummvm/commit/7b543ba883b6cad40bc04be1272bd639ad2fb62f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-24T20:02:31-08:00
Commit Message:
MM: MM1: Properly redraw Cast Spell after closing spellbook
Changed paths:
engines/mm/mm1/events.cpp
engines/mm/mm1/views_enh/spells/spellbook.cpp
diff --git a/engines/mm/mm1/events.cpp b/engines/mm/mm1/events.cpp
index 2466721ae27..7939d2da669 100644
--- a/engines/mm/mm1/events.cpp
+++ b/engines/mm/mm1/events.cpp
@@ -147,8 +147,10 @@ void Events::popView() {
_views[i]->draw();
}
- if (!_views.empty())
+ if (!_views.empty()) {
focusedView()->msgFocus(FocusMessage());
+ focusedView()->redraw();
+ }
}
bool Events::isPresent(const Common::String &name) const {
diff --git a/engines/mm/mm1/views_enh/spells/spellbook.cpp b/engines/mm/mm1/views_enh/spells/spellbook.cpp
index c314590cb97..7cdc9932518 100644
--- a/engines/mm/mm1/views_enh/spells/spellbook.cpp
+++ b/engines/mm/mm1/views_enh/spells/spellbook.cpp
@@ -176,8 +176,8 @@ bool Spellbook::msgAction(const ActionMessage &msg) {
return true;
case KEYBIND_SELECT:
- close();
spellSelected();
+ close();
return true;
default:
@@ -232,9 +232,6 @@ void Spellbook::spellSelected() {
c._combatSpell = spellIndex;
else
c._nonCombatSpell = spellIndex;
-
- // Update the cast spell dialog with the new spell
- send("CastSpell", GameMessage("UPDATE"));
}
} // namespace Spells
More information about the Scummvm-git-logs
mailing list