aboutsummaryrefslogtreecommitdiff
path: root/src/game/ObjectAccessor.cpp
diff options
context:
space:
mode:
authorw12x <none@none>2008-10-27 15:28:04 -0500
committerw12x <none@none>2008-10-27 15:28:04 -0500
commitdd977765014498fd97dd89f68738e5fa2306e465 (patch)
tree430b12a23424896c2cb2a5aaaef8192030f12888 /src/game/ObjectAccessor.cpp
parent1b820f93ebadc6f253a0b1baa958abe3ab482e2d (diff)
[svn] * Fixed startup error flood if creature model id is 0
* Fixed totems using proper model ids broken after recent change * Set pet grid activity state to that of caster upon summoning * Fix a possible crash in ObjectAccessor note to self: don't commit anything without 3 days testing. ever. after this one ofc. --HG-- branch : trunk
Diffstat (limited to 'src/game/ObjectAccessor.cpp')
-rw-r--r--src/game/ObjectAccessor.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/game/ObjectAccessor.cpp b/src/game/ObjectAccessor.cpp
index 631ccc7fe6b..39687e27e49 100644
--- a/src/game/ObjectAccessor.cpp
+++ b/src/game/ObjectAccessor.cpp
@@ -533,10 +533,15 @@ ObjectAccessor::Update(uint32 diff)
// clone the active object list, because update might remove from it
std::set<WorldObject *> activeobjects(i_activeobjects);
- std::set<WorldObject *>::const_iterator itr;
- for(itr = activeobjects.begin(); itr != activeobjects.end(); ++itr)
+ std::set<WorldObject *>::iterator itr, next;
+ for(itr = activeobjects.begin(); itr != activeobjects.end(); itr = next)
{
- (*itr)->GetMap()->resetMarkedCells();
+ next = itr;
+ ++next;
+ if((*itr)->IsInWorld())
+ (*itr)->GetMap()->resetMarkedCells();
+ else
+ activeobjects.erase(itr);
}
Map *map;