summaryrefslogtreecommitdiff
path: root/src/game-server/spawnarea.cpp
diff options
context:
space:
mode:
authorErik Schilling <ablu.erikschilling@googlemail.com>2013-02-20 15:34:28 +0100
committerErik Schilling <ablu.erikschilling@googlemail.com>2013-02-20 15:34:28 +0100
commitc70c6d19c1cabf46b595591802bceab63d371788 (patch)
tree1c153d2bfe560171bad5889d528dc5cf110e8533 /src/game-server/spawnarea.cpp
parentd707495540581f8c1b9ab3d5007c9c4d1ab83b53 (diff)
parent587b7682e6bf7dd9e616c1d4789a5ed9aa986e6d (diff)
downloadmanaserv-c70c6d19c1cabf46b595591802bceab63d371788.tar.gz
manaserv-c70c6d19c1cabf46b595591802bceab63d371788.tar.bz2
manaserv-c70c6d19c1cabf46b595591802bceab63d371788.tar.xz
manaserv-c70c6d19c1cabf46b595591802bceab63d371788.zip
Merge branch 'master' into lpc2012
Conflicts: gameserver.cbp src/account-server/accounthandler.cpp src/game-server/attack.cpp src/game-server/attack.h src/game-server/being.cpp src/game-server/being.h src/game-server/character.cpp src/game-server/character.h src/game-server/inventory.cpp src/game-server/item.h src/game-server/monster.cpp src/game-server/monster.h
Diffstat (limited to 'src/game-server/spawnarea.cpp')
-rw-r--r--src/game-server/spawnarea.cpp20
1 files changed, 4 insertions, 16 deletions
diff --git a/src/game-server/spawnarea.cpp b/src/game-server/spawnarea.cpp
index 155d4c0d..73dca6b2 100644
--- a/src/game-server/spawnarea.cpp
+++ b/src/game-server/spawnarea.cpp
@@ -25,18 +25,6 @@
#include "game-server/state.h"
#include "utils/logger.h"
-struct SpawnAreaEventDispatch : EventDispatch
-{
- SpawnAreaEventDispatch()
- {
- typedef EventListenerFactory< SpawnArea, &SpawnArea::mSpawnedListener >
- Factory;
- removed = &Factory::create< Entity, &SpawnArea::decrease >::function;
- }
-};
-
-static SpawnAreaEventDispatch spawnAreaEventDispatch;
-
SpawnArea::SpawnArea(MapComposite *map,
MonsterClass *specy,
const Rectangle &zone,
@@ -44,7 +32,6 @@ SpawnArea::SpawnArea(MapComposite *map,
int spawnRate):
Entity(OBJECT_OTHER, map),
mSpecy(specy),
- mSpawnedListener(&spawnAreaEventDispatch),
mZone(zone),
mMaxBeings(maxBeings),
mSpawnRate(spawnRate),
@@ -102,7 +89,9 @@ void SpawnArea::update()
if (c)
{
- being->addListener(&mSpawnedListener);
+ being->signal_removed.connect(
+ sigc::mem_fun(this, &SpawnArea::decrease));
+
being->setMap(map);
being->setPosition(position);
being->clearDestination();
@@ -125,8 +114,7 @@ void SpawnArea::update()
}
}
-void SpawnArea::decrease(Entity *t)
+void SpawnArea::decrease(Entity *)
{
--mNumBeings;
- t->removeListener(&mSpawnedListener);
}