summaryrefslogtreecommitdiff
path: root/src/monster.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/monster.cpp')
-rw-r--r--src/monster.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/monster.cpp b/src/monster.cpp
index dd4a321c..bea5b7a5 100644
--- a/src/monster.cpp
+++ b/src/monster.cpp
@@ -57,11 +57,10 @@ Monster::setAction(Action action)
break;
case DEAD:
currentAction = ACTION_DEAD;
- sound.playSfx(MonsterDB::get(mJob - 1002).getSound(EVENT_DIE));
+ sound.playSfx(getInfo().getSound(EVENT_DIE));
break;
case ATTACK:
currentAction = ACTION_ATTACK;
- sound.playSfx(MonsterDB::get(mJob - 1002).getSound(EVENT_HIT));
mSprites[BASE_SPRITE]->reset();
break;
case STAND:
@@ -80,3 +79,22 @@ Monster::setAction(Action action)
mAction = action;
}
}
+
+void
+Monster::handleAttack()
+{
+ Being::handleAttack();
+
+ const MonsterInfo &mi = getInfo();
+
+ // TODO: It's not possible to determine hit or miss here, so this stuff probably needs
+ // to be moved somewhere else. We may lose synchronization between attack animation and
+ // the sound, unless we adapt the protocol...
+ sound.playSfx(mi.getSound(EVENT_HIT));
+}
+
+const MonsterInfo&
+Monster::getInfo() const
+{
+ return MonsterDB::get(mJob - 1002);
+}