[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