From 1cb85808318cc560a045068b48d981d1695ed4bc Mon Sep 17 00:00:00 2001 From: athrxx Date: Wed, 27 Feb 2019 22:34:47 +0100 Subject: KYRA: (EOB1/Amiga) - fix spell sounds --- engines/kyra/engine/darkmoon.cpp | 4 ++++ engines/kyra/engine/darkmoon.h | 3 +++ engines/kyra/engine/eob.cpp | 1 + engines/kyra/engine/eobcommon.h | 2 +- engines/kyra/engine/magic_eob.cpp | 4 +++- 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/engines/kyra/engine/darkmoon.cpp b/engines/kyra/engine/darkmoon.cpp index d8cb1254d5..617cd09252 100644 --- a/engines/kyra/engine/darkmoon.cpp +++ b/engines/kyra/engine/darkmoon.cpp @@ -358,6 +358,10 @@ void DarkMoonEngine::drawDoorIntern(int type, int, int x, int y, int w, int wall drawBlockObject(0, 2, _doorSwitches[shapeIndex].shp, _doorSwitches[shapeIndex].x + w, _doorSwitches[shapeIndex].y, 5); } +void DarkMoonEngine::turnUndeadAutoHit() { + snd_playSoundEffect(95); +} + void DarkMoonEngine::restParty_npc() { int insalId = -1; int numChar = 0; diff --git a/engines/kyra/engine/darkmoon.h b/engines/kyra/engine/darkmoon.h index ab8d93f4f2..16fe8561c5 100644 --- a/engines/kyra/engine/darkmoon.h +++ b/engines/kyra/engine/darkmoon.h @@ -104,6 +104,9 @@ private: const uint8 *_dscDoorType5Offs; + // Magic + void turnUndeadAutoHit(); + // Fight static const uint8 _monsterAcHitChanceTbl1[]; static const uint8 _monsterAcHitChanceTbl2[]; diff --git a/engines/kyra/engine/eob.cpp b/engines/kyra/engine/eob.cpp index 8c59d4de0c..f2d06e0a59 100644 --- a/engines/kyra/engine/eob.cpp +++ b/engines/kyra/engine/eob.cpp @@ -509,6 +509,7 @@ void EoBEngine::turnUndeadAuto() { void EoBEngine::turnUndeadAutoHit() { _txt->printMessage(_turnUndeadString[0], -1, _characters[_openBookChar].name); + snd_playSoundEffect(_flags.platform == Common::kPlatformAmiga ? 16 : 95); sparkEffectOffensive(); } diff --git a/engines/kyra/engine/eobcommon.h b/engines/kyra/engine/eobcommon.h index b9785ac1bf..293878cd52 100644 --- a/engines/kyra/engine/eobcommon.h +++ b/engines/kyra/engine/eobcommon.h @@ -942,7 +942,7 @@ protected: void useWand(int charIndex, int weaponSlot); virtual void turnUndeadAuto() {} - virtual void turnUndeadAutoHit() {} + virtual void turnUndeadAutoHit() = 0; void castSpell(int spell, int weaponSlot); void removeCharacterEffect(int spell, int charIndex, int showWarning); diff --git a/engines/kyra/engine/magic_eob.cpp b/engines/kyra/engine/magic_eob.cpp index 814e92d1f4..448f7f0db1 100644 --- a/engines/kyra/engine/magic_eob.cpp +++ b/engines/kyra/engine/magic_eob.cpp @@ -385,6 +385,9 @@ void EoBCoreEngine::sparkEffectDefensive(int charIndex) { first = 0; last = 5; } + + if (_flags.gameID == GI_EOB1 && _flags.platform == Common::kPlatformAmiga) + snd_playSoundEffect(104); for (int i = 0; i < 8; i++) { for (int ii = first; ii <= last; ii++) { @@ -1282,7 +1285,6 @@ void EoBCoreEngine::spellCallback_start_turnUndead() { if (hit) { turnUndeadAutoHit(); - snd_playSoundEffect(95); updateAllMonsterShapes(); } -- cgit v1.2.3