aboutsummaryrefslogtreecommitdiff
path: root/src/game/Level2.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-28 14:19:14 -0500
committermegamage <none@none>2009-08-28 14:19:14 -0500
commit6de6557bf0baa323046497f2d793c805d69b630b (patch)
treec7b0c9840e8f9d946318476b0b908a80c6fef71c /src/game/Level2.cpp
parent3d9326c4b7ec086790d0476f9864cd7d201e9495 (diff)
*Fix a crash caused by gm command .object move and so on
--HG-- branch : trunk
Diffstat (limited to 'src/game/Level2.cpp')
-rw-r--r--src/game/Level2.cpp22
1 files changed, 6 insertions, 16 deletions
diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp
index ed4527dcc5b..bd09c69af08 100644
--- a/src/game/Level2.cpp
+++ b/src/game/Level2.cpp
@@ -638,13 +638,10 @@ bool ChatHandler::HandleGameObjectTurnCommand(const char* args)
o = chr->GetOrientation();
}
- Map* map = obj->GetMap();
- map->Remove(obj,false);
-
obj->Relocate(obj->GetPositionX(), obj->GetPositionY(), obj->GetPositionZ(), o);
obj->UpdateRotationFields();
-
- map->Add(obj);
+ obj->DestroyForNearbyPlayers();
+ ObjectAccessor::UpdateObjectVisibility(obj);
obj->SaveToDB();
obj->Refresh();
@@ -686,13 +683,9 @@ bool ChatHandler::HandleGameObjectMoveCommand(const char* args)
if (!px)
{
Player *chr = m_session->GetPlayer();
-
- Map* map = obj->GetMap();
- map->Remove(obj,false);
-
obj->Relocate(chr->GetPositionX(), chr->GetPositionY(), chr->GetPositionZ(), obj->GetOrientation());
-
- map->Add(obj);
+ obj->DestroyForNearbyPlayers();
+ ObjectAccessor::UpdateObjectVisibility(obj);
}
else
{
@@ -710,12 +703,9 @@ bool ChatHandler::HandleGameObjectMoveCommand(const char* args)
return false;
}
- Map* map = obj->GetMap();
- map->Remove(obj,false);
-
obj->Relocate(x, y, z, obj->GetOrientation());
-
- map->Add(obj);
+ obj->DestroyForNearbyPlayers();
+ ObjectAccessor::UpdateObjectVisibility(obj);
}
obj->SaveToDB();