summaryrefslogtreecommitdiff
path: root/src/game-server/monster.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/monster.cpp')
-rw-r--r--src/game-server/monster.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/game-server/monster.cpp b/src/game-server/monster.cpp
index 3899c792..edc89ec1 100644
--- a/src/game-server/monster.cpp
+++ b/src/game-server/monster.cpp
@@ -414,7 +414,8 @@ int Monster::damage(Actor *source, const Damage &damage)
void Monster::died()
{
- if (mAction == DEAD) return;
+ if (mAction == DEAD)
+ return;
Being::died();
mDecayTimeout.set(DECAY_TIME);
@@ -426,11 +427,13 @@ void Monster::died()
for (unsigned i = 0; i < size; i++)
{
const int p = rand() / (RAND_MAX / 10000);
- if (p <= mSpecy->mDrops[i].probability)
+ const MonsterDrop &drop = mSpecy->mDrops[i];
+
+ if (p <= drop.probability)
{
- Item *item = new Item(mSpecy->mDrops[i].item, 1);
- item->setMap(getMap());
- item->setPosition(getPosition());
+ Actor *item = Item::create(getMap(),
+ getPosition(),
+ drop.item, 1);
GameState::enqueueInsert(item);
}
}