mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
[9647] Fix current pet save in summoned state.
Thanks to hunuza for explcit bug line pointing ;)
This commit is contained in:
parent
f9f21b5f7f
commit
47878ab6aa
2 changed files with 10 additions and 9 deletions
|
|
@ -17026,17 +17026,17 @@ void Player::UpdateDuelFlag(time_t currTime)
|
||||||
|
|
||||||
void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent)
|
void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent)
|
||||||
{
|
{
|
||||||
if(!pet)
|
if (!pet)
|
||||||
pet = GetPet();
|
pet = GetPet();
|
||||||
|
|
||||||
if(!pet || pet->GetOwnerGUID()!=GetGUID())
|
if (!pet || pet->GetOwnerGUID() != GetGUID())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// not save secondary permanent pet as current
|
// not save secondary permanent pet as current
|
||||||
if (pet && m_temporaryUnsummonedPetNumber != pet->GetCharmInfo()->GetPetNumber() && mode == PET_SAVE_AS_CURRENT)
|
if (pet && m_temporaryUnsummonedPetNumber && m_temporaryUnsummonedPetNumber != pet->GetCharmInfo()->GetPetNumber() && mode == PET_SAVE_AS_CURRENT)
|
||||||
mode = PET_SAVE_NOT_IN_SLOT;
|
mode = PET_SAVE_NOT_IN_SLOT;
|
||||||
|
|
||||||
if(returnreagent && pet && mode != PET_SAVE_AS_CURRENT)
|
if (returnreagent && pet && mode != PET_SAVE_AS_CURRENT)
|
||||||
{
|
{
|
||||||
//returning of reagents only for players, so best done here
|
//returning of reagents only for players, so best done here
|
||||||
uint32 spellId = pet ? pet->GetUInt32Value(UNIT_CREATED_BY_SPELL) : m_oldpetspell;
|
uint32 spellId = pet ? pet->GetUInt32Value(UNIT_CREATED_BY_SPELL) : m_oldpetspell;
|
||||||
|
|
@ -17071,7 +17071,7 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent)
|
||||||
RemoveGuardian(pet);
|
RemoveGuardian(pet);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if(GetPetGUID() == pet->GetGUID())
|
if (GetPetGUID() == pet->GetGUID())
|
||||||
SetPet(NULL);
|
SetPet(NULL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -17083,7 +17083,7 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent)
|
||||||
pet->AddObjectToRemoveList();
|
pet->AddObjectToRemoveList();
|
||||||
pet->m_removed = true;
|
pet->m_removed = true;
|
||||||
|
|
||||||
if(pet->isControlled())
|
if (pet->isControlled())
|
||||||
{
|
{
|
||||||
RemovePetActionBar();
|
RemovePetActionBar();
|
||||||
|
|
||||||
|
|
@ -17094,7 +17094,7 @@ void Player::RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent)
|
||||||
|
|
||||||
void Player::RemoveMiniPet()
|
void Player::RemoveMiniPet()
|
||||||
{
|
{
|
||||||
if(Pet* pet = GetMiniPet())
|
if (Pet* pet = GetMiniPet())
|
||||||
{
|
{
|
||||||
pet->Remove(PET_SAVE_AS_DELETED);
|
pet->Remove(PET_SAVE_AS_DELETED);
|
||||||
m_miniPet = 0;
|
m_miniPet = 0;
|
||||||
|
|
@ -17103,8 +17103,9 @@ void Player::RemoveMiniPet()
|
||||||
|
|
||||||
Pet* Player::GetMiniPet()
|
Pet* Player::GetMiniPet()
|
||||||
{
|
{
|
||||||
if(!m_miniPet)
|
if (!m_miniPet)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return GetMap()->GetPet(m_miniPet);
|
return GetMap()->GetPet(m_miniPet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "9646"
|
#define REVISION_NR "9647"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue