[7645] Fixed problems wit temporary unsummoned pets and cleanup code.

* Save temporary unsummoned pet to current slot (instead non_in_slot mode) and
  prevent save as current pet summoned while temporay unsummon (arena)
* Prevent overwrite temporary summoned pet data
* At player loading set temporary unsummoned pet data instead pet loading
  if pet expected to be temporary unsummoned in current player state (loading in taxi flight/etc)
* Restore proper pet at arena leave and unsummon in arena summoned.
This commit is contained in:
VladimirMangos 2009-04-11 06:54:39 +04:00
parent 263bf2ab22
commit eb198f8239
9 changed files with 105 additions and 108 deletions

View file

@ -155,14 +155,7 @@ void WorldSession::HandleMoveWorldportAckOpcode()
GetPlayer()->CastSpell(GetPlayer(), 2479, true);
// resummon pet
if(GetPlayer()->m_temporaryUnsummonedPetNumber)
{
Pet* NewPet = new Pet;
if(!NewPet->LoadPetFromDB(GetPlayer(), 0, GetPlayer()->m_temporaryUnsummonedPetNumber, true))
delete NewPet;
GetPlayer()->m_temporaryUnsummonedPetNumber = 0;
}
GetPlayer()->ResummonPetTemporaryUnSummonedIfAny();
GetPlayer()->SetDontMove(false);
}