even though I'm sure CD found them all, I'll just post everything fixed:
zones/groups.cpp
lines 594-597
Code:
#ifdef GROUP_BUFF_PETS
if(caster->GetPet() && caster->GetAA(aaPetAffinity))
caster->SpellOnTarget(spell_id, caster->GetPet());
#endif
change to
Code:
#ifdef GROUP_BUFF_PETS
if(caster->GetPet() && caster->GetAA(aaPetAffinity) && !caster->GetPet()->Charmed())
caster->SpellOnTarget(spell_id, caster->GetPet());
#endif
lines 604 - 607
Code:
#ifdef GROUP_BUFF_PETS
if(members[z]->GetPet() && members[z]->GetAA(aaPetAffinity))
caster->SpellOnTarget(spell_id, members[z]->GetPet());
#endif
change to
Code:
#ifdef GROUP_BUFF_PETS
if(members[z]->GetPet() && members[z]->GetAA(aaPetAffinity) && !members[z]->GetPet()->Charmed())
caster->SpellOnTarget(spell_id, members[z]->GetPet());
#endif
lines 633-636
Code:
#ifdef GROUP_BUFF_PETS
if(caster->GetPet() && caster->GetAA(aaPetAffinity))
caster->BardPulse(spell_id, caster->GetPet());
#endif
change to
Code:
#ifdef GROUP_BUFF_PETS
if(caster->GetPet() && caster->GetAA(aaPetAffinity) && !caster->GetPet()->Charmed())
caster->BardPulse(spell_id, caster->GetPet());
#endif
well I think you get the idea, but here is the rest of the line numbers
in zones/groups.cpp on line 644
in zones/raids.cpp on lines 413, 424, 592, 603
in zones/spells.cpp on lines 1561 and 1569
the rest in groups and raids are the same (it's the same two statements), for spells it's a little different, for line 1561 change
Code:
if (GetPet() && GetAA(aaPetAffinity))
to
Code:
if (GetPet() && GetAA(aaPetAffinity) && !GetPet()->Charmed())
and on 1569
Code:
if (spell_target->GetPet() && GetAA(aaPetAffinity))
to
Code:
if (spell_target->GetPet() && GetAA(aaPetAffinity) && !spell_target->GetPet()->Charmed())
these should be all correct, but I don't have a means to test them