aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorathrxx2019-03-01 21:59:02 +0100
committerathrxx2019-03-06 20:48:28 +0100
commit83f104491528a6a7c92cf017c53a56793fc213e0 (patch)
treecaf58c9cba88dd9d79dd471a6a9a5c2224af0609
parent5af15399ec1e00feab1d80fcdb65bac2b66c5499 (diff)
downloadscummvm-rg350-83f104491528a6a7c92cf017c53a56793fc213e0.tar.gz
scummvm-rg350-83f104491528a6a7c92cf017c53a56793fc213e0.tar.bz2
scummvm-rg350-83f104491528a6a7c92cf017c53a56793fc213e0.zip
KYRA: (EOB1) - make dispel magic spell more accurate
(In EOB1 this spell is supposed to affect only one selected party member and not the whole party)
-rw-r--r--engines/kyra/engine/magic_eob.cpp10
-rw-r--r--engines/kyra/resource/staticres_eob.cpp4
2 files changed, 11 insertions, 3 deletions
diff --git a/engines/kyra/engine/magic_eob.cpp b/engines/kyra/engine/magic_eob.cpp
index 448f7f0db1..a0e01c3f1b 100644
--- a/engines/kyra/engine/magic_eob.cpp
+++ b/engines/kyra/engine/magic_eob.cpp
@@ -886,7 +886,15 @@ bool EoBCoreEngine::spellCallback_end_melfsAcidArrow(void *obj) {
}
void EoBCoreEngine::spellCallback_start_dispelMagic() {
- for (int i = 0; i < 6; i++) {
+ int first = 0;
+ int last = 5;
+
+ if (_flags.gameID == GI_EOB1) {
+ _txt->printMessage(_magicStrings8[0], -1, _characters[_activeSpellCharId].name);
+ first = last = _activeSpellCharId;
+ }
+
+ for (int i = first; i <= last; i++) {
if (testCharacter(i, 1))
removeAllCharacterEffects(i);
}
diff --git a/engines/kyra/resource/staticres_eob.cpp b/engines/kyra/resource/staticres_eob.cpp
index 281cb7f6db..a9f9c33483 100644
--- a/engines/kyra/resource/staticres_eob.cpp
+++ b/engines/kyra/resource/staticres_eob.cpp
@@ -1228,7 +1228,7 @@ void EoBEngine::initSpells() {
{ 0x0000, 0x000000, 0x00 }, // dummy
{ 0x0100, 0x000000, 0x11 }, // melf's acid arrow
{ 0x0000, 0x000000, 0x00 }, // STINKING CLOUD
- { 0x1000, 0x000000, 0x00 }, // dispel magic
+ { 0x00A0, 0x000000, 0x00 }, // dispel magic
{ 0x0100, 0x000000, 0x21 }, // fireball
{ 0x0100, 0x000000, 0x11 }, // FLAME ARROW
{ 0x0248, 0x010000, 0x00 }, // haste
@@ -1252,7 +1252,7 @@ void EoBEngine::initSpells() {
{ 0x0100, 0x000000, 0x00 }, // hold person
{ 0x0028, 0x002000, 0x00 }, // slow poison
{ 0x0040, 0x000000, 0x00 }, // create food
- { 0x1000, 0x000000, 0x00 }, // dispel magic
+ { 0x00A0, 0x000000, 0x00 }, // dispel magic
{ 0x0099, 0x004000, 0x00 }, // magical vestment
{ 0x004C, 0x008000, 0x00 }, // prayer
{ 0x0040, 0x000000, 0x00 }, // remove paralysis