[Scummvm-git-logs] scummvm master -> 976457f9df65c1b24c1f9a3d571352614efbd711
dreammaster
noreply at scummvm.org
Tue Mar 21 05:28:44 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:
80d1e88e8c MM: MM1: Add character switching to inventory items
0101f40c94 MM: MM1: Don't allow switching characters in combat mode
9ebde66b31 MM: MM1: Allow mouse clicks to select items
976457f9df MM: MM1: Fix clicking buttons in character info
Commit: 80d1e88e8cecb7ea3221e8585703beb5166daf32
https://github.com/scummvm/scummvm/commit/80d1e88e8cecb7ea3221e8585703beb5166daf32
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-03-20T20:55:01-07:00
Commit Message:
MM: MM1: Add character switching to inventory items
Changed paths:
engines/mm/mm1/views_enh/character_inventory.cpp
engines/mm/mm1/views_enh/character_inventory.h
engines/mm/mm1/views_enh/items_view.cpp
engines/mm/mm1/views_enh/items_view.h
engines/mm/mm1/views_enh/locations/blacksmith_items.cpp
engines/mm/mm1/views_enh/locations/blacksmith_items.h
diff --git a/engines/mm/mm1/views_enh/character_inventory.cpp b/engines/mm/mm1/views_enh/character_inventory.cpp
index 87105be7851..dee7c4c902a 100644
--- a/engines/mm/mm1/views_enh/character_inventory.cpp
+++ b/engines/mm/mm1/views_enh/character_inventory.cpp
@@ -57,7 +57,7 @@ bool CharacterInventory::msgGame(const GameMessage &msg) {
return true;
}
- return false;
+ return ItemsView::msgGame(msg);
}
void CharacterInventory::draw() {
@@ -135,6 +135,11 @@ void CharacterInventory::itemSelected() {
// No implementation
}
+void CharacterInventory::selectedCharChanged() {
+ populateItems();
+ redraw();
+}
+
void CharacterInventory::selectButton(SelectedButton btnMode) {
_selectedButton = btnMode;
diff --git a/engines/mm/mm1/views_enh/character_inventory.h b/engines/mm/mm1/views_enh/character_inventory.h
index f9a74dd2953..0282d659a81 100644
--- a/engines/mm/mm1/views_enh/character_inventory.h
+++ b/engines/mm/mm1/views_enh/character_inventory.h
@@ -81,6 +81,11 @@ protected:
*/
void itemSelected() override;
+ /**
+ * When the selected character is changed
+ */
+ void selectedCharChanged() override;
+
public:
CharacterInventory();
virtual ~CharacterInventory() {}
diff --git a/engines/mm/mm1/views_enh/items_view.cpp b/engines/mm/mm1/views_enh/items_view.cpp
index 3dd0ae88708..87ab5deaee0 100644
--- a/engines/mm/mm1/views_enh/items_view.cpp
+++ b/engines/mm/mm1/views_enh/items_view.cpp
@@ -49,7 +49,7 @@ void ItemsView::addButton(int frame, const Common::String &text,
}
bool ItemsView::msgFocus(const FocusMessage &msg) {
- ScrollView::msgFocus(msg);
+ PartyView::msgFocus(msg);
// Disable the normal '1' to '6' character selection keybindings,
// since we're using them in this dialog for item selection
@@ -59,6 +59,15 @@ bool ItemsView::msgFocus(const FocusMessage &msg) {
return true;
}
+bool ItemsView::msgGame(const GameMessage &msg) {
+ if (msg._name == "UPDATE") {
+ selectedCharChanged();
+ return true;
+ }
+
+ return PartyView::msgGame(msg);
+}
+
void ItemsView::draw() {
// Draw the outer frame and buttons
PartyView::draw();
diff --git a/engines/mm/mm1/views_enh/items_view.h b/engines/mm/mm1/views_enh/items_view.h
index 905721b2b56..04051f228e6 100644
--- a/engines/mm/mm1/views_enh/items_view.h
+++ b/engines/mm/mm1/views_enh/items_view.h
@@ -71,11 +71,17 @@ protected:
*/
virtual void itemSelected() = 0;
+ /**
+ * When the selected character is changed
+ */
+ virtual void selectedCharChanged() = 0;
+
public:
ItemsView(const Common::String &name);
virtual ~ItemsView() {}
bool msgFocus(const FocusMessage &msg) override;
+ bool msgGame(const GameMessage &msg) override;
void draw() override;
bool msgKeypress(const KeypressMessage &msg) override;
bool msgAction(const ActionMessage &msg) override;
diff --git a/engines/mm/mm1/views_enh/locations/blacksmith_items.cpp b/engines/mm/mm1/views_enh/locations/blacksmith_items.cpp
index 0ecf291ee84..3c00ca5acf9 100644
--- a/engines/mm/mm1/views_enh/locations/blacksmith_items.cpp
+++ b/engines/mm/mm1/views_enh/locations/blacksmith_items.cpp
@@ -184,6 +184,11 @@ void BlacksmithItems::itemSelected() {
});
}
+void BlacksmithItems::selectedCharChanged() {
+ populateItems();
+ redraw();
+}
+
void BlacksmithItems::itemConfirmed() {
Character &c = *g_globals->_currCharacter;
Inventory &inv = c._backpack;
diff --git a/engines/mm/mm1/views_enh/locations/blacksmith_items.h b/engines/mm/mm1/views_enh/locations/blacksmith_items.h
index 1f6d06b2e39..ca7eac8652e 100644
--- a/engines/mm/mm1/views_enh/locations/blacksmith_items.h
+++ b/engines/mm/mm1/views_enh/locations/blacksmith_items.h
@@ -67,6 +67,11 @@ protected:
*/
void itemSelected() override;
+ /**
+ * When the selected character is changed
+ */
+ void selectedCharChanged() override;
+
public:
BlacksmithItems();
virtual ~BlacksmithItems() {}
Commit: 0101f40c944d49c6f7cb9c362a2fe43726b98a68
https://github.com/scummvm/scummvm/commit/0101f40c944d49c6f7cb9c362a2fe43726b98a68
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-03-20T21:21:57-07:00
Commit Message:
MM: MM1: Don't allow switching characters in combat mode
Changed paths:
engines/mm/mm1/views_enh/character_inventory.cpp
engines/mm/mm1/views_enh/character_inventory.h
diff --git a/engines/mm/mm1/views_enh/character_inventory.cpp b/engines/mm/mm1/views_enh/character_inventory.cpp
index dee7c4c902a..adf004dfd0f 100644
--- a/engines/mm/mm1/views_enh/character_inventory.cpp
+++ b/engines/mm/mm1/views_enh/character_inventory.cpp
@@ -41,6 +41,8 @@ CharacterInventory::CharacterInventory() : ItemsView("CharacterInventory") {
bool CharacterInventory::msgFocus(const FocusMessage &msg) {
ItemsView::msgFocus(msg);
+ _initialChar = g_globals->_currCharacter;
+ assert(_initialChar);
if (dynamic_cast<WhichItem *>(msg._priorView) == nullptr)
_mode = BACKPACK_MODE;
@@ -136,8 +138,16 @@ void CharacterInventory::itemSelected() {
}
void CharacterInventory::selectedCharChanged() {
- populateItems();
- redraw();
+ // When in combat, the current character can't be changed
+ if (g_events->isInCombat()) {
+ if (g_globals->_currCharacter != _initialChar) {
+ g_globals->_currCharacter = _initialChar;
+ g_events->send("GameParty", GameMessage("CHAR_HIGHLIGHT", (int)true));
+ }
+ } else {
+ populateItems();
+ redraw();
+ }
}
void CharacterInventory::selectButton(SelectedButton btnMode) {
diff --git a/engines/mm/mm1/views_enh/character_inventory.h b/engines/mm/mm1/views_enh/character_inventory.h
index 0282d659a81..06961ae47e5 100644
--- a/engines/mm/mm1/views_enh/character_inventory.h
+++ b/engines/mm/mm1/views_enh/character_inventory.h
@@ -23,6 +23,7 @@
#define MM1_VIEWS_ENH_CHARACTER_INVENTORY_H
#include "mm/mm1/views_enh/items_view.h"
+#include "mm/mm1/data/character.h"
#include "mm/mm1/game/equip_remove.h"
namespace MM {
@@ -39,6 +40,7 @@ private:
BTN_NONE, BTN_EQUIP, BTN_REMOVE, BTN_DISCARD
};
SelectedButton _selectedButton = BTN_NONE;
+ Character *_initialChar = nullptr;
/**
* Populates the list of items
Commit: 9ebde66b314d207b3244f8233c24dec25c034ab3
https://github.com/scummvm/scummvm/commit/9ebde66b314d207b3244f8233c24dec25c034ab3
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-03-20T22:18:26-07:00
Commit Message:
MM: MM1: Allow mouse clicks to select items
Changed paths:
engines/mm/mm1/views_enh/items_view.cpp
engines/mm/mm1/views_enh/items_view.h
diff --git a/engines/mm/mm1/views_enh/items_view.cpp b/engines/mm/mm1/views_enh/items_view.cpp
index 87ab5deaee0..f8f3d92f0f5 100644
--- a/engines/mm/mm1/views_enh/items_view.cpp
+++ b/engines/mm/mm1/views_enh/items_view.cpp
@@ -127,6 +127,26 @@ bool ItemsView::msgKeypress(const KeypressMessage &msg) {
return PartyView::msgKeypress(msg);
}
+bool ItemsView::msgMouseDown(const MouseDownMessage &msg) {
+ if (msg._pos.x >= (_innerBounds.left + 10) &&
+ msg._pos.x < _innerBounds.right) {
+ int y = msg._pos.y - (_innerBounds.top + 2 * 9);
+
+ if (y >= 0) {
+ int lineNum = y / 9;
+ if (lineNum < (int)_items.size()) {
+ _selectedItem = lineNum;
+ draw();
+
+ itemSelected();
+ return true;
+ }
+ }
+ }
+
+ return PartyView::msgMouseDown(msg);
+}
+
bool ItemsView::msgAction(const ActionMessage &msg) {
if (endDelay())
return true;
diff --git a/engines/mm/mm1/views_enh/items_view.h b/engines/mm/mm1/views_enh/items_view.h
index 04051f228e6..56c271decb2 100644
--- a/engines/mm/mm1/views_enh/items_view.h
+++ b/engines/mm/mm1/views_enh/items_view.h
@@ -84,6 +84,7 @@ public:
bool msgGame(const GameMessage &msg) override;
void draw() override;
bool msgKeypress(const KeypressMessage &msg) override;
+ bool msgMouseDown(const MouseDownMessage &msg) override;
bool msgAction(const ActionMessage &msg) override;
void timeout() override;
};
Commit: 976457f9df65c1b24c1f9a3d571352614efbd711
https://github.com/scummvm/scummvm/commit/976457f9df65c1b24c1f9a3d571352614efbd711
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-03-20T22:28:28-07:00
Commit Message:
MM: MM1: Fix clicking buttons in character info
Changed paths:
engines/mm/mm1/views_enh/character_info.cpp
diff --git a/engines/mm/mm1/views_enh/character_info.cpp b/engines/mm/mm1/views_enh/character_info.cpp
index 8e91cd2eb0f..23c39b64aa6 100644
--- a/engines/mm/mm1/views_enh/character_info.cpp
+++ b/engines/mm/mm1/views_enh/character_info.cpp
@@ -164,16 +164,33 @@ bool CharacterInfo::msgAction(const ActionMessage &msg) {
bool CharacterInfo::msgMouseUp(const MouseUpMessage &msg) {
// Check if a stat icon was clicked
Common::Rect r(25, 22);
- for (int i = 0; i < ICONS_COUNT; ++i) {
+ for (int i = 0; i < CHAR_ICONS_COUNT; ++i) {
r.moveTo(_innerBounds.left + ICONS[i]._x,
_innerBounds.top + ICONS[i]._y);
if (r.contains(msg._pos)) {
- showAttribute(i);
+ switch (i) {
+ case 18:
+ msgKeypress(Common::KeyState(Common::KEYCODE_i));
+ break;
+ case 19:
+ msgKeypress(Common::KeyState(Common::KEYCODE_q));
+ break;
+ case 20:
+ msgKeypress(Common::KeyState(Common::KEYCODE_e));
+ break;
+ case 21:
+ msgAction(ActionMessage(KEYBIND_ESCAPE));
+ break;
+ default:
+ showAttribute(i);
+ break;
+ }
+
return true;
}
}
- return ScrollView::msgMouseUp(msg);
+ return PartyView::msgMouseUp(msg);
}
void CharacterInfo::draw() {
More information about the Scummvm-git-logs
mailing list