[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