[Scummvm-git-logs] scummvm master -> d94d6545bdeb4b87127ab940a0e9595e93c2410d

dreammaster noreply at scummvm.org
Mon Feb 6 05:12:49 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:
22473ec955 MM: MM1: Fixed SpellsState _condition to be _damage
d94d6545bd MM: MM1: Fix spell result display casting wizard spells


Commit: 22473ec955a8aa018f3a4fc28f0a0afd10112b95
    https://github.com/scummvm/scummvm/commit/22473ec955a8aa018f3a4fc28f0a0afd10112b95
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2023-02-05T21:12:29-08:00

Commit Message:
MM: MM1: Fixed SpellsState _condition to be _damage

Changed paths:
    engines/mm/mm1/data/spells_state.h
    engines/mm/mm1/game/combat.cpp
    engines/mm/mm1/game/spells_monsters.cpp
    engines/mm/mm1/game/spells_party.cpp


diff --git a/engines/mm/mm1/data/spells_state.h b/engines/mm/mm1/data/spells_state.h
index f1d5987fbf4..df567b28d94 100644
--- a/engines/mm/mm1/data/spells_state.h
+++ b/engines/mm/mm1/data/spells_state.h
@@ -37,7 +37,7 @@ struct SpellsState {
 	// TODO: Is this variable different in different contexts?
 	// In some places it's used to hold a new condition,
 	// but others, like moonRay, uses it to hold Hp
-	byte _newCondition = 0;
+	byte _damage = 0;
 
 	/**
 	 * Synchronize data to/from savegames
@@ -48,7 +48,7 @@ struct SpellsState {
 		s.syncAsByte(_mmVal5);
 		s.syncAsByte(_mmVal7);
 		s.syncAsByte(_resistanceType);
-		s.syncAsByte(_newCondition);
+		s.syncAsByte(_damage);
 	}
 };
 
diff --git a/engines/mm/mm1/game/combat.cpp b/engines/mm/mm1/game/combat.cpp
index e6a1d56a1ac..91665bf68de 100644
--- a/engines/mm/mm1/game/combat.cpp
+++ b/engines/mm/mm1/game/combat.cpp
@@ -963,9 +963,9 @@ void Combat::iterateMonsters1Inner() {
 
 	} else {
 		enc._monsterList[getMonsterIndex()]._status |=
-			g_globals->_spellsState._newCondition;
+			g_globals->_spellsState._damage;
 
-		byte bits = g_globals->_spellsState._newCondition;
+		byte bits = g_globals->_spellsState._damage;
 		int effectNum;
 		for (effectNum = 0; effectNum < 8; ++effectNum, bits >>= 1) {
 			if (bits & 1)
@@ -1015,7 +1015,7 @@ void Combat::iterateMonsters2Inner() {
 		STRING["spells.casts_spell"].c_str());
 	const Common::String monsterName = _monsterP->_name;
 
-	_damage = g_globals->_spellsState._newCondition;
+	_damage = g_globals->_spellsState._damage;
 
 	bool affects = !monsterLevelThreshold();
 	if (affects) {
@@ -1161,7 +1161,7 @@ void Combat::summonLightning() {
 			g_globals->_currCharacter->_name,
 			STRING["spells.casts_spell"].c_str());
 
-		ss._newCondition = g_globals->_currCharacter->_level * 2 + 4;
+		ss._damage = g_globals->_currCharacter->_level * 2 + 4;
 		ss._mmVal1++;
 		ss._mmVal2++;
 		ss._resistanceType = RESISTANCE_ELECTRICITY;
@@ -1183,7 +1183,7 @@ void Combat::summonLightning2() {
 	ss._mmVal1 = 1;
 	ss._mmVal2 = 2;
 	ss._resistanceType = RESISTANCE_ELECTRICITY;
-	ss._newCondition = getRandomNumber(29) + 3;
+	ss._damage = getRandomNumber(29) + 3;
 
 	iterateMonsters2();
 }
@@ -1193,7 +1193,7 @@ void Combat::fireball2() {
 	ss._mmVal1 = 1;
 	ss._mmVal2 = 1;
 	ss._resistanceType = 5;
-	ss._newCondition = 0;
+	ss._damage = 0;
 
 	levelAdjust();
 }
@@ -1201,7 +1201,7 @@ void Combat::fireball2() {
 void Combat::levelAdjust() {
 	SpellsState &ss = g_globals->_spellsState;
 	for (uint i = 0; i < g_globals->_currCharacter->_level._current; ++i)
-		ss._newCondition += getRandomNumber(6);
+		ss._damage += getRandomNumber(6);
 
 	iterateMonsters2();
 }
@@ -1213,7 +1213,7 @@ void Combat::paralyze() {
 	ss._mmVal1++;
 	ss._mmVal2 = 6;
 	ss._resistanceType = _attackersCount;
-	ss._newCondition = BAD_CONDITION;
+	ss._damage = BAD_CONDITION;
 
 	iterateMonsters1();
 }
@@ -1319,7 +1319,7 @@ void Combat::fireball() {
 			g_globals->_currCharacter->_name,
 			STRING["spells.casts_spell"].c_str());
 
-		ss._newCondition = g_globals->_currCharacter->_level * 2 + 4;
+		ss._damage = g_globals->_currCharacter->_level * 2 + 4;
 		ss._mmVal1++;
 		ss._mmVal2++;
 		ss._resistanceType++;
@@ -1367,7 +1367,7 @@ void Combat::weaken() {
 
 	resetDestMonster();
 	ss._mmVal1++;
-	ss._newCondition = 2;
+	ss._damage = 2;
 	iterateMonsters2();
 }
 
@@ -1379,7 +1379,7 @@ bool Combat::web() {
 	ss._mmVal1++;
 	ss._mmVal2 = 0;
 	ss._resistanceType = 5;
-	ss._newCondition = UNCONSCIOUS;
+	ss._damage = UNCONSCIOUS;
 
 	iterateMonsters1();
 	return true;
@@ -1397,10 +1397,10 @@ bool Combat::acidRain() {
 	ss._mmVal1 = 1;
 	ss._mmVal2 = 3;
 	ss._resistanceType = 15;
-	ss._newCondition = 0;
+	ss._damage = 0;
 
 	for (int i = 0; i < 5; ++i)
-		ss._newCondition += getRandomNumber(10);
+		ss._damage += getRandomNumber(10);
 
 	iterateMonsters2();
 	return true;
diff --git a/engines/mm/mm1/game/spells_monsters.cpp b/engines/mm/mm1/game/spells_monsters.cpp
index b3ebf40dc88..fcb607cfdf5 100644
--- a/engines/mm/mm1/game/spells_monsters.cpp
+++ b/engines/mm/mm1/game/spells_monsters.cpp
@@ -70,7 +70,7 @@ void SpellsMonsters::castMonsterSpell(const Common::String &monsterName, int spe
 	g_globals->_spellsState._mmVal1 = 0;
 	g_globals->_spellsState._mmVal2 = 0;
 	g_globals->_spellsState._resistanceType = RESISTANCE_MAGIC;
-	g_globals->_spellsState._newCondition = 0;
+	g_globals->_spellsState._damage = 0;
 
 	// All spell messages start with the monster who casts it
 	_lines.clear();
@@ -91,7 +91,7 @@ void SpellsMonsters::spell02_energyBlast() {
 	if (casts()) {		
 		add(STRING["monster_spellsState.energy_blast"]);
 		++g_globals->_spellsState._mmVal1;
-		g_globals->_spellsState._newCondition = getRandomNumber(16) + 4;
+		g_globals->_spellsState._damage = getRandomNumber(16) + 4;
 		damageRandomChar();
 	}
 }
@@ -104,7 +104,7 @@ void SpellsMonsters::spell03_fire() {
 	g_globals->_spellsState._resistanceType = RESISTANCE_FIRE;
 
 	int count = _remainingMonsters[getMonsterIndex()]->_level;
-	g_globals->_spellsState._newCondition += count * 6;
+	g_globals->_spellsState._damage += count * 6;
 
 	damageRandomChar();
 }
@@ -114,7 +114,7 @@ void SpellsMonsters::spell04_blindness() {
 		add(STRING["monster_spellsState.blindness"]);
 		++g_globals->_spellsState._mmVal1;
 		++g_globals->_spellsState._mmVal2;
-		g_globals->_spellsState._newCondition = 2;
+		g_globals->_spellsState._damage = 2;
 
 		handlePartyEffects();
 	}
@@ -124,7 +124,7 @@ void SpellsMonsters::spell05_sprayPoison() {
 	add(STRING["monster_spellsState.sprays_poison"]);
 	++g_globals->_spellsState._mmVal2;
 	g_globals->_spellsState._resistanceType = RESISTANCE_POISON;
-	g_globals->_spellsState._newCondition = POISONED;
+	g_globals->_spellsState._damage = POISONED;
 	handlePartyEffects();
 }
 
@@ -132,7 +132,7 @@ void SpellsMonsters::spell06_sprayAcid() {
 	add(STRING["monster_spellsState.sprays_acid"]);
 	++g_globals->_spellsState._mmVal2;
 	g_globals->_spellsState._resistanceType = RESISTANCE_ACID;
-	g_globals->_spellsState._newCondition = getRandomNumber((int)POISONED);
+	g_globals->_spellsState._damage = getRandomNumber((int)POISONED);
 	add(':');
 
 	handlePartyDamage();
@@ -144,7 +144,7 @@ void SpellsMonsters::spell07_sleep() {
 		++g_globals->_spellsState._mmVal1;
 		++g_globals->_spellsState._mmVal2;
 		g_globals->_spellsState._resistanceType = RESISTANCE_PSYCHIC;
-		g_globals->_spellsState._newCondition = ASLEEP;
+		g_globals->_spellsState._damage = ASLEEP;
 		handlePartyEffects();
 	}
 }
@@ -155,7 +155,7 @@ void SpellsMonsters::spell08_paralyze() {
 		++g_globals->_spellsState._mmVal1;
 		++g_globals->_spellsState._mmVal2;
 		g_globals->_spellsState._resistanceType = RESISTANCE_FEAR;
-		g_globals->_spellsState._newCondition = PARALYZED;
+		g_globals->_spellsState._damage = PARALYZED;
 
 		if (_remainingMonsters[getMonsterIndex()]->_level >= 5) {
 			handlePartyEffects();
@@ -179,7 +179,7 @@ void SpellsMonsters::spell10_lightningBolt() {
 		++g_globals->_spellsState._mmVal1;
 		++g_globals->_spellsState._mmVal2;
 		g_globals->_spellsState._resistanceType = RESISTANCE_ELECTRICITY;
-		g_globals->_spellsState._newCondition = getRandomNumber(37) + 5;
+		g_globals->_spellsState._damage = getRandomNumber(37) + 5;
 		damageRandomChar();
 	}
 }
@@ -190,7 +190,7 @@ void SpellsMonsters::spell11_strangeGas() {
 		STRING["monster_spellsState.strange_gas"].c_str()));
 	++g_globals->_spellsState._mmVal2;
 	g_globals->_spellsState._resistanceType = RESISTANCE_POISON;
-	g_globals->_spellsState._newCondition = BAD_CONDITION | STONE;
+	g_globals->_spellsState._damage = BAD_CONDITION | STONE;
 
 	handlePartyEffects();
 }
@@ -199,7 +199,7 @@ void SpellsMonsters::spell12_explode() {
 	add(STRING["monster_spellsState.explode"]);
 	++g_globals->_spellsState._mmVal2;
 	g_globals->_spellsState._resistanceType = RESISTANCE_POISON;
-	g_globals->_spellsState._newCondition = getRandomNumber(
+	g_globals->_spellsState._damage = getRandomNumber(
 		_remainingMonsters[getMonsterIndex()]->_level);
 	_remainingMonsters[getMonsterIndex()]->_level = 0;
 	_remainingMonsters[getMonsterIndex()]->_status = MONFLAG_DEAD;
@@ -217,9 +217,9 @@ void SpellsMonsters::spell13_fireball() {
 		g_globals->_spellsState._resistanceType = RESISTANCE_FIRE;
 
 		// This whole condition choice makes no sense
-		g_globals->_spellsState._newCondition += 6 *
+		g_globals->_spellsState._damage += 6 *
 			_remainingMonsters[getMonsterIndex()]->_level;
-		g_globals->_spellsState._newCondition = getRandomNumber(g_globals->_spellsState._newCondition) + 4;
+		g_globals->_spellsState._damage = getRandomNumber(g_globals->_spellsState._damage) + 4;
 
 		add(':');
 		handlePartyDamage();
@@ -234,9 +234,9 @@ void SpellsMonsters::spell14_fireBreath() {
 	g_globals->_spellsState._resistanceType = RESISTANCE_FIRE;
 
 	// This whole condition choice makes no sense
-	g_globals->_spellsState._newCondition += 8 *
+	g_globals->_spellsState._damage += 8 *
 		_remainingMonsters[getMonsterIndex()]->_level;
-	g_globals->_spellsState._newCondition = getRandomNumber(g_globals->_spellsState._newCondition);
+	g_globals->_spellsState._damage = getRandomNumber(g_globals->_spellsState._damage);
 
 	add(':');
 	handlePartyDamage();
@@ -245,7 +245,7 @@ void SpellsMonsters::spell14_fireBreath() {
 void SpellsMonsters::spell15_gazes() {
 	add(STRING["monster_spellsState.gazes"]);
 	++g_globals->_spellsState._mmVal2;
-	g_globals->_spellsState._newCondition = BAD_CONDITION | STONE;
+	g_globals->_spellsState._damage = BAD_CONDITION | STONE;
 
 	chooseCharacter();
 	writeConditionEffect();
@@ -256,7 +256,7 @@ void SpellsMonsters::spell16_acidArrow() {
 	++g_globals->_spellsState._mmVal1;
 	++g_globals->_spellsState._mmVal2;
 	g_globals->_spellsState._resistanceType = RESISTANCE_ACID;
-	g_globals->_spellsState._newCondition = getRandomNumber(31) + 9;
+	g_globals->_spellsState._damage = getRandomNumber(31) + 9;
 
 	damageRandomChar();
 }
@@ -264,7 +264,7 @@ void SpellsMonsters::spell16_acidArrow() {
 void SpellsMonsters::spell17_elements() {
 	add(STRING["monster_spellsState.call_elements"]);
 	++g_globals->_spellsState._mmVal2;
-	g_globals->_spellsState._newCondition = getRandomNumber(21) + 39;
+	g_globals->_spellsState._damage = getRandomNumber(21) + 39;
 
 	damageRandomChar();
 }
@@ -275,7 +275,7 @@ void SpellsMonsters::spell18_coldBeam() {
 		++g_globals->_spellsState._mmVal1;
 		++g_globals->_spellsState._mmVal2;
 		g_globals->_spellsState._resistanceType = RESISTANCE_COLD;
-		g_globals->_spellsState._newCondition = getRandomNumber(41) + 9;
+		g_globals->_spellsState._damage = getRandomNumber(41) + 9;
 
 		damageRandomChar();
 	}
@@ -285,7 +285,7 @@ void SpellsMonsters::spell19_dancingSword() {
 	if (casts()) {
 		add(STRING["monster_spellsState.dancing_sword"]);
 		++g_globals->_spellsState._mmVal1;
-		g_globals->_spellsState._newCondition = getRandomNumber(14) + 16;
+		g_globals->_spellsState._damage = getRandomNumber(14) + 16;
 
 		add(':');
 		handlePartyDamage();
@@ -309,7 +309,7 @@ void SpellsMonsters::spell21_fingerOfDeath() {
 		add(STRING["monster_spellsState.finger_of_death"]);
 		++g_globals->_spellsState._mmVal1;
 		++g_globals->_spellsState._mmVal2;
-		g_globals->_spellsState._newCondition = BAD_CONDITION | DEAD;
+		g_globals->_spellsState._damage = BAD_CONDITION | DEAD;
 
 		chooseCharacter();
 		writeConditionEffect();
@@ -321,7 +321,7 @@ void SpellsMonsters::spell22_sunRay() {
 		add(STRING["monster_spellsState.sun_ray"]);
 		++g_globals->_spellsState._mmVal1;
 		++g_globals->_spellsState._mmVal2;
-		g_globals->_spellsState._newCondition = getRandomNumber(51) + 49;
+		g_globals->_spellsState._damage = getRandomNumber(51) + 49;
 
 		damageRandomChar();
 	}
@@ -332,7 +332,7 @@ void SpellsMonsters::spell23_disintegration() {
 		add(STRING["monster_spellsState.disintegration"]);
 		++g_globals->_spellsState._mmVal1;
 		++g_globals->_spellsState._mmVal2;
-		g_globals->_spellsState._newCondition = ERADICATED;
+		g_globals->_spellsState._damage = ERADICATED;
 
 		chooseCharacter();
 		writeConditionEffect();
@@ -341,7 +341,7 @@ void SpellsMonsters::spell23_disintegration() {
 
 void SpellsMonsters::spell24_commandsEnergy() {
 	add(STRING["monster_spellsState.commands_energy"]);
-	g_globals->_spellsState._newCondition = SILENCED | PARALYZED | UNCONSCIOUS;
+	g_globals->_spellsState._damage = SILENCED | PARALYZED | UNCONSCIOUS;
 	damageRandomChar();
 }
 
@@ -350,7 +350,7 @@ void SpellsMonsters::spell25_poison() {
 		STRING["monster_spellsState.breathes"].c_str(),
 		STRING["monster_spellsState.poison"].c_str()));
 	g_globals->_spellsState._resistanceType = RESISTANCE_POISON;
-	g_globals->_spellsState._newCondition = _remainingMonsters[getMonsterIndex()]->_hp;
+	g_globals->_spellsState._damage = _remainingMonsters[getMonsterIndex()]->_hp;
 	++g_globals->_spellsState._mmVal2;
 
 	add(':');
@@ -362,7 +362,7 @@ void SpellsMonsters::spell26_lightning() {
 		STRING["monster_spellsState.breathes"].c_str(),
 		STRING["monster_spellsState.lightning"].c_str()));
 	g_globals->_spellsState._resistanceType = RESISTANCE_ELECTRICITY;
-	g_globals->_spellsState._newCondition = _remainingMonsters[getMonsterIndex()]->_hp;
+	g_globals->_spellsState._damage = _remainingMonsters[getMonsterIndex()]->_hp;
 	++g_globals->_spellsState._mmVal2;
 
 	add(':');
@@ -374,7 +374,7 @@ void SpellsMonsters::spell27_frost() {
 		STRING["monster_spellsState.breathes"].c_str(),
 		STRING["monster_spellsState.frost"].c_str()));
 	g_globals->_spellsState._resistanceType = RESISTANCE_COLD;
-	g_globals->_spellsState._newCondition = _remainingMonsters[getMonsterIndex()]->_hp;
+	g_globals->_spellsState._damage = _remainingMonsters[getMonsterIndex()]->_hp;
 	++g_globals->_spellsState._mmVal2;
 
 	add(':');
@@ -386,7 +386,7 @@ void SpellsMonsters::spell28_spikes() {
 		STRING["monster_spellsState.breathes"].c_str(),
 		STRING["monster_spellsState.spikes"].c_str()));
 	g_globals->_spellsState._resistanceType = RESISTANCE_ELECTRICITY;
-	g_globals->_spellsState._newCondition = _remainingMonsters[getMonsterIndex()]->_hp;
+	g_globals->_spellsState._damage = _remainingMonsters[getMonsterIndex()]->_hp;
 	++g_globals->_spellsState._mmVal2;
 
 	add(':');
@@ -398,7 +398,7 @@ void SpellsMonsters::spell29_acid() {
 		STRING["monster_spellsState.breathes"].c_str(),
 		STRING["monster_spellsState.acid"].c_str()));
 	g_globals->_spellsState._resistanceType = RESISTANCE_ACID;
-	g_globals->_spellsState._newCondition = _remainingMonsters[getMonsterIndex()]->_hp;
+	g_globals->_spellsState._damage = _remainingMonsters[getMonsterIndex()]->_hp;
 	++g_globals->_spellsState._mmVal2;
 
 	add(':');
@@ -410,7 +410,7 @@ void SpellsMonsters::spell30_fire() {
 		STRING["monster_spellsState.breathes"].c_str(),
 		STRING["monster_spellsState.fire"].c_str()));
 	g_globals->_spellsState._resistanceType = RESISTANCE_FIRE;
-	g_globals->_spellsState._newCondition = _remainingMonsters[getMonsterIndex()]->_hp;
+	g_globals->_spellsState._damage = _remainingMonsters[getMonsterIndex()]->_hp;
 	++g_globals->_spellsState._mmVal2;
 
 	add(':');
@@ -419,7 +419,7 @@ void SpellsMonsters::spell30_fire() {
 
 void SpellsMonsters::spell31_energy() {
 	add(STRING["monster_spellsState.energy"]);
-	g_globals->_spellsState._newCondition = _remainingMonsters[getMonsterIndex()]->_hp;
+	g_globals->_spellsState._damage = _remainingMonsters[getMonsterIndex()]->_hp;
 	++g_globals->_spellsState._mmVal2;
 
 	add(':');
@@ -429,7 +429,7 @@ void SpellsMonsters::spell31_energy() {
 void SpellsMonsters::spell32_swarm() {
 	add(STRING["monster_spellsState.swarm"]);
 	++g_globals->_spellsState._mmVal2;
-	g_globals->_spellsState._newCondition = getRandomNumber(12);
+	g_globals->_spellsState._damage = getRandomNumber(12);
 
 	add(':');
 	handlePartyDamage();
@@ -481,7 +481,7 @@ bool SpellsMonsters::isCharAffected() const {
 
 void SpellsMonsters::handleDamage() {
 	g_globals->_spellsState._mmVal5 = 1;
-	_damage = g_globals->_spellsState._newCondition;
+	_damage = g_globals->_spellsState._damage;
 
 	if (charAffected()) {
 		if (isEffective()) {
@@ -640,21 +640,21 @@ void SpellsMonsters::writeConditionEffect() {
 	if (!charAffected() || !isEffective() || !testElementalResistance())
 		return;
 
-	if (g_globals->_spellsState._newCondition == 0) {
+	if (g_globals->_spellsState._damage == 0) {
 		effectNum = 10;
-	} else if (g_globals->_spellsState._newCondition & BAD_CONDITION) {
-		if (!(g_globals->_spellsState._newCondition & (BAD_CONDITION | DEAD)))
+	} else if (g_globals->_spellsState._damage & BAD_CONDITION) {
+		if (!(g_globals->_spellsState._damage & (BAD_CONDITION | DEAD)))
 			effectNum = 7;
-		else if (!(g_globals->_spellsState._newCondition & (BAD_CONDITION | STONE)))
+		else if (!(g_globals->_spellsState._damage & (BAD_CONDITION | STONE)))
 			effectNum = 8;
-		else if (g_globals->_spellsState._newCondition == ERADICATED)
+		else if (g_globals->_spellsState._damage == ERADICATED)
 			effectNum = 9;
 		else
 			effectNum = 10;
 	} else {
 		effectNum = 0;
 
-		for (byte bitset = g_globals->_spellsState._newCondition; bitset & 1;
+		for (byte bitset = g_globals->_spellsState._damage; bitset & 1;
 			++effectNum, bitset >>= 1) {
 		}
 	}
diff --git a/engines/mm/mm1/game/spells_party.cpp b/engines/mm/mm1/game/spells_party.cpp
index 52d18e03850..d4803c57c52 100644
--- a/engines/mm/mm1/game/spells_party.cpp
+++ b/engines/mm/mm1/game/spells_party.cpp
@@ -193,7 +193,7 @@ SpellResult SpellsParty::cleric13_blind() {
 	SpellsState &s = g_globals->_spellsState;
 	s._mmVal1++;
 	s._mmVal2 = 7;
-	s._newCondition = BLINDED;
+	s._damage = BLINDED;
 	s._resistanceType = static_cast<Resistance>((int)s._resistanceType + 1);
 
 	g_globals->_combat->iterateMonsters1();
@@ -253,7 +253,7 @@ SpellResult SpellsParty::cleric22_heroism() {
 
 SpellResult SpellsParty::cleric23_pain() {
 	SpellsState &ss = g_globals->_spellsState;
-	ss._newCondition = getRandomNumber(6) + getRandomNumber(6);
+	ss._damage = getRandomNumber(6) + getRandomNumber(6);
 	ss._mmVal1++;
 	ss._resistanceType++;
 	ss._mmVal2 = 6;
@@ -284,7 +284,7 @@ SpellResult SpellsParty::cleric27_silence() {
 	SpellsState &ss = g_globals->_spellsState;
 	ss._mmVal1++;
 	ss._mmVal2 = 7;
-	ss._newCondition = SILENCED;
+	ss._damage = SILENCED;
 	ss._resistanceType++;
 
 	g_globals->_combat->iterateMonsters1();
@@ -295,7 +295,7 @@ SpellResult SpellsParty::cleric28_suggestion() {
 	SpellsState &ss = g_globals->_spellsState;
 	ss._mmVal1++;
 	ss._mmVal2 = 6;
-	ss._newCondition = PARALYZED;
+	ss._damage = PARALYZED;
 	ss._resistanceType++;
 
 	g_globals->_combat->iterateMonsters1();
@@ -339,7 +339,7 @@ SpellResult SpellsParty::cleric35_produceFlame() {
 	ss._mmVal1++;
 	ss._resistanceType++;
 	ss._mmVal2 = 4;
-	ss._newCondition = getRandomNumber(6) +
+	ss._damage = getRandomNumber(6) +
 		getRandomNumber(6) + getRandomNumber(6);
 	g_globals->_combat->iterateMonsters2();
 	return SR_SUCCESS_SILENT;
@@ -349,7 +349,7 @@ SpellResult SpellsParty::cleric36_produceFrost() {
 	SpellsState &ss = g_globals->_spellsState;
 	ss._mmVal1++;
 	ss._mmVal2++;
-	ss._newCondition = getRandomNumber(6) +
+	ss._damage = getRandomNumber(6) +
 		getRandomNumber(6) + getRandomNumber(6);
 	g_globals->_combat->iterateMonsters2();
 	return SR_SUCCESS_SILENT;
@@ -436,7 +436,7 @@ SpellResult SpellsParty::cleric51_deadlySwarm() {
 	g_globals->_combat->resetDestMonster();
 	ss._mmVal1++;
 	ss._mmVal2 = 0;
-	ss._newCondition = getRandomNumber(10) + getRandomNumber(10);
+	ss._damage = getRandomNumber(10) + getRandomNumber(10);
 
 	g_globals->_combat->iterateMonsters2();
 	return SR_SUCCESS_SILENT;
@@ -507,7 +507,7 @@ SpellResult SpellsParty::cleric61_moonRay() {
 
 	// Damage the monsters
 	g_globals->_combat->resetDestMonster();
-	ss._newCondition = hp;
+	ss._damage = hp;
 	ss._mmVal1++;
 	ss._mmVal2 = 5;
 
@@ -645,7 +645,7 @@ SpellResult SpellsParty::cleric74_resurrection() {
 
 SpellResult SpellsParty::cleric75_sunRay() {
 	SpellsState &ss = g_globals->_spellsState;
-	ss._newCondition = getRandomNumber(51) + 49;
+	ss._damage = getRandomNumber(51) + 49;
 	ss._mmVal1++;
 	ss._mmVal2++;
 	ss._resistanceType = RESISTANCE_FIRE;
@@ -665,7 +665,7 @@ SpellResult SpellsParty::wizard13_energyBlast() {
 	for (int i = 0; i < g_globals->_currCharacter->_level._current; ++i)
 		damage += getRandomNumber(4);
 
-	ss._newCondition = MIN(damage, 255);
+	ss._damage = MIN(damage, 255);
 	ss._mmVal2 = 5;
 	ss._resistanceType++;
 
@@ -675,7 +675,7 @@ SpellResult SpellsParty::wizard13_energyBlast() {
 
 SpellResult SpellsParty::wizard14_flameArrow() {
 	SpellsState &ss = g_globals->_spellsState;
-	ss._newCondition = getRandomNumber(6);
+	ss._damage = getRandomNumber(6);
 	ss._mmVal1++;
 	ss._mmVal2 = 1;
 	ss._resistanceType++;
@@ -699,7 +699,7 @@ SpellResult SpellsParty::wizard18_sleep() {
 	ss._mmVal1++;
 	ss._mmVal2 = 8;
 	ss._resistanceType = RESISTANCE_FEAR;
-	ss._newCondition = 16;
+	ss._damage = 16;
 
 	g_globals->_combat->iterateMonsters1();
 	return SR_SUCCESS_SILENT;
@@ -707,7 +707,7 @@ SpellResult SpellsParty::wizard18_sleep() {
 
 SpellResult SpellsParty::wizard21_electricArrow() {
 	SpellsState &ss = g_globals->_spellsState;
-	ss._newCondition = getRandomNumber(6) + getRandomNumber(6);
+	ss._damage = getRandomNumber(6) + getRandomNumber(6);
 	ss._mmVal1++;
 	ss._resistanceType++;
 	ss._mmVal2 = 2;
@@ -775,7 +775,7 @@ SpellResult SpellsParty::wizard28_scare() {
 	ss._mmVal1++;
 	ss._mmVal2 = 7;
 	ss._resistanceType++;
-	ss._newCondition = 1;
+	ss._damage = 1;
 
 	g_globals->_combat->iterateMonsters1();
 	return SR_SUCCESS_SILENT;
@@ -837,7 +837,7 @@ SpellResult SpellsParty::wizard41_acidArrow() {
 	ss._mmVal1++;
 	ss._resistanceType++;
 	ss._mmVal2 = 3;
-	ss._newCondition += getRandomNumber(10) +
+	ss._damage += getRandomNumber(10) +
 		getRandomNumber(10) + getRandomNumber(10);
 
 	g_globals->_combat->iterateMonsters2();
@@ -850,7 +850,7 @@ SpellResult SpellsParty::wizard42_coldBeam() {
 	ss._resistanceType++;
 	ss._mmVal2 = 4;
 
-	ss._newCondition = getRandomNumber(10) + getRandomNumber(10) +
+	ss._damage = getRandomNumber(10) + getRandomNumber(10) +
 		getRandomNumber(10) + getRandomNumber(10);
 
 	g_globals->_combat->iterateMonsters2();
@@ -862,7 +862,7 @@ SpellResult SpellsParty::wizard43_feebleMind() {
 	ss._mmVal1++;
 	ss._mmVal2 = 0;
 	ss._resistanceType++;
-	ss._newCondition = 8;
+	ss._damage = 8;
 
 	g_globals->_combat->iterateMonsters1();
 	return SR_SUCCESS_SILENT;
@@ -873,7 +873,7 @@ SpellResult SpellsParty::wizard44_freeze() {
 	ss._mmVal1 = 0;
 	ss._mmVal2 = 6;
 	ss._resistanceType++;
-	ss._newCondition = 128;
+	ss._damage = 128;
 
 	g_globals->_combat->iterateMonsters1();
 	return SR_SUCCESS_SILENT;
@@ -935,7 +935,7 @@ SpellResult SpellsParty::wizard61_dancingSword() {
 
 	ss._mmVal1 = 0;
 	ss._mmVal2 = 0;
-	ss._newCondition = getRandomNumber(30);
+	ss._damage = getRandomNumber(30);
 
 	g_globals->_combat->iterateMonsters2();
 	return SR_SUCCESS_SILENT;
@@ -984,7 +984,7 @@ SpellResult SpellsParty::wizard73_meteorShower() {
 
 	ss._mmVal1++;
 	ss._mmVal2 = 5;
-	ss._newCondition = MIN((int)getRandomNumber(120) +
+	ss._damage = MIN((int)getRandomNumber(120) +
 		(int)g_globals->_currCharacter->_level._current, 120);
 
 	g_globals->_combat->iterateMonsters2();
@@ -1005,12 +1005,12 @@ SpellResult SpellsParty::wizard75_prismaticLight() {
 
 	if (ss._mmVal1 < 50) {
 		uint count = getRandomNumber(4);
-		ss._newCondition <<= count;
+		ss._damage <<= count;
 		g_globals->_combat->iterateMonsters2();
 
 	} else {
 		uint count = getRandomNumber(8);
-		ss._newCondition <<= count;
+		ss._damage <<= count;
 		g_globals->_combat->iterateMonsters1();
 	}
 


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

Commit Message:
MM: MM1: Fix spell result display casting wizard spells

Changed paths:
    devtools/create_mm/files/mm1/strings_en.yml
    engines/mm/mm1/game/combat.cpp
    engines/mm/mm1/views/combat.cpp
    engines/mm/mm1/views/spells/cast_spell.cpp


diff --git a/devtools/create_mm/files/mm1/strings_en.yml b/devtools/create_mm/files/mm1/strings_en.yml
index d6016ba47c5..fbb6718aba0 100644
--- a/devtools/create_mm/files/mm1/strings_en.yml
+++ b/devtools/create_mm/files/mm1/strings_en.yml
@@ -383,6 +383,7 @@ dialogs:
 		hit: "hit"
 		misses: "misses"
 		for: "for"
+		takes: "takes"
 		point: "point"
 		points: "points"
 		of_damage: "of damage!"
@@ -392,13 +393,6 @@ dialogs:
 		delay_currently: "(currently= %d)"
 		infiltration: "infiltrates the ranks!"
 		exchange_places: "exchange places with (1-%c)?"
-		takes: "takes "
-		point: "point"
-		points: "points"
-		of_damage: "of damage!"
-		goes_down: "goes down!!!"
-		and_goes_down: "and goes down!!!"
-		dies: "dies!"
 		status:
 			0: "(paralyze)"
 			1: "(webbed)  "
diff --git a/engines/mm/mm1/game/combat.cpp b/engines/mm/mm1/game/combat.cpp
index 91665bf68de..db69d4a6667 100644
--- a/engines/mm/mm1/game/combat.cpp
+++ b/engines/mm/mm1/game/combat.cpp
@@ -1031,7 +1031,7 @@ void Combat::iterateMonsters2Inner() {
 				idx = 0;
 
 			static const byte FLAGS[8] = {
-			0x40, 0x20, 0x60, 0x10, 8, 4, 2, 1
+				0x40, 0x20, 0x60, 0x10, 8, 4, 2, 1
 			};
 			if ((_monsterP->_field1a & FLAGS[idx]) == FLAGS[idx])
 				_damage >>= 2;
@@ -1083,7 +1083,7 @@ void Combat::iterateMonsters2Inner() {
 			g_globals->_combat->iterateMonsters2Inner();
 		};
 	} else {
-		msg._ynCallback = []() {
+		msg._timeoutCallback = []() {
 			g_globals->_combat->characterDone();
 		};
 	}
diff --git a/engines/mm/mm1/views/combat.cpp b/engines/mm/mm1/views/combat.cpp
index 1e4ab7a49ce..45c4db65828 100644
--- a/engines/mm/mm1/views/combat.cpp
+++ b/engines/mm/mm1/views/combat.cpp
@@ -841,8 +841,7 @@ void Combat::setOption(SelectedOption option) {
 }
 
 void Combat::displaySpellResult(const InfoMessage &msg) {
-	assert(msg._timeoutCallback || msg._keyCallback);
-	assert(!msg._delaySeconds || !msg._timeoutCallback);
+	assert(msg._delaySeconds);
 	_spellResult = msg;
 
 	setMode(SPELL_RESULT);
diff --git a/engines/mm/mm1/views/spells/cast_spell.cpp b/engines/mm/mm1/views/spells/cast_spell.cpp
index 6a3ffeea0e3..46e184ba325 100644
--- a/engines/mm/mm1/views/spells/cast_spell.cpp
+++ b/engines/mm/mm1/views/spells/cast_spell.cpp
@@ -215,6 +215,8 @@ void CastSpell::performSpell(Character *chr) {
 
 		default:
 			// Spell done, but don't display done message
+			if (isInCombat())
+				close();
 			break;
 		}
 	}




More information about the Scummvm-git-logs mailing list