[Scummvm-git-logs] scummvm master -> 11766609a8e06351cdbc59e033eb1048b0a440c1

dreammaster noreply at scummvm.org
Sun Jan 18 07:49:49 UTC 2026


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

Summary:
11766609a8 MM: MM1: Fix bugged monster names in combat


Commit: 11766609a8e06351cdbc59e033eb1048b0a440c1
    https://github.com/scummvm/scummvm/commit/11766609a8e06351cdbc59e033eb1048b0a440c1
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-01-18T18:48:10+11:00

Commit Message:
MM: MM1: Fix bugged monster names in combat

This fixes #16460. It also contains some left over work from
the previous treasure items bugfix for the non-enhanced mode
that I forgot to include.

Changed paths:
    NEWS.md
    engines/mm/mm1/views/combat.cpp
    engines/mm/mm1/views/search.cpp
    engines/mm/mm1/views_enh/combat.cpp


diff --git a/NEWS.md b/NEWS.md
index 87d0ce47cc2..f08be6af4d9 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -3,6 +3,10 @@ For a more comprehensive changelog of the latest experimental code, see:
 
 #### 2026.1.1 (2026-XX-XX)
 
+MM:
+	- Fixed M&M1 memory corruption on exit
+	- Fixed M&M1 display issues/corruption getting items from treasure chests
+	- Fixed M&M1 showing incorrect name for attacking monsters in combat
 
 #### 2026.1.0 (2026-01-31)
 
diff --git a/engines/mm/mm1/views/combat.cpp b/engines/mm/mm1/views/combat.cpp
index 56eeb93118a..b753a6968d2 100644
--- a/engines/mm/mm1/views/combat.cpp
+++ b/engines/mm/mm1/views/combat.cpp
@@ -533,6 +533,7 @@ void Combat::writeMonsters() {
 }
 
 void Combat::writeMonsterStatus(int monsterNum) {
+	auto *currMonster = _monsterP;
 	_monsterP = _remainingMonsters[monsterNum];
 	monsterIndexOf();
 	byte statusBits = _remainingMonsters[monsterNum]->_status;
@@ -557,6 +558,8 @@ void Combat::writeMonsterStatus(int monsterNum) {
 	} else {
 		writeSpaces(40 - _textPos.x);
 	}
+
+	_monsterP = currMonster;
 }
 
 void Combat::writeDots() {
diff --git a/engines/mm/mm1/views/search.cpp b/engines/mm/mm1/views/search.cpp
index 117b682cce8..19946c44922 100644
--- a/engines/mm/mm1/views/search.cpp
+++ b/engines/mm/mm1/views/search.cpp
@@ -400,6 +400,7 @@ void Search::drawTreasure() {
 void Search::drawItem() {
 	Treasure &treasure = g_globals->_treasure;
 	int itemId = treasure.removeItem();
+	_lineNum = 0;
 
 	// Iterate through any treasure items
 	if (itemId != 0) {
@@ -421,8 +422,13 @@ void Search::drawItem() {
 				item->_name.c_str()
 			));
 
-			delaySeconds(2);
-			return;
+			if (treasure.hasItems()) {
+				delaySeconds(2);
+				return;
+			} else {
+				// Finished final item, so go down below to switch to items done
+				break;
+			}
 		}
 	}
 
diff --git a/engines/mm/mm1/views_enh/combat.cpp b/engines/mm/mm1/views_enh/combat.cpp
index 084fbde874d..ef0801c4d92 100644
--- a/engines/mm/mm1/views_enh/combat.cpp
+++ b/engines/mm/mm1/views_enh/combat.cpp
@@ -656,6 +656,7 @@ void Combat::writeMonsters() {
 }
 
 void Combat::writeMonsterStatus(int monsterNum) {
+	auto *currMonster = _monsterP;
 	_monsterP = _remainingMonsters[monsterNum];
 	monsterIndexOf();
 	byte statusBits = _remainingMonsters[monsterNum]->_status;
@@ -678,6 +679,8 @@ void Combat::writeMonsterStatus(int monsterNum) {
 		writeDots();
 		writeString(STRING["dialogs.combat.status.wounded"]);
 	}
+
+	_monsterP = currMonster;
 }
 
 void Combat::writeDots() {




More information about the Scummvm-git-logs mailing list