summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-08-26 00:18:31 +0200
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-08-26 00:18:31 +0200
commit37dc13f9a2375c7d6ecccf25f63c607b5bb15928 (patch)
tree80faf8762cadc26680281d068daf722c493e222d
parent95efa0b4a5fddd3384ba7bf7f703b3acf5ab44d3 (diff)
downloadmanaserv-37dc13f9a2375c7d6ecccf25f63c607b5bb15928.tar.gz
manaserv-37dc13f9a2375c7d6ecccf25f63c607b5bb15928.tar.bz2
manaserv-37dc13f9a2375c7d6ecccf25f63c607b5bb15928.tar.xz
manaserv-37dc13f9a2375c7d6ecccf25f63c607b5bb15928.zip
Added a bit more precision on the conditions used in the TriggerArea::update() function.
-rw-r--r--src/game-server/actor.h3
-rw-r--r--src/game-server/trigger.cpp5
2 files changed, 6 insertions, 2 deletions
diff --git a/src/game-server/actor.h b/src/game-server/actor.h
index 529d48c4..abc1e1d0 100644
--- a/src/game-server/actor.h
+++ b/src/game-server/actor.h
@@ -111,6 +111,9 @@ class Actor : public Thing
void setPublicID(int id)
{ mPublicID = id; }
+ bool isPublicIdValid() const
+ { return (mPublicID > 0 && mPublicID != 65535); }
+
/**
* Gets the way the actor blocks pathfinding for other actors.
*/
diff --git a/src/game-server/trigger.cpp b/src/game-server/trigger.cpp
index 19ca3512..c4cec2f4 100644
--- a/src/game-server/trigger.cpp
+++ b/src/game-server/trigger.cpp
@@ -52,8 +52,9 @@ void TriggerArea::update()
std::set<Actor*> insideNow;
for (BeingIterator i(getMap()->getInsideRectangleIterator(mZone)); i; ++i)
{
- //skip garbage
- if (!(*i) || (*i)->getPublicID() == 0) continue;
+ // Don't deal with unitialized actors.
+ if (!(*i) || !(*i)->isPublicIdValid())
+ continue;
// The BeingIterator returns the mapZones in touch with the rectangle
// area. On the other hand, the beings contained in the map zones