diff options
| -rw-r--r-- | src/server/game/Handlers/PetHandler.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
| -rw-r--r-- | src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp | 6 | 
3 files changed, 7 insertions, 5 deletions
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index cd680f4a973..90d40407cbb 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -167,7 +167,9 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe                      break;                  case COMMAND_FOLLOW: // spellid = 1792 - FOLLOW                      pet->AttackStop(); -                    pet->InterruptNonMeleeSpells(false); +                    pet->InterruptSpell(CURRENT_GENERIC_SPELL, false, false); +                    if (Spell const* channeledSpell = pet->GetCurrentSpell(CURRENT_CHANNELED_SPELL); channeledSpell && !channeledSpell->GetSpellInfo()->HasAttribute(SPELL_ATTR9_CHANNEL_PERSISTS_ON_PET_FOLLOW)) +                        pet->InterruptSpell(CURRENT_CHANNELED_SPELL, true, true);                      pet->GetMotionMaster()->MoveFollow(_player, PET_FOLLOW_DIST, pet->GetFollowAngle());                      charmInfo->SetCommandState(COMMAND_FOLLOW); diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 9d6f4c902e8..97ea7dc1afe 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -793,7 +793,7 @@ enum SpellAttr9 : uint32      SPELL_ATTR9_CANNOT_KILL_TARGET                                  = 0x10000000, // TITLE Cannot Kill Target      SPELL_ATTR9_LOG_PASSIVE                                         = 0x20000000, // TITLE Log Passive (client only) DESCRIPTION Allows passive auras to trigger aura applied/refreshed/removed combat log events      SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS                            = 0x40000000, // TITLE No Movement Radius Bonus -    SPELL_ATTR9_UNK31                            = 0x80000000  // TITLE Unknown attribute 31@Attr9 +    SPELL_ATTR9_CHANNEL_PERSISTS_ON_PET_FOLLOW                      = 0x80000000  // TITLE Channel Persists on Pet Follow  };  // EnumUtils: DESCRIBE THIS diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp index 1b5df70f0c1..4d4f99816cf 100644 --- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp +++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp @@ -1469,7 +1469,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr9>::ToString(SpellAttr9 value)          case SPELL_ATTR9_CANNOT_KILL_TARGET: return { "SPELL_ATTR9_CANNOT_KILL_TARGET", "Cannot Kill Target", "" };          case SPELL_ATTR9_LOG_PASSIVE: return { "SPELL_ATTR9_LOG_PASSIVE", "Log Passive (client only)", "Allows passive auras to trigger aura applied/refreshed/removed combat log events" };          case SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS: return { "SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS", "No Movement Radius Bonus", "" }; -        case SPELL_ATTR9_UNK31: return { "SPELL_ATTR9_UNK31", "Unknown attribute 31@Attr9", "" }; +        case SPELL_ATTR9_CHANNEL_PERSISTS_ON_PET_FOLLOW: return { "SPELL_ATTR9_CHANNEL_PERSISTS_ON_PET_FOLLOW", "Channel Persists on Pet Follow", "" };          default: throw std::out_of_range("value");      }  } @@ -1513,7 +1513,7 @@ TC_API_EXPORT SpellAttr9 EnumUtils<SpellAttr9>::FromIndex(size_t index)          case 28: return SPELL_ATTR9_CANNOT_KILL_TARGET;          case 29: return SPELL_ATTR9_LOG_PASSIVE;          case 30: return SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS; -        case 31: return SPELL_ATTR9_UNK31; +        case 31: return SPELL_ATTR9_CHANNEL_PERSISTS_ON_PET_FOLLOW;          default: throw std::out_of_range("index");      }  } @@ -1554,7 +1554,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr9>::ToIndex(SpellAttr9 value)          case SPELL_ATTR9_CANNOT_KILL_TARGET: return 28;          case SPELL_ATTR9_LOG_PASSIVE: return 29;          case SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS: return 30; -        case SPELL_ATTR9_UNK31: return 31; +        case SPELL_ATTR9_CHANNEL_PERSISTS_ON_PET_FOLLOW: return 31;          default: throw std::out_of_range("value");      }  }  | 
