[Scummvm-git-logs] scummvm master -> 1ee13fc19f9876bab9574ed3950deaa99dd4a870

dreammaster noreply at scummvm.org
Sun May 28 04:50:26 UTC 2023


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
1ee13fc19f MM: MM1: Fix using items in original version


Commit: 1ee13fc19f9876bab9574ed3950deaa99dd4a870
    https://github.com/scummvm/scummvm/commit/1ee13fc19f9876bab9574ed3950deaa99dd4a870
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-05-27T21:50:23-07:00

Commit Message:
MM: MM1: Fix using items in original version

Changed paths:
    engines/mm/mm1/data/character.cpp
    engines/mm/mm1/views/character_base.cpp
    engines/mm/mm1/views/character_info.cpp
    engines/mm/mm1/views/character_info.h


diff --git a/engines/mm/mm1/data/character.cpp b/engines/mm/mm1/data/character.cpp
index 263d8780353..1d913c56f17 100644
--- a/engines/mm/mm1/data/character.cpp
+++ b/engines/mm/mm1/data/character.cpp
@@ -382,16 +382,12 @@ Character::LevelIncrease Character::increaseLevel() {
 }
 
 Character::BuyResult Character::buyItem(byte itemId) {
-	g_globals->_items.getItem(itemId);
-
 	// Check if backpack is full
-	int slotIndex = 0;
-	while (slotIndex < INVENTORY_COUNT && _backpack[slotIndex])
-		++slotIndex;
-	if (slotIndex == INVENTORY_COUNT)
+	if (_backpack.full())
 		return BUY_BACKPACK_FULL;
 
 	// Check character has enough gold
+	g_globals->_items.getItem(itemId);
 	Item &item = g_globals->_currItem;
 	if (_gold < item._cost)
 		return BUY_NOT_ENOUGH_GOLD;
diff --git a/engines/mm/mm1/views/character_base.cpp b/engines/mm/mm1/views/character_base.cpp
index 5706081faae..d0549fc6e9e 100644
--- a/engines/mm/mm1/views/character_base.cpp
+++ b/engines/mm/mm1/views/character_base.cpp
@@ -140,22 +140,28 @@ void CharacterBase::printInventory() {
 	writeString(0, 12, STRING["stats.inventory"]);
 
 	// Print the equipped and backpack items
-	for (int i = 0; i < INVENTORY_COUNT; ++i) {
+	for (uint i = 0; i < INVENTORY_COUNT; ++i) {
 		// Equippied item
 		writeChar(0, 13 + i, '1' + i);
 		writeChar(')');
 		_textPos.x++;
-		if (re._equipped[i])
-			writeString(STRING[Common::String::format("stats.items.%d",
-				(int)re._equipped[i]._id)]);
+
+		if (i < re._equipped.size()) {
+			g_globals->_items.getItem(re._equipped[i]._id);
+			const Item &item = g_globals->_currItem;
+			writeString(item._name);
+		}
 
 		// Backpack item
 		writeChar(20, 13 + i, 'A' + i);
 		writeChar(')');
 		_textPos.x++;
-		if (re._backpack[i])
-			writeString(STRING[Common::String::format("stats.items.%d",
-			(int)re._backpack[i]._id)]);
+
+		if (i < re._backpack.size()) {
+			g_globals->_items.getItem(re._backpack[i]._id);
+			const Item &item = g_globals->_currItem;
+			writeString(item._name);
+		}
 	}
 }
 
diff --git a/engines/mm/mm1/views/character_info.cpp b/engines/mm/mm1/views/character_info.cpp
index 2511464396b..216d01bc69c 100644
--- a/engines/mm/mm1/views/character_info.cpp
+++ b/engines/mm/mm1/views/character_info.cpp
@@ -120,6 +120,12 @@ void CharacterInfo::timeout() {
 	}
 }
 
+bool CharacterInfo::msgFocus(const FocusMessage &msg) {
+	CharacterBase::msgFocus(msg);
+	_state = DISPLAY;
+	return true;
+}
+
 bool CharacterInfo::msgKeypress(const KeypressMessage &msg) {
 	switch (_state) {
 	case DISPLAY:
diff --git a/engines/mm/mm1/views/character_info.h b/engines/mm/mm1/views/character_info.h
index 3a6255f59ff..2a19856b67a 100644
--- a/engines/mm/mm1/views/character_info.h
+++ b/engines/mm/mm1/views/character_info.h
@@ -86,6 +86,7 @@ public:
 
 	void draw() override;
 	void timeout() override;
+	bool msgFocus(const FocusMessage &msg) override;
 	bool msgKeypress(const KeypressMessage &msg) override;
 	bool msgAction(const ActionMessage &msg) override;
 	bool msgGame(const GameMessage &msg) override;




More information about the Scummvm-git-logs mailing list