diff options
Diffstat (limited to 'src/game-server/monster.cpp')
-rw-r--r-- | src/game-server/monster.cpp | 13 |
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); } } |