diff options
| author | tobmaps <spambot42@yandex.ru> | 2011-05-12 22:07:16 +0700 |
|---|---|---|
| committer | tobmaps <spambot42@yandex.ru> | 2011-05-12 22:07:16 +0700 |
| commit | 029425d6fb2661df96456f125722aa4655387910 (patch) | |
| tree | 06dfb69460abcd7317385dff8667e37de02fab6f /src | |
| parent | 2feb30ec1b0228c9fab71a28ca1b82c33c6d54b2 (diff) | |
Core/Pets: Fix autocast-toggling for grouped pets
Closes #272 & #273
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Server/Protocol/Handlers/PetHandler.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/PetHandler.cpp b/src/server/game/Server/Protocol/Handlers/PetHandler.cpp index 9dfac0e1b7c..0c8201aa1e2 100755 --- a/src/server/game/Server/Protocol/Handlers/PetHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/PetHandler.cpp @@ -560,7 +560,9 @@ void WorldSession::HandlePetSetAction(WorldPacket & recv_data) if (pet->GetTypeId() == TYPEID_UNIT && pet->ToCreature()->isPet()) ((Pet*)pet)->ToggleAutocast(spell_id, true); else - charmInfo->ToggleCreatureAutocast(spell_id, true); + for (Unit::ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end(); ++itr) + if ((*itr)->GetEntry() == pet->GetEntry()) + (*itr)->GetCharmInfo()->ToggleCreatureAutocast(spell_id, true); } //sign for no/turn off autocast else if (act_state == ACT_DISABLED && spell_id) @@ -568,7 +570,9 @@ void WorldSession::HandlePetSetAction(WorldPacket & recv_data) if (pet->GetTypeId() == TYPEID_UNIT && pet->ToCreature()->isPet()) ((Pet*)pet)->ToggleAutocast(spell_id, false); else - charmInfo->ToggleCreatureAutocast(spell_id, false); + for (Unit::ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end(); ++itr) + if ((*itr)->GetEntry() == pet->GetEntry()) + (*itr)->GetCharmInfo()->ToggleCreatureAutocast(spell_id, false); } |
