diff options
Diffstat (limited to 'src/game-server/item.cpp')
-rw-r--r-- | src/game-server/item.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/game-server/item.cpp b/src/game-server/item.cpp index 2b2d4620..ed74e925 100644 --- a/src/game-server/item.cpp +++ b/src/game-server/item.cpp @@ -171,21 +171,23 @@ void ItemComponent::update(Entity &entity) { mLifetime--; if (!mLifetime) - GameState::enqueueRemove(static_cast<Actor*>(&entity)); + GameState::enqueueRemove(&entity); } } namespace Item { -Actor *create(MapComposite *map, +Entity *create(MapComposite *map, Point pos, ItemClass *itemClass, int amount) { - Actor *itemActor = new Actor(OBJECT_ITEM); + Entity *itemActor = new Entity(OBJECT_ITEM); + ActorComponent *actorComponent = new ActorComponent(*itemActor); + itemActor->addComponent(actorComponent); itemActor->addComponent(new ItemComponent(itemClass, amount)); itemActor->setMap(map); - itemActor->setPosition(pos); + actorComponent->setPosition(*itemActor, pos); return itemActor; } |