*Fix a crash caused by bg and arena.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-05-17 09:28:38 -05:00
parent 698b43f088
commit f4efa0f1df

View File

@@ -121,21 +121,25 @@ Map* MapInstanced::GetInstance(const WorldObject* obj)
Player* player = (Player*)obj;
uint32 instanceId = player->GetInstanceId();
if(IsBattleGroundOrArena())
{
if(!instanceId)
instanceId = player->GetBattleGroundId();
if(instanceId)
return _FindMap(instanceId);
else
return NULL;
}
if(instanceId)
if(Map *map = _FindMap(instanceId))
return map;
if(IsBattleGroundOrArena())
{
instanceId = player->GetBattleGroundId();
if(instanceId)
{
if(Map *map = _FindMap(instanceId))
return map;
else
return CreateBattleGround(instanceId);
}
else
return NULL;
}
InstancePlayerBind *pBind = player->GetBoundInstance(GetId(), player->GetDifficulty());
InstanceSave *pSave = pBind ? pBind->save : NULL;
if(!pBind || !pBind->perm)