aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Object
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/Entities/Object
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/Entities/Object')
-rwxr-xr-xsrc/server/game/Entities/Object/Object.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index dfcf6a3cfa4..c579659623b 100755
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -527,9 +527,11 @@ template<class T>
class GridObject
{
public:
- GridReference<T> &GetGridRef() { return m_gridRef; }
- protected:
- GridReference<T> m_gridRef;
+ bool IsInGrid() const { return _gridRef.isValid(); }
+ void AddToGrid(GridRefManager<T>& m) { ASSERT(!IsInGrid()); _gridRef.link(&m, (T*)this); }
+ void RemoveFromGrid() { ASSERT(IsInGrid()); _gridRef.unlink(); }
+ private:
+ GridReference<T> _gridRef;
};
template <class T_VALUES, class T_FLAGS, class FLAG_TYPE, uint8 ARRAY_SIZE>