[Scummvm-git-logs] scummvm master -> 3cf7a2fe3d5cee2b0ee42d89a3fb3d439533cfdf

dreammaster noreply at scummvm.org
Fri Feb 3 05:18:14 UTC 2023


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

Summary:
2c919436e2 MM: MM1: Move to next char/monster after a monster flees
3cf7a2fe3d MM: MM1: Fix defeated monsters display at end of combat


Commit: 2c919436e2ffa1826ee331c9945676f1e9ece253
    https://github.com/scummvm/scummvm/commit/2c919436e2ffa1826ee331c9945676f1e9ece253
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-02T21:18:05-08:00

Commit Message:
MM: MM1: Move to next char/monster after a monster flees

Changed paths:
    engines/mm/mm1/views/combat.cpp


diff --git a/engines/mm/mm1/views/combat.cpp b/engines/mm/mm1/views/combat.cpp
index f8dc7bfd1ba..fb4ad2800a5 100644
--- a/engines/mm/mm1/views/combat.cpp
+++ b/engines/mm/mm1/views/combat.cpp
@@ -190,12 +190,9 @@ void Combat::timeout() {
 	case MONSTERS_AFFECTED:
 	case CHAR_ATTACKS:
 	case NO_EFFECT:
-		removeDeadMonsters();
-		combatLoop();
-		break;
 	case MONSTER_FLEES:
 		removeDeadMonsters();
-		checkMonsterSpells();
+		combatLoop();
 		break;
 	case MONSTER_WANDERS:
 	case INFILTRATION:


Commit: 3cf7a2fe3d5cee2b0ee42d89a3fb3d439533cfdf
    https://github.com/scummvm/scummvm/commit/3cf7a2fe3d5cee2b0ee42d89a3fb3d439533cfdf
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-02T21:18:05-08:00

Commit Message:
MM: MM1: Fix defeated monsters display at end of combat

Changed paths:
    engines/mm/mm1/game/combat.cpp
    engines/mm/mm1/views/combat.cpp


diff --git a/engines/mm/mm1/game/combat.cpp b/engines/mm/mm1/game/combat.cpp
index b2f63e9a4d2..9195e7c55fa 100644
--- a/engines/mm/mm1/game/combat.cpp
+++ b/engines/mm/mm1/game/combat.cpp
@@ -346,10 +346,7 @@ void Combat::defeatedMonsters() {
 			g_globals->_combatParty[i]->_exp += _totalExperience;
 	}
 
-	// Update the party's characters
-	g_globals->_party.combatDone();
-
-	combatDone();
+	setMode(DEFEATED_MONSTERS);
 }
 
 void Combat::setTreasure() {
@@ -632,7 +629,7 @@ void Combat::monsterAction() {
 bool Combat::checkMonsterSpells() {
 	Encounter &enc = g_globals->_encounters;
 	if (_remainingMonsters.empty()) {
-		setMode(DEFEATED_MONSTERS);
+		defeatedMonsters();
 		return true;
 	}
 
@@ -1615,6 +1612,9 @@ void Combat::combatDone() {
 	g_globals->_activeSpells._s.shield = 0;
 	g_globals->_activeSpells._s.power_shield = 0;
 
+	// Update the party's characters
+	g_globals->_party.combatDone();
+
 	// Rearrange the party to match the combat order
 	g_globals->_party.rearrange(g_globals->_combatParty);
 }
diff --git a/engines/mm/mm1/views/combat.cpp b/engines/mm/mm1/views/combat.cpp
index fb4ad2800a5..fd7cf956fe3 100644
--- a/engines/mm/mm1/views/combat.cpp
+++ b/engines/mm/mm1/views/combat.cpp
@@ -139,6 +139,11 @@ void Combat::draw() {
 		writeCharAttackNoEffect();
 		delaySeconds(3);
 		return;
+	case DEFEATED_MONSTERS:
+		writeDefeat();
+		Sound::sound2(SOUND_3);
+		delaySeconds(3);
+		return;
 	default:
 		break;
 	}
@@ -156,12 +161,6 @@ void Combat::draw() {
 		writeOptions();
 		break;
 
-	case DEFEATED_MONSTERS:
-		writeDefeat();
-		Sound::sound2(SOUND_3);
-		delaySeconds(5);
-		break;
-
 	case SPELL_RESULT:
 		writeSpellResult();
 		if (_spellResult._delaySeconds)
@@ -207,17 +206,9 @@ void Combat::timeout() {
 	case WAITS_FOR_OPENING:
 		combatLoop(true);
 		break;
-	case DEFEATED_MONSTERS: {
-		auto &spells = g_globals->_activeSpells;
-		spells._s.bless = 0;
-		spells._s.invisbility = 0;
-		spells._s.shield = 0;
-		spells._s.power_shield = 0;
-
-		close();
-		g_events->send("Game", GameMessage("UPDATE"));
+	case DEFEATED_MONSTERS:
+		combatDone();
 		break;
-	}
 	case SPELL_RESULT:
 		if (_spellResult._timeoutCallback)
 			_spellResult._timeoutCallback();
@@ -583,13 +574,10 @@ void Combat::clearPartyArea() {
 }
 
 void Combat::writeDefeat() {
-	resetBottom();
-	writeString(10, 0, "+----------------------------+");
-	for (int y = 1; y < 8; ++y) {
-		writeChar(10, y, '!');
-		writeChar(37, y, '!');
-	}
 	writeString(10, 0, "+----------------------------+");
+	for (int y = 1; y < 8; ++y)
+		writeString(10, y, "!                            !");
+	writeString(10, 8, "+----------------------------+");
 
 	writeString(10, 2, STRING["dialogs.combat.defeating1"]);
 	writeString(10, 4, STRING["dialogs.combat.defeating2"]);
@@ -872,7 +860,9 @@ void Combat::displaySpellResult(const InfoMessage &msg) {
 
 void Combat::combatDone() {
 	Game::Combat::combatDone();
+
 	close();
+	g_events->send("Game", GameMessage("UPDATE"));
 }
 
 } // namespace Views




More information about the Scummvm-git-logs mailing list