aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Grids/Grid.h
diff options
context:
space:
mode:
authormegamage <none@none.none>2011-11-10 17:31:45 -0500
committermegamage <none@none.none>2011-11-10 17:31:45 -0500
commit31a88d4fe5d5dea87f4dad24e4d7c3c1d47fc48c (patch)
tree959c67bc2442019a69d37877fc7e7bcb33225ab6 /src/server/game/Grids/Grid.h
parent23b3f16f3a4a27b7b24081b725666c5897fdbbee (diff)
Fix the crash when removing object from an unloaded grid. Object should always be unlinked from grid no matter if the grid is loaded.
Diffstat (limited to 'src/server/game/Grids/Grid.h')
-rwxr-xr-xsrc/server/game/Grids/Grid.h30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/server/game/Grids/Grid.h b/src/server/game/Grids/Grid.h
index cf6eb2471da..448c4cb35fd 100755
--- a/src/server/game/Grids/Grid.h
+++ b/src/server/game/Grids/Grid.h
@@ -58,20 +58,19 @@ class Grid
*/
template<class SPECIFIC_OBJECT> void AddWorldObject(SPECIFIC_OBJECT *obj)
{
- ASSERT(!obj->GetGridRef().isValid());
i_objects.template insert<SPECIFIC_OBJECT>(obj);
- ASSERT(obj->GetGridRef().isValid());
+ ASSERT(obj->IsInGrid());
}
/** an object of interested exits the grid
*/
//Actually an unlink is enough, no need to go through the container
- template<class SPECIFIC_OBJECT> void RemoveWorldObject(SPECIFIC_OBJECT *obj)
- {
- ASSERT(obj->GetGridRef().isValid());
- i_objects.template remove<SPECIFIC_OBJECT>(obj);
- ASSERT(!obj->GetGridRef().isValid());
- }
+ //template<class SPECIFIC_OBJECT> void RemoveWorldObject(SPECIFIC_OBJECT *obj)
+ //{
+ // ASSERT(obj->GetGridRef().isValid());
+ // i_objects.template remove<SPECIFIC_OBJECT>(obj);
+ // ASSERT(!obj->GetGridRef().isValid());
+ //}
/** Refreshes/update the grid. This required for remote grids.
*/
@@ -107,19 +106,18 @@ class Grid
*/
template<class SPECIFIC_OBJECT> void AddGridObject(SPECIFIC_OBJECT *obj)
{
- ASSERT(!obj->GetGridRef().isValid());
i_container.template insert<SPECIFIC_OBJECT>(obj);
- ASSERT(obj->GetGridRef().isValid());
+ ASSERT(obj->IsInGrid());
}
/** Removes a containter type object from the grid
*/
- template<class SPECIFIC_OBJECT> void RemoveGridObject(SPECIFIC_OBJECT *obj)
- {
- ASSERT(obj->GetGridRef().isValid());
- i_container.template remove<SPECIFIC_OBJECT>(obj);
- ASSERT(!obj->GetGridRef().isValid());
- }
+ //template<class SPECIFIC_OBJECT> void RemoveGridObject(SPECIFIC_OBJECT *obj)
+ //{
+ // ASSERT(obj->GetGridRef().isValid());
+ // i_container.template remove<SPECIFIC_OBJECT>(obj);
+ // ASSERT(!obj->GetGridRef().isValid());
+ //}
/*bool NoWorldObjectInGrid() const
{