summaryrefslogtreecommitdiff
path: root/src/game-server/item.cpp
diff options
context:
space:
mode:
authorErik Schilling <ablu.erikschilling@googlemail.com>2013-04-11 11:10:47 +0200
committerErik Schilling <ablu.erikschilling@googlemail.com>2013-04-12 14:56:28 +0200
commit9e6a0f98ecb52e04ab5afce817cb1d7fe2076450 (patch)
tree97b6ffedbfbaf09389fe05c1d183471a97740ebb /src/game-server/item.cpp
parentd7fa7ea64f6bb0bc0b097e4bf1ceb4bd9620d0da (diff)
downloadmanaserv-9e6a0f98ecb52e04ab5afce817cb1d7fe2076450.tar.gz
manaserv-9e6a0f98ecb52e04ab5afce817cb1d7fe2076450.tar.bz2
manaserv-9e6a0f98ecb52e04ab5afce817cb1d7fe2076450.tar.xz
manaserv-9e6a0f98ecb52e04ab5afce817cb1d7fe2076450.zip
Moved Actor into an Component
This was the final step to remove the hierachy with Entity on the top.
Diffstat (limited to 'src/game-server/item.cpp')
-rw-r--r--src/game-server/item.cpp10
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;
}