From 96fb156c4718003002ccb9a8cc5576a627b59c6a Mon Sep 17 00:00:00 2001 From: Noudess Date: Wed, 2 Sep 2020 14:50:51 -0400 Subject: [PATCH] Change Older clients to not use persistant taunt button & default to taunt on. --- zone/client_packet.cpp | 9 ++++++--- zone/pets.cpp | 13 ++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index bfb9fd90c..316c08cd9 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -1632,9 +1632,12 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app) pet->CalcBonuses(); pet->SetHP(m_petinfo.HP); pet->SetMana(m_petinfo.Mana); - // 1st login, client takes care of this from button status - if (!firstlogon) { - pet->SetTaunting(m_petinfo.taunting); + + // Taunt persists when zoning on newer clients, overwrite default. + if (m_ClientVersionBit & EQ::versions::maskUFAndLater) { + if (!firstlogon) { + pet->SetTaunting(m_petinfo.taunting); + } } } m_petinfo.SpellID = 0; diff --git a/zone/pets.cpp b/zone/pets.cpp index dd66fccad..a8b69f77f 100644 --- a/zone/pets.cpp +++ b/zone/pets.cpp @@ -433,7 +433,18 @@ Pet::Pet(NPCType *type_data, Mob *owner, PetType type, uint16 spell_id, int16 po petpower = power; SetOwnerID(owner->GetID()); SetPetSpellID(spell_id); - taunting = false; + + bool non_persistant_pet_states_client = false; + + // Deault to on in older clients, off in new clients that control state. + if (owner && owner->IsClient()) { + if (!(owner->CastToClient()->ClientVersionBit() & EQ::versions::maskUFAndLater)) { + LogError("Titanium"); + non_persistant_pet_states_client = true; + } + + taunting = non_persistant_pet_states_client; + } // Class should use npc constructor to set light properties }