From 8cf2062c1f253f71696deeda6d7e1e393d115009 Mon Sep 17 00:00:00 2001 From: megamage Date: Tue, 20 Dec 2011 17:05:08 -0500 Subject: Update grid system. Try to fix some crashes and transport passengers (now they are despawned after a while). --- src/server/game/Entities/DynamicObject/DynamicObject.cpp | 7 +++---- src/server/game/Entities/DynamicObject/DynamicObject.h | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) (limited to 'src/server/game/Entities/DynamicObject') diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.cpp b/src/server/game/Entities/DynamicObject/DynamicObject.cpp index 30afd43cf14..4e0d2d7d0b9 100755 --- a/src/server/game/Entities/DynamicObject/DynamicObject.cpp +++ b/src/server/game/Entities/DynamicObject/DynamicObject.cpp @@ -27,7 +27,7 @@ #include "GridNotifiersImpl.h" #include "ScriptMgr.h" -DynamicObject::DynamicObject() : WorldObject(), +DynamicObject::DynamicObject(bool isWorldObject) : WorldObject(isWorldObject), _aura(NULL), _removedAura(NULL), _caster(NULL), _duration(0), _isViewpoint(false) { m_objectType |= TYPEMASK_DYNAMICOBJECT; @@ -79,7 +79,7 @@ void DynamicObject::RemoveFromWorld() } } -bool DynamicObject::CreateDynamicObject(uint32 guidlow, Unit* caster, uint32 spellId, Position const& pos, float radius, bool active, DynamicObjectType type) +bool DynamicObject::CreateDynamicObject(uint32 guidlow, Unit* caster, uint32 spellId, Position const& pos, float radius, DynamicObjectType type) { SetMap(caster->GetMap()); Relocate(pos); @@ -105,8 +105,7 @@ bool DynamicObject::CreateDynamicObject(uint32 guidlow, Unit* caster, uint32 spe SetFloatValue(DYNAMICOBJECT_RADIUS, radius); SetUInt32Value(DYNAMICOBJECT_CASTTIME, getMSTime()); - m_isWorldObject = active; - if (active) + if (IsWorldObject()) setActive(true); //must before add to map to be put in world container if (!GetMap()->AddToMap(this)) diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.h b/src/server/game/Entities/DynamicObject/DynamicObject.h index c178fe98d14..bd8c15cdba4 100755 --- a/src/server/game/Entities/DynamicObject/DynamicObject.h +++ b/src/server/game/Entities/DynamicObject/DynamicObject.h @@ -35,13 +35,13 @@ enum DynamicObjectType class DynamicObject : public WorldObject, public GridObject { public: - DynamicObject(); + DynamicObject(bool isWorldObject); ~DynamicObject(); void AddToWorld(); void RemoveFromWorld(); - bool CreateDynamicObject(uint32 guidlow, Unit* caster, uint32 spellId, Position const& pos, float radius, bool active, DynamicObjectType type); + bool CreateDynamicObject(uint32 guidlow, Unit* caster, uint32 spellId, Position const& pos, float radius, DynamicObjectType type); void Update(uint32 p_time); void Remove(); void SetDuration(int32 newDuration); -- cgit v1.2.3