aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/OutdoorPvP
diff options
context:
space:
mode:
authormegamage <none@none.none>2011-11-28 14:05:25 -0500
committermegamage <none@none.none>2011-11-28 14:05:25 -0500
commit529af3cd092972c2d5204308a5ba573bad8e0b1f (patch)
treedc416a7353c359677807d8871c585ff2627ffccd /src/server/scripts/OutdoorPvP
parentcde7ea260eae5c7676411c848131f91e5648ec28 (diff)
Delete obj if it is not successfully added to grid. More to fix.
Diffstat (limited to 'src/server/scripts/OutdoorPvP')
-rwxr-xr-xsrc/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
index 23477741ba1..bcdcc69181a 100755
--- a/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
+++ b/src/server/scripts/OutdoorPvP/OutdoorPvPSI.cpp
@@ -166,11 +166,15 @@ bool OutdoorPvPSI::HandleDropFlag(Player* player, uint32 spellId)
if (!go->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), SI_SILITHYST_MOUND, map, player->GetPhaseMask(), player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation(), 0, 0, 0, 0, 100, GO_STATE_READY))
{
delete go;
+ return true;
}
- else
+
+ go->SetRespawnTime(0);
+
+ if (!map->AddToMap(go))
{
- go->SetRespawnTime(0);
- map->AddToMap(go);
+ delete go;
+ return true;
}
}
}
@@ -189,17 +193,22 @@ bool OutdoorPvPSI::HandleDropFlag(Player* player, uint32 spellId)
Map* map = player->GetMap();
if (!map)
{
- delete go;
- return true;
- }
+ delete go;
+ return true;
+ }
+
if (!go->Create(sObjectMgr->GenerateLowGuid(HIGHGUID_GAMEOBJECT), SI_SILITHYST_MOUND, map, player->GetPhaseMask(), player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation(), 0, 0, 0, 0, 100, GO_STATE_READY))
{
delete go;
+ return true;
}
- else
+
+ go->SetRespawnTime(0);
+
+ if (!map->AddToMap(go))
{
- go->SetRespawnTime(0);
- map->AddToMap(go);
+ delete go;
+ return true;
}
}
}