mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-15 04:11:30 +00:00
Naming convention update for EQEmu::versions::ClientVersionBit
This commit is contained in:
parent
8eaed2233f
commit
0ad43977bf
@ -63,32 +63,26 @@ const char* EQEmu::versions::ClientVersionName(ClientVersion client_version)
|
|||||||
uint32 EQEmu::versions::ConvertClientVersionToClientVersionBit(ClientVersion client_version)
|
uint32 EQEmu::versions::ConvertClientVersionToClientVersionBit(ClientVersion client_version)
|
||||||
{
|
{
|
||||||
switch (client_version) {
|
switch (client_version) {
|
||||||
case ClientVersion::Unknown:
|
|
||||||
case ClientVersion::Client62:
|
|
||||||
return bit_Unknown;
|
|
||||||
case ClientVersion::Titanium:
|
case ClientVersion::Titanium:
|
||||||
return bit_Titanium;
|
return bitTitanium;
|
||||||
case ClientVersion::SoF:
|
case ClientVersion::SoF:
|
||||||
return bit_SoF;
|
return bitSoF;
|
||||||
case ClientVersion::SoD:
|
case ClientVersion::SoD:
|
||||||
return bit_SoD;
|
return bitSoD;
|
||||||
case ClientVersion::UF:
|
case ClientVersion::UF:
|
||||||
return bit_UF;
|
return bitUF;
|
||||||
case ClientVersion::RoF:
|
case ClientVersion::RoF:
|
||||||
return bit_RoF;
|
return bitRoF;
|
||||||
case ClientVersion::RoF2:
|
case ClientVersion::RoF2:
|
||||||
return bit_RoF2;
|
return bitRoF2;
|
||||||
default:
|
default:
|
||||||
return bit_Unknown;
|
return bitUnknown;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EQEmu::versions::ClientVersion EQEmu::versions::ConvertClientVersionBitToClientVersion(uint32 client_version_bit)
|
EQEmu::versions::ClientVersion EQEmu::versions::ConvertClientVersionBitToClientVersion(uint32 client_version_bit)
|
||||||
{
|
{
|
||||||
switch (client_version_bit) {
|
switch (client_version_bit) {
|
||||||
case (uint32)static_cast<unsigned int>(ClientVersion::Unknown) :
|
|
||||||
case ((uint32)1 << (static_cast<unsigned int>(ClientVersion::Client62) - 1)) :
|
|
||||||
return ClientVersion::Unknown;
|
|
||||||
case ((uint32)1 << (static_cast<unsigned int>(ClientVersion::Titanium) - 1)) :
|
case ((uint32)1 << (static_cast<unsigned int>(ClientVersion::Titanium) - 1)) :
|
||||||
return ClientVersion::Titanium;
|
return ClientVersion::Titanium;
|
||||||
case ((uint32)1 << (static_cast<unsigned int>(ClientVersion::SoF) - 1)) :
|
case ((uint32)1 << (static_cast<unsigned int>(ClientVersion::SoF) - 1)) :
|
||||||
|
|||||||
@ -39,26 +39,27 @@ namespace EQEmu
|
|||||||
RoF2 // Build: 'May 10 2013 23:30:08'
|
RoF2 // Build: 'May 10 2013 23:30:08'
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ClientVersionBit : uint32 {
|
enum ClientVersionBitmask : uint32 {
|
||||||
bit_Unknown = 0,
|
bitUnknown = 0x00000000,
|
||||||
bit_Client62 = 0x00000001, // unsupported (placeholder for scripts)
|
bitClient62 = 0x00000001, // unsupported (placeholder for scripts)
|
||||||
bit_Titanium = 0x00000002,
|
bitTitanium = 0x00000002,
|
||||||
bit_SoF = 0x00000004,
|
bitSoF = 0x00000004,
|
||||||
bit_SoD = 0x00000008,
|
bitSoD = 0x00000008,
|
||||||
bit_UF = 0x00000010,
|
bitUF = 0x00000010,
|
||||||
bit_RoF = 0x00000020,
|
bitRoF = 0x00000020,
|
||||||
bit_RoF2 = 0x00000040,
|
bitRoF2 = 0x00000040,
|
||||||
bit_TitaniumAndEarlier = 0x00000003,
|
maskUnknown = 0x00000000,
|
||||||
bit_SoFAndEarlier = 0x00000007,
|
maskTitaniumAndEarlier = 0x00000003,
|
||||||
bit_SoDAndEarlier = 0x0000000F,
|
maskSoFAndEarlier = 0x00000007,
|
||||||
bit_UFAndEarlier = 0x0000001F,
|
maskSoDAndEarlier = 0x0000000F,
|
||||||
bit_RoFAndEarlier = 0x0000003F,
|
maskUFAndEarlier = 0x0000001F,
|
||||||
bit_SoFAndLater = 0xFFFFFFFC,
|
maskRoFAndEarlier = 0x0000003F,
|
||||||
bit_SoDAndLater = 0xFFFFFFF8,
|
maskSoFAndLater = 0xFFFFFFFC,
|
||||||
bit_UFAndLater = 0xFFFFFFF0,
|
maskSoDAndLater = 0xFFFFFFF8,
|
||||||
bit_RoFAndLater = 0xFFFFFFE0,
|
maskUFAndLater = 0xFFFFFFF0,
|
||||||
bit_RoF2AndLater = 0xFFFFFFC0,
|
maskRoFAndLater = 0xFFFFFFE0,
|
||||||
bit_AllClients = 0xFFFFFFFF
|
maskRoF2AndLater = 0xFFFFFFC0,
|
||||||
|
maskAllClients = 0xFFFFFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
const ClientVersion LastClientVersion = ClientVersion::RoF2;
|
const ClientVersion LastClientVersion = ClientVersion::RoF2;
|
||||||
|
|||||||
@ -186,7 +186,7 @@ void Client::SendCharInfo() {
|
|||||||
cle->SetOnline(CLE_Status_CharSelect);
|
cle->SetOnline(CLE_Status_CharSelect);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_RoFAndLater) {
|
if (m_ClientVersionBit & EQEmu::versions::maskRoFAndLater) {
|
||||||
SendMaxCharCreate();
|
SendMaxCharCreate();
|
||||||
SendMembership();
|
SendMembership();
|
||||||
SendMembershipSettings();
|
SendMembershipSettings();
|
||||||
@ -717,7 +717,7 @@ bool Client::HandleCharacterCreatePacket(const EQApplicationPacket *app) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_TitaniumAndEarlier)
|
if (m_ClientVersionBit & EQEmu::versions::maskTitaniumAndEarlier)
|
||||||
StartInTutorial = true;
|
StartInTutorial = true;
|
||||||
SendCharInfo();
|
SendCharInfo();
|
||||||
}
|
}
|
||||||
@ -989,7 +989,7 @@ bool Client::HandleDeleteCharacterPacket(const EQApplicationPacket *app) {
|
|||||||
|
|
||||||
bool Client::HandleZoneChangePacket(const EQApplicationPacket *app) {
|
bool Client::HandleZoneChangePacket(const EQApplicationPacket *app) {
|
||||||
// HoT sends this to world while zoning and wants it echoed back.
|
// HoT sends this to world while zoning and wants it echoed back.
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_RoFAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskRoFAndLater)
|
||||||
{
|
{
|
||||||
QueuePacket(app);
|
QueuePacket(app);
|
||||||
}
|
}
|
||||||
@ -1465,7 +1465,7 @@ bool Client::OPCharCreate(char *name, CharCreate_Struct *cc)
|
|||||||
Log(Logs::Detail, Logs::World_Server, "Beard: %d Beardcolor: %d", cc->beard, cc->beardcolor);
|
Log(Logs::Detail, Logs::World_Server, "Beard: %d Beardcolor: %d", cc->beard, cc->beardcolor);
|
||||||
|
|
||||||
/* Validate the char creation struct */
|
/* Validate the char creation struct */
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoFAndLater) {
|
if (m_ClientVersionBit & EQEmu::versions::maskSoFAndLater) {
|
||||||
if (!CheckCharCreateInfoSoF(cc)) {
|
if (!CheckCharCreateInfoSoF(cc)) {
|
||||||
Log(Logs::Detail, Logs::World_Server,"CheckCharCreateInfo did not validate the request (bad race/class/stats)");
|
Log(Logs::Detail, Logs::World_Server,"CheckCharCreateInfo did not validate the request (bad race/class/stats)");
|
||||||
return false;
|
return false;
|
||||||
@ -1536,7 +1536,7 @@ bool Client::OPCharCreate(char *name, CharCreate_Struct *cc)
|
|||||||
pp.pvp = database.GetServerType() == 1 ? 1 : 0;
|
pp.pvp = database.GetServerType() == 1 ? 1 : 0;
|
||||||
|
|
||||||
/* If it is an SoF Client and the SoF Start Zone rule is set, send new chars there */
|
/* If it is an SoF Client and the SoF Start Zone rule is set, send new chars there */
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoFAndLater) {
|
if (m_ClientVersionBit & EQEmu::versions::maskSoFAndLater) {
|
||||||
Log(Logs::Detail, Logs::World_Server,"Found 'SoFStartZoneID' rule setting: %i", RuleI(World, SoFStartZoneID));
|
Log(Logs::Detail, Logs::World_Server,"Found 'SoFStartZoneID' rule setting: %i", RuleI(World, SoFStartZoneID));
|
||||||
if (RuleI(World, SoFStartZoneID) > 0) {
|
if (RuleI(World, SoFStartZoneID) > 0) {
|
||||||
pp.zone_id = RuleI(World, SoFStartZoneID);
|
pp.zone_id = RuleI(World, SoFStartZoneID);
|
||||||
@ -1552,7 +1552,7 @@ bool Client::OPCharCreate(char *name, CharCreate_Struct *cc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* use normal starting zone logic to either get defaults, or if startzone was set, load that from the db table.*/
|
/* use normal starting zone logic to either get defaults, or if startzone was set, load that from the db table.*/
|
||||||
bool ValidStartZone = database.GetStartZone(&pp, cc, m_ClientVersionBit & EQEmu::versions::bit_TitaniumAndEarlier);
|
bool ValidStartZone = database.GetStartZone(&pp, cc, m_ClientVersionBit & EQEmu::versions::maskTitaniumAndEarlier);
|
||||||
|
|
||||||
if (!ValidStartZone){
|
if (!ValidStartZone){
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -488,7 +488,7 @@ void Client::ResetAA() {
|
|||||||
|
|
||||||
database.DeleteCharacterLeadershipAAs(CharacterID());
|
database.DeleteCharacterLeadershipAAs(CharacterID());
|
||||||
// undefined for these clients
|
// undefined for these clients
|
||||||
if (ClientVersionBit() & EQEmu::versions::bit_TitaniumAndEarlier)
|
if (ClientVersionBit() & EQEmu::versions::maskTitaniumAndEarlier)
|
||||||
Kick();
|
Kick();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1455,7 +1455,7 @@ bool Mob::CanUseAlternateAdvancementRank(AA::Rank *rank) {
|
|||||||
//the one titanium hack i will allow
|
//the one titanium hack i will allow
|
||||||
//just to make sure we dont crash the client with newer aas
|
//just to make sure we dont crash the client with newer aas
|
||||||
//we'll exclude any expendable ones
|
//we'll exclude any expendable ones
|
||||||
if(IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::bit_TitaniumAndEarlier) {
|
if(IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::maskTitaniumAndEarlier) {
|
||||||
if(ability->charges > 0) {
|
if(ability->charges > 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1794,7 +1794,7 @@ bool Client::Death(Mob* killerMob, int32 damage, uint16 spell, EQEmu::skills::Sk
|
|||||||
//this generates a lot of 'updates' to the client that the client does not need
|
//this generates a lot of 'updates' to the client that the client does not need
|
||||||
BuffFadeNonPersistDeath();
|
BuffFadeNonPersistDeath();
|
||||||
if (RuleB(Character, UnmemSpellsOnDeath)) {
|
if (RuleB(Character, UnmemSpellsOnDeath)) {
|
||||||
if ((ClientVersionBit() & EQEmu::versions::bit_SoFAndLater) && RuleB(Character, RespawnFromHover))
|
if ((ClientVersionBit() & EQEmu::versions::maskSoFAndLater) && RuleB(Character, RespawnFromHover))
|
||||||
UnmemSpellAll(true);
|
UnmemSpellAll(true);
|
||||||
else
|
else
|
||||||
UnmemSpellAll(false);
|
UnmemSpellAll(false);
|
||||||
@ -1857,7 +1857,7 @@ bool Client::Death(Mob* killerMob, int32 damage, uint16 spell, EQEmu::skills::Sk
|
|||||||
from these and overwrite what we set in pp anyway
|
from these and overwrite what we set in pp anyway
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (LeftCorpse && (ClientVersionBit() & EQEmu::versions::bit_SoFAndLater) && RuleB(Character, RespawnFromHover))
|
if (LeftCorpse && (ClientVersionBit() & EQEmu::versions::maskSoFAndLater) && RuleB(Character, RespawnFromHover))
|
||||||
{
|
{
|
||||||
ClearDraggedCorpses();
|
ClearDraggedCorpses();
|
||||||
RespawnFromHoverTimer.Start(RuleI(Character, RespawnFromHoverTimer) * 1000);
|
RespawnFromHoverTimer.Start(RuleI(Character, RespawnFromHoverTimer) * 1000);
|
||||||
@ -3791,7 +3791,7 @@ void Mob::HealDamage(uint32 amount, Mob *caster, uint16 spell_id)
|
|||||||
if (IsBuffSpell(spell_id)) { // hots
|
if (IsBuffSpell(spell_id)) { // hots
|
||||||
// message to caster
|
// message to caster
|
||||||
if (caster->IsClient() && caster == this) {
|
if (caster->IsClient() && caster == this) {
|
||||||
if (caster->CastToClient()->ClientVersionBit() & EQEmu::versions::bit_SoFAndLater)
|
if (caster->CastToClient()->ClientVersionBit() & EQEmu::versions::maskSoFAndLater)
|
||||||
FilteredMessage_StringID(caster, MT_NonMelee, FilterHealOverTime,
|
FilteredMessage_StringID(caster, MT_NonMelee, FilterHealOverTime,
|
||||||
HOT_HEAL_SELF, itoa(acthealed), spells[spell_id].name);
|
HOT_HEAL_SELF, itoa(acthealed), spells[spell_id].name);
|
||||||
else
|
else
|
||||||
@ -3799,7 +3799,7 @@ void Mob::HealDamage(uint32 amount, Mob *caster, uint16 spell_id)
|
|||||||
YOU_HEALED, GetCleanName(), itoa(acthealed));
|
YOU_HEALED, GetCleanName(), itoa(acthealed));
|
||||||
}
|
}
|
||||||
else if (caster->IsClient() && caster != this) {
|
else if (caster->IsClient() && caster != this) {
|
||||||
if (caster->CastToClient()->ClientVersionBit() & EQEmu::versions::bit_SoFAndLater)
|
if (caster->CastToClient()->ClientVersionBit() & EQEmu::versions::maskSoFAndLater)
|
||||||
caster->FilteredMessage_StringID(caster, MT_NonMelee, FilterHealOverTime,
|
caster->FilteredMessage_StringID(caster, MT_NonMelee, FilterHealOverTime,
|
||||||
HOT_HEAL_OTHER, GetCleanName(), itoa(acthealed),
|
HOT_HEAL_OTHER, GetCleanName(), itoa(acthealed),
|
||||||
spells[spell_id].name);
|
spells[spell_id].name);
|
||||||
@ -3809,7 +3809,7 @@ void Mob::HealDamage(uint32 amount, Mob *caster, uint16 spell_id)
|
|||||||
}
|
}
|
||||||
// message to target
|
// message to target
|
||||||
if (IsClient() && caster != this) {
|
if (IsClient() && caster != this) {
|
||||||
if (CastToClient()->ClientVersionBit() & EQEmu::versions::bit_SoFAndLater)
|
if (CastToClient()->ClientVersionBit() & EQEmu::versions::maskSoFAndLater)
|
||||||
FilteredMessage_StringID(this, MT_NonMelee, FilterHealOverTime,
|
FilteredMessage_StringID(this, MT_NonMelee, FilterHealOverTime,
|
||||||
HOT_HEALED_OTHER, caster->GetCleanName(),
|
HOT_HEALED_OTHER, caster->GetCleanName(),
|
||||||
itoa(acthealed), spells[spell_id].name);
|
itoa(acthealed), spells[spell_id].name);
|
||||||
|
|||||||
@ -1899,9 +1899,9 @@ void Client::CheckManaEndUpdate() {
|
|||||||
mana_update->cur_mana = GetMana();
|
mana_update->cur_mana = GetMana();
|
||||||
mana_update->max_mana = GetMaxMana();
|
mana_update->max_mana = GetMaxMana();
|
||||||
mana_update->spawn_id = GetID();
|
mana_update->spawn_id = GetID();
|
||||||
if ((ClientVersionBit() & EQEmu::versions::ClientVersionBit::bit_SoDAndLater) != 0)
|
if ((ClientVersionBit() & EQEmu::versions::ClientVersionBitmask::maskSoDAndLater) != 0)
|
||||||
QueuePacket(mana_packet); // do we need this with the OP_ManaChange packet above?
|
QueuePacket(mana_packet); // do we need this with the OP_ManaChange packet above?
|
||||||
entity_list.QueueClientsByXTarget(this, mana_packet, false, EQEmu::versions::ClientVersionBit::bit_SoDAndLater);
|
entity_list.QueueClientsByXTarget(this, mana_packet, false, EQEmu::versions::ClientVersionBitmask::maskSoDAndLater);
|
||||||
safe_delete(mana_packet);
|
safe_delete(mana_packet);
|
||||||
|
|
||||||
last_reported_mana_percent = this->GetManaPercent();
|
last_reported_mana_percent = this->GetManaPercent();
|
||||||
@ -1924,9 +1924,9 @@ void Client::CheckManaEndUpdate() {
|
|||||||
endurance_update->cur_end = GetEndurance();
|
endurance_update->cur_end = GetEndurance();
|
||||||
endurance_update->max_end = GetMaxEndurance();
|
endurance_update->max_end = GetMaxEndurance();
|
||||||
endurance_update->spawn_id = GetID();
|
endurance_update->spawn_id = GetID();
|
||||||
if ((ClientVersionBit() & EQEmu::versions::ClientVersionBit::bit_SoDAndLater) != 0)
|
if ((ClientVersionBit() & EQEmu::versions::ClientVersionBitmask::maskSoDAndLater) != 0)
|
||||||
QueuePacket(endurance_packet); // do we need this with the OP_ManaChange packet above?
|
QueuePacket(endurance_packet); // do we need this with the OP_ManaChange packet above?
|
||||||
entity_list.QueueClientsByXTarget(this, endurance_packet, false, EQEmu::versions::ClientVersionBit::bit_SoDAndLater);
|
entity_list.QueueClientsByXTarget(this, endurance_packet, false, EQEmu::versions::ClientVersionBitmask::maskSoDAndLater);
|
||||||
safe_delete(endurance_packet);
|
safe_delete(endurance_packet);
|
||||||
|
|
||||||
last_reported_endurance_percent = this->GetEndurancePercent();
|
last_reported_endurance_percent = this->GetEndurancePercent();
|
||||||
@ -3054,7 +3054,7 @@ void Client::ServerFilter(SetServerFilter_Struct* filter){
|
|||||||
Filter0(FilterMissedMe);
|
Filter0(FilterMissedMe);
|
||||||
Filter1(FilterDamageShields);
|
Filter1(FilterDamageShields);
|
||||||
|
|
||||||
if (ClientVersionBit() & EQEmu::versions::bit_SoDAndLater) {
|
if (ClientVersionBit() & EQEmu::versions::maskSoDAndLater) {
|
||||||
if (filter->filters[FilterDOT] == 0)
|
if (filter->filters[FilterDOT] == 0)
|
||||||
ClientFilters[FilterDOT] = FilterShow;
|
ClientFilters[FilterDOT] = FilterShow;
|
||||||
else if (filter->filters[FilterDOT] == 1)
|
else if (filter->filters[FilterDOT] == 1)
|
||||||
@ -3075,7 +3075,7 @@ void Client::ServerFilter(SetServerFilter_Struct* filter){
|
|||||||
Filter1(FilterFocusEffects);
|
Filter1(FilterFocusEffects);
|
||||||
Filter1(FilterPetSpells);
|
Filter1(FilterPetSpells);
|
||||||
|
|
||||||
if (ClientVersionBit() & EQEmu::versions::bit_SoDAndLater) {
|
if (ClientVersionBit() & EQEmu::versions::maskSoDAndLater) {
|
||||||
if (filter->filters[FilterHealOverTime] == 0)
|
if (filter->filters[FilterHealOverTime] == 0)
|
||||||
ClientFilters[FilterHealOverTime] = FilterShow;
|
ClientFilters[FilterHealOverTime] = FilterShow;
|
||||||
// This is called 'Show Mine Only' in the clients, but functions the same as show
|
// This is called 'Show Mine Only' in the clients, but functions the same as show
|
||||||
@ -5622,7 +5622,7 @@ void Client::SuspendMinion()
|
|||||||
memset(&m_suspendedminion, 0, sizeof(struct PetInfo));
|
memset(&m_suspendedminion, 0, sizeof(struct PetInfo));
|
||||||
// TODO: These pet command states need to be synced ...
|
// TODO: These pet command states need to be synced ...
|
||||||
// Will just fix them for now
|
// Will just fix them for now
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) {
|
if (m_ClientVersionBit & EQEmu::versions::maskUFAndLater) {
|
||||||
SetPetCommandState(PET_BUTTON_SIT, 0);
|
SetPetCommandState(PET_BUTTON_SIT, 0);
|
||||||
SetPetCommandState(PET_BUTTON_STOP, 0);
|
SetPetCommandState(PET_BUTTON_STOP, 0);
|
||||||
SetPetCommandState(PET_BUTTON_REGROUP, 0);
|
SetPetCommandState(PET_BUTTON_REGROUP, 0);
|
||||||
@ -7631,7 +7631,7 @@ void Client::SendClearMercInfo()
|
|||||||
|
|
||||||
void Client::DuplicateLoreMessage(uint32 ItemID)
|
void Client::DuplicateLoreMessage(uint32 ItemID)
|
||||||
{
|
{
|
||||||
if (!(m_ClientVersionBit & EQEmu::versions::bit_RoFAndLater))
|
if (!(m_ClientVersionBit & EQEmu::versions::maskRoFAndLater))
|
||||||
{
|
{
|
||||||
Message_StringID(0, PICK_LORE);
|
Message_StringID(0, PICK_LORE);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -1160,7 +1160,7 @@ public:
|
|||||||
void HandleLFGuildResponse(ServerPacket *pack);
|
void HandleLFGuildResponse(ServerPacket *pack);
|
||||||
void SendLFGuildStatus();
|
void SendLFGuildStatus();
|
||||||
void SendGuildLFGuildStatus();
|
void SendGuildLFGuildStatus();
|
||||||
inline bool XTargettingAvailable() const { return ((m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) && RuleB(Character, EnableXTargetting)); }
|
inline bool XTargettingAvailable() const { return ((m_ClientVersionBit & EQEmu::versions::maskUFAndLater) && RuleB(Character, EnableXTargetting)); }
|
||||||
inline uint8 GetMaxXTargets() const { return MaxXTargets; }
|
inline uint8 GetMaxXTargets() const { return MaxXTargets; }
|
||||||
void SetMaxXTargets(uint8 NewMax);
|
void SetMaxXTargets(uint8 NewMax);
|
||||||
bool IsXTarget(const Mob *m) const;
|
bool IsXTarget(const Mob *m) const;
|
||||||
@ -1184,7 +1184,7 @@ public:
|
|||||||
bool GroupFollow(Client* inviter);
|
bool GroupFollow(Client* inviter);
|
||||||
inline bool GetRunMode() const { return runmode; }
|
inline bool GetRunMode() const { return runmode; }
|
||||||
|
|
||||||
inline bool AggroMeterAvailable() const { return ((m_ClientVersionBit & EQEmu::versions::bit_RoF2AndLater)) && RuleB(Character, EnableAggroMeter); } // RoF untested
|
inline bool AggroMeterAvailable() const { return ((m_ClientVersionBit & EQEmu::versions::maskRoF2AndLater)) && RuleB(Character, EnableAggroMeter); } // RoF untested
|
||||||
inline void SetAggroMeterLock(int in) { m_aggrometer.set_lock_id(in); }
|
inline void SetAggroMeterLock(int in) { m_aggrometer.set_lock_id(in); }
|
||||||
|
|
||||||
void ProcessAggroMeter(); // builds packet and sends
|
void ProcessAggroMeter(); // builds packet and sends
|
||||||
|
|||||||
@ -868,14 +868,14 @@ void Client::CompleteConnect()
|
|||||||
worldserver.SendPacket(pack);
|
worldserver.SendPacket(pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
|
|
||||||
if (IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::bit_UFAndLater) {
|
if (IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::maskUFAndLater) {
|
||||||
EQApplicationPacket *outapp = MakeBuffsPacket(false);
|
EQApplicationPacket *outapp = MakeBuffsPacket(false);
|
||||||
CastToClient()->FastQueuePacket(&outapp);
|
CastToClient()->FastQueuePacket(&outapp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: load these states
|
// TODO: load these states
|
||||||
// We at least will set them to the correct state for now
|
// We at least will set them to the correct state for now
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater && GetPet()) {
|
if (m_ClientVersionBit & EQEmu::versions::maskUFAndLater && GetPet()) {
|
||||||
SetPetCommandState(PET_BUTTON_SIT, 0);
|
SetPetCommandState(PET_BUTTON_SIT, 0);
|
||||||
SetPetCommandState(PET_BUTTON_STOP, 0);
|
SetPetCommandState(PET_BUTTON_STOP, 0);
|
||||||
SetPetCommandState(PET_BUTTON_REGROUP, 0);
|
SetPetCommandState(PET_BUTTON_REGROUP, 0);
|
||||||
@ -1663,7 +1663,7 @@ void Client::Handle_Connect_OP_ZoneEntry(const EQApplicationPacket *app)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) {
|
if (m_ClientVersionBit & EQEmu::versions::maskUFAndLater) {
|
||||||
outapp = new EQApplicationPacket(OP_XTargetResponse, 8);
|
outapp = new EQApplicationPacket(OP_XTargetResponse, 8);
|
||||||
outapp->WriteUInt32(GetMaxXTargets());
|
outapp->WriteUInt32(GetMaxXTargets());
|
||||||
outapp->WriteUInt32(0);
|
outapp->WriteUInt32(0);
|
||||||
@ -10168,16 +10168,16 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC()) {
|
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC()) {
|
||||||
if (mypet->IsHeld())
|
if (mypet->IsHeld())
|
||||||
{
|
{
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_HOLD_SET_OFF);
|
Message_StringID(MT_PetResponse, PET_HOLD_SET_OFF);
|
||||||
mypet->SetHeld(false);
|
mypet->SetHeld(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_HOLD_SET_ON);
|
Message_StringID(MT_PetResponse, PET_HOLD_SET_ON);
|
||||||
|
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskUFAndLater)
|
||||||
mypet->SayTo_StringID(this, MT_PetResponse, PET_NOW_HOLDING);
|
mypet->SayTo_StringID(this, MT_PetResponse, PET_NOW_HOLDING);
|
||||||
else
|
else
|
||||||
mypet->SayTo_StringID(this, MT_PetResponse, PET_ON_HOLD);
|
mypet->SayTo_StringID(this, MT_PetResponse, PET_ON_HOLD);
|
||||||
@ -10191,10 +10191,10 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
}
|
}
|
||||||
case PET_HOLD_ON: {
|
case PET_HOLD_ON: {
|
||||||
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && !mypet->IsHeld()) {
|
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && !mypet->IsHeld()) {
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_HOLD_SET_ON);
|
Message_StringID(MT_PetResponse, PET_HOLD_SET_ON);
|
||||||
|
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskUFAndLater)
|
||||||
mypet->SayTo_StringID(this, MT_PetResponse, PET_NOW_HOLDING);
|
mypet->SayTo_StringID(this, MT_PetResponse, PET_NOW_HOLDING);
|
||||||
else
|
else
|
||||||
mypet->SayTo_StringID(this, MT_PetResponse, PET_ON_HOLD);
|
mypet->SayTo_StringID(this, MT_PetResponse, PET_ON_HOLD);
|
||||||
@ -10206,7 +10206,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
}
|
}
|
||||||
case PET_HOLD_OFF: {
|
case PET_HOLD_OFF: {
|
||||||
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && mypet->IsHeld()) {
|
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && mypet->IsHeld()) {
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_HOLD_SET_OFF);
|
Message_StringID(MT_PetResponse, PET_HOLD_SET_OFF);
|
||||||
mypet->SetHeld(false);
|
mypet->SetHeld(false);
|
||||||
}
|
}
|
||||||
@ -10216,13 +10216,13 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC()) {
|
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC()) {
|
||||||
if (mypet->IsGHeld())
|
if (mypet->IsGHeld())
|
||||||
{
|
{
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskUFAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_OFF_GHOLD);
|
Message_StringID(MT_PetResponse, PET_OFF_GHOLD);
|
||||||
mypet->SetGHeld(false);
|
mypet->SetGHeld(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) {
|
if (m_ClientVersionBit & EQEmu::versions::maskUFAndLater) {
|
||||||
Message_StringID(MT_PetResponse, PET_ON_GHOLD);
|
Message_StringID(MT_PetResponse, PET_ON_GHOLD);
|
||||||
mypet->SayTo_StringID(this, MT_PetResponse, PET_GHOLD_ON_MSG);
|
mypet->SayTo_StringID(this, MT_PetResponse, PET_GHOLD_ON_MSG);
|
||||||
} else {
|
} else {
|
||||||
@ -10237,7 +10237,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
}
|
}
|
||||||
case PET_GHOLD_ON: {
|
case PET_GHOLD_ON: {
|
||||||
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC()) {
|
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC()) {
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater) {
|
if (m_ClientVersionBit & EQEmu::versions::maskUFAndLater) {
|
||||||
Message_StringID(MT_PetResponse, PET_ON_GHOLD);
|
Message_StringID(MT_PetResponse, PET_ON_GHOLD);
|
||||||
mypet->SayTo_StringID(this, MT_PetResponse, PET_GHOLD_ON_MSG);
|
mypet->SayTo_StringID(this, MT_PetResponse, PET_GHOLD_ON_MSG);
|
||||||
} else {
|
} else {
|
||||||
@ -10251,7 +10251,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
}
|
}
|
||||||
case PET_GHOLD_OFF: {
|
case PET_GHOLD_OFF: {
|
||||||
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && mypet->IsGHeld()) {
|
if (aabonuses.PetCommands[PetCommand] && mypet->IsNPC() && mypet->IsGHeld()) {
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_UFAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskUFAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_OFF_GHOLD);
|
Message_StringID(MT_PetResponse, PET_OFF_GHOLD);
|
||||||
mypet->SetGHeld(false);
|
mypet->SetGHeld(false);
|
||||||
}
|
}
|
||||||
@ -10263,13 +10263,13 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
break;
|
break;
|
||||||
if (mypet->IsNoCast()) {
|
if (mypet->IsNoCast()) {
|
||||||
Message_StringID(MT_PetResponse, PET_CASTING);
|
Message_StringID(MT_PetResponse, PET_CASTING);
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_OFF);
|
Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_OFF);
|
||||||
mypet->SetNoCast(false);
|
mypet->SetNoCast(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Message_StringID(MT_PetResponse, PET_NOT_CASTING);
|
Message_StringID(MT_PetResponse, PET_NOT_CASTING);
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_ON);
|
Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_ON);
|
||||||
mypet->SetNoCast(true);
|
mypet->SetNoCast(true);
|
||||||
}
|
}
|
||||||
@ -10282,7 +10282,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
break;
|
break;
|
||||||
if (!mypet->IsNoCast()) {
|
if (!mypet->IsNoCast()) {
|
||||||
Message_StringID(MT_PetResponse, PET_NOT_CASTING);
|
Message_StringID(MT_PetResponse, PET_NOT_CASTING);
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_ON);
|
Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_ON);
|
||||||
mypet->SetNoCast(true);
|
mypet->SetNoCast(true);
|
||||||
}
|
}
|
||||||
@ -10295,7 +10295,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
break;
|
break;
|
||||||
if (mypet->IsNoCast()) {
|
if (mypet->IsNoCast()) {
|
||||||
Message_StringID(MT_PetResponse, PET_CASTING);
|
Message_StringID(MT_PetResponse, PET_CASTING);
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_OFF);
|
Message_StringID(MT_PetResponse, PET_SPELLHOLD_SET_OFF);
|
||||||
mypet->SetNoCast(false);
|
mypet->SetNoCast(false);
|
||||||
}
|
}
|
||||||
@ -10308,13 +10308,13 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
break;
|
break;
|
||||||
if (mypet->IsFocused()) {
|
if (mypet->IsFocused()) {
|
||||||
Message_StringID(MT_PetResponse, PET_NOT_FOCUSING);
|
Message_StringID(MT_PetResponse, PET_NOT_FOCUSING);
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_FOCUS_SET_OFF);
|
Message_StringID(MT_PetResponse, PET_FOCUS_SET_OFF);
|
||||||
mypet->SetFocused(false);
|
mypet->SetFocused(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Message_StringID(MT_PetResponse, PET_NOW_FOCUSING);
|
Message_StringID(MT_PetResponse, PET_NOW_FOCUSING);
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_FOCUS_SET_ON);
|
Message_StringID(MT_PetResponse, PET_FOCUS_SET_ON);
|
||||||
mypet->SetFocused(true);
|
mypet->SetFocused(true);
|
||||||
}
|
}
|
||||||
@ -10327,7 +10327,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
break;
|
break;
|
||||||
if (!mypet->IsFocused()) {
|
if (!mypet->IsFocused()) {
|
||||||
Message_StringID(MT_PetResponse, PET_NOW_FOCUSING);
|
Message_StringID(MT_PetResponse, PET_NOW_FOCUSING);
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_FOCUS_SET_ON);
|
Message_StringID(MT_PetResponse, PET_FOCUS_SET_ON);
|
||||||
mypet->SetFocused(true);
|
mypet->SetFocused(true);
|
||||||
}
|
}
|
||||||
@ -10340,7 +10340,7 @@ void Client::Handle_OP_PetCommands(const EQApplicationPacket *app)
|
|||||||
break;
|
break;
|
||||||
if (mypet->IsFocused()) {
|
if (mypet->IsFocused()) {
|
||||||
Message_StringID(MT_PetResponse, PET_NOT_FOCUSING);
|
Message_StringID(MT_PetResponse, PET_NOT_FOCUSING);
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_SoDAndLater)
|
if (m_ClientVersionBit & EQEmu::versions::maskSoDAndLater)
|
||||||
Message_StringID(MT_PetResponse, PET_FOCUS_SET_OFF);
|
Message_StringID(MT_PetResponse, PET_FOCUS_SET_OFF);
|
||||||
mypet->SetFocused(false);
|
mypet->SetFocused(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -812,7 +812,7 @@ void Client::BulkSendInventoryItems()
|
|||||||
void Client::BulkSendMerchantInventory(int merchant_id, int npcid) {
|
void Client::BulkSendMerchantInventory(int merchant_id, int npcid) {
|
||||||
const EQEmu::ItemData* handyitem = nullptr;
|
const EQEmu::ItemData* handyitem = nullptr;
|
||||||
uint32 numItemSlots = 80; //The max number of items passed in the transaction.
|
uint32 numItemSlots = 80; //The max number of items passed in the transaction.
|
||||||
if (m_ClientVersionBit & EQEmu::versions::bit_RoFAndLater) { // RoF+ can send 200 items
|
if (m_ClientVersionBit & EQEmu::versions::maskRoFAndLater) { // RoF+ can send 200 items
|
||||||
numItemSlots = 200;
|
numItemSlots = 200;
|
||||||
}
|
}
|
||||||
const EQEmu::ItemData *item = nullptr;
|
const EQEmu::ItemData *item = nullptr;
|
||||||
@ -1132,7 +1132,7 @@ void Client::CancelSneakHide()
|
|||||||
// The later clients send back a OP_Hide (this has a size but data is 0)
|
// The later clients send back a OP_Hide (this has a size but data is 0)
|
||||||
// as well as OP_SpawnAppearance with AT_Invis and one with AT_Sneak
|
// as well as OP_SpawnAppearance with AT_Invis and one with AT_Sneak
|
||||||
// So we don't have to handle any of those flags
|
// So we don't have to handle any of those flags
|
||||||
if (ClientVersionBit() & EQEmu::versions::bit_SoFAndEarlier)
|
if (ClientVersionBit() & EQEmu::versions::maskSoFAndEarlier)
|
||||||
sneaking = false;
|
sneaking = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2129,7 +2129,7 @@ void Client::ClearHover()
|
|||||||
entity_list.QueueClients(this, outapp, false);
|
entity_list.QueueClients(this, outapp, false);
|
||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
|
|
||||||
if (IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::bit_UFAndLater)
|
if (IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::maskUFAndLater)
|
||||||
{
|
{
|
||||||
EQApplicationPacket *outapp = MakeBuffsPacket(false);
|
EQApplicationPacket *outapp = MakeBuffsPacket(false);
|
||||||
CastToClient()->FastQueuePacket(&outapp);
|
CastToClient()->FastQueuePacket(&outapp);
|
||||||
|
|||||||
@ -1564,7 +1564,7 @@ void EntityList::QueueClientsByTarget(Mob *sender, const EQApplicationPacket *ap
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityList::QueueClientsByXTarget(Mob *sender, const EQApplicationPacket *app, bool iSendToSender, EQEmu::versions::ClientVersionBit client_version_bits)
|
void EntityList::QueueClientsByXTarget(Mob *sender, const EQApplicationPacket *app, bool iSendToSender, EQEmu::versions::ClientVersionBitmask client_version_bits)
|
||||||
{
|
{
|
||||||
auto it = client_list.begin();
|
auto it = client_list.begin();
|
||||||
while (it != client_list.end()) {
|
while (it != client_list.end()) {
|
||||||
|
|||||||
@ -353,7 +353,7 @@ public:
|
|||||||
void QueueClientsByTarget(Mob* sender, const EQApplicationPacket* app, bool iSendToSender = true, Mob* SkipThisMob = 0, bool ackreq = true,
|
void QueueClientsByTarget(Mob* sender, const EQApplicationPacket* app, bool iSendToSender = true, Mob* SkipThisMob = 0, bool ackreq = true,
|
||||||
bool HoTT = true, uint32 ClientVersionBits = 0xFFFFFFFF, bool inspect_buffs = false);
|
bool HoTT = true, uint32 ClientVersionBits = 0xFFFFFFFF, bool inspect_buffs = false);
|
||||||
|
|
||||||
void QueueClientsByXTarget(Mob* sender, const EQApplicationPacket* app, bool iSendToSender = true, EQEmu::versions::ClientVersionBit client_version_bits = EQEmu::versions::ClientVersionBit::bit_AllClients);
|
void QueueClientsByXTarget(Mob* sender, const EQApplicationPacket* app, bool iSendToSender = true, EQEmu::versions::ClientVersionBitmask client_version_bits = EQEmu::versions::ClientVersionBitmask::maskAllClients);
|
||||||
void QueueToGroupsForNPCHealthAA(Mob* sender, const EQApplicationPacket* app);
|
void QueueToGroupsForNPCHealthAA(Mob* sender, const EQApplicationPacket* app);
|
||||||
void QueueManaged(Mob* sender, const EQApplicationPacket* app, bool ignore_sender=false, bool ackreq = true);
|
void QueueManaged(Mob* sender, const EQApplicationPacket* app, bool ignore_sender=false, bool ackreq = true);
|
||||||
|
|
||||||
|
|||||||
@ -691,7 +691,7 @@ void GuildBankManager::SendGuildBank(Client *c)
|
|||||||
auto &guild_bank = *Iterator;
|
auto &guild_bank = *Iterator;
|
||||||
|
|
||||||
// RoF+ uses a bulk list packet -- This is also how the Action 0 of older clients basically works
|
// RoF+ uses a bulk list packet -- This is also how the Action 0 of older clients basically works
|
||||||
if (c->ClientVersionBit() & EQEmu::versions::bit_RoFAndLater) {
|
if (c->ClientVersionBit() & EQEmu::versions::maskRoFAndLater) {
|
||||||
auto outapp = new EQApplicationPacket(OP_GuildBankItemList, sizeof(GuildBankItemListEntry_Struct) * 240);
|
auto outapp = new EQApplicationPacket(OP_GuildBankItemList, sizeof(GuildBankItemListEntry_Struct) * 240);
|
||||||
for (int i = 0; i < GUILD_BANK_DEPOSIT_AREA_SIZE; ++i) {
|
for (int i = 0; i < GUILD_BANK_DEPOSIT_AREA_SIZE; ++i) {
|
||||||
const EQEmu::ItemData *Item = database.GetItem(guild_bank->Items.DepositArea[i].ItemID);
|
const EQEmu::ItemData *Item = database.GetItem(guild_bank->Items.DepositArea[i].ItemID);
|
||||||
|
|||||||
@ -1381,7 +1381,7 @@ void Mob::SendHPUpdate(bool skip_self /*= false*/, bool force_update_all /*= fal
|
|||||||
/**
|
/**
|
||||||
* Update those who have us targeted
|
* Update those who have us targeted
|
||||||
*/
|
*/
|
||||||
entity_list.QueueClientsByTarget(this, &hp_packet, false, 0, false, true, EQEmu::versions::bit_AllClients);
|
entity_list.QueueClientsByTarget(this, &hp_packet, false, 0, false, true, EQEmu::versions::maskAllClients);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update those who have us on x-target
|
* Update those who have us on x-target
|
||||||
|
|||||||
@ -507,7 +507,7 @@ void NPC::SetTarget(Mob* mob) {
|
|||||||
|
|
||||||
if (owner) {
|
if (owner) {
|
||||||
auto client = owner->CastToClient();
|
auto client = owner->CastToClient();
|
||||||
if (client->ClientVersionBit() & EQEmu::versions::bit_UFAndLater) {
|
if (client->ClientVersionBit() & EQEmu::versions::maskUFAndLater) {
|
||||||
auto app = new EQApplicationPacket(OP_PetHoTT, sizeof(ClientTarget_Struct));
|
auto app = new EQApplicationPacket(OP_PetHoTT, sizeof(ClientTarget_Struct));
|
||||||
auto ct = (ClientTarget_Struct *)app->pBuffer;
|
auto ct = (ClientTarget_Struct *)app->pBuffer;
|
||||||
ct->new_target = mob ? mob->GetID() : 0;
|
ct->new_target = mob ? mob->GetID() : 0;
|
||||||
|
|||||||
@ -149,7 +149,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
if (spells[spell_id].EndurUpkeep > 0)
|
if (spells[spell_id].EndurUpkeep > 0)
|
||||||
SetEndurUpkeep(true);
|
SetEndurUpkeep(true);
|
||||||
|
|
||||||
if (IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::bit_UFAndLater)
|
if (IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::maskUFAndLater)
|
||||||
{
|
{
|
||||||
EQApplicationPacket *outapp = MakeBuffsPacket(false);
|
EQApplicationPacket *outapp = MakeBuffsPacket(false);
|
||||||
CastToClient()->FastQueuePacket(&outapp);
|
CastToClient()->FastQueuePacket(&outapp);
|
||||||
@ -826,7 +826,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
#endif
|
#endif
|
||||||
if(IsClient())
|
if(IsClient())
|
||||||
{
|
{
|
||||||
if (CastToClient()->ClientVersionBit() & EQEmu::versions::bit_SoDAndLater)
|
if (CastToClient()->ClientVersionBit() & EQEmu::versions::maskSoDAndLater)
|
||||||
{
|
{
|
||||||
bodyType bt = BT_Undead;
|
bodyType bt = BT_Undead;
|
||||||
|
|
||||||
@ -1244,7 +1244,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
// Will fix buttons for now
|
// Will fix buttons for now
|
||||||
if (IsClient()) {
|
if (IsClient()) {
|
||||||
auto c = CastToClient();
|
auto c = CastToClient();
|
||||||
if (c->ClientVersionBit() & EQEmu::versions::bit_UFAndLater) {
|
if (c->ClientVersionBit() & EQEmu::versions::maskUFAndLater) {
|
||||||
c->SetPetCommandState(PET_BUTTON_SIT, 0);
|
c->SetPetCommandState(PET_BUTTON_SIT, 0);
|
||||||
c->SetPetCommandState(PET_BUTTON_STOP, 0);
|
c->SetPetCommandState(PET_BUTTON_STOP, 0);
|
||||||
c->SetPetCommandState(PET_BUTTON_REGROUP, 0);
|
c->SetPetCommandState(PET_BUTTON_REGROUP, 0);
|
||||||
@ -1663,7 +1663,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
#endif
|
#endif
|
||||||
// This is handled by the client prior to SoD.
|
// This is handled by the client prior to SoD.
|
||||||
//
|
//
|
||||||
if (IsClient() && (CastToClient()->ClientVersionBit() & EQEmu::versions::bit_SoDAndLater))
|
if (IsClient() && (CastToClient()->ClientVersionBit() & EQEmu::versions::maskSoDAndLater))
|
||||||
CastToClient()->LocateCorpse();
|
CastToClient()->LocateCorpse();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -3402,7 +3402,7 @@ void Mob::BuffProcess()
|
|||||||
Log(Logs::Detail, Logs::Spells, "Buff %d in slot %d has %d tics remaining.", buffs[buffs_i].spellid, buffs_i, buffs[buffs_i].ticsremaining);
|
Log(Logs::Detail, Logs::Spells, "Buff %d in slot %d has %d tics remaining.", buffs[buffs_i].spellid, buffs_i, buffs[buffs_i].ticsremaining);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (IsClient() && !(CastToClient()->ClientVersionBit() & EQEmu::versions::bit_SoFAndLater))
|
else if (IsClient() && !(CastToClient()->ClientVersionBit() & EQEmu::versions::maskSoFAndLater))
|
||||||
{
|
{
|
||||||
buffs[buffs_i].UpdateClient = true;
|
buffs[buffs_i].UpdateClient = true;
|
||||||
}
|
}
|
||||||
@ -3669,7 +3669,7 @@ void Mob::DoBuffTic(const Buffs_Struct &buff, int slot, Mob *caster)
|
|||||||
case SE_LocateCorpse: {
|
case SE_LocateCorpse: {
|
||||||
// This is handled by the client prior to SoD.
|
// This is handled by the client prior to SoD.
|
||||||
|
|
||||||
if (IsClient() && (CastToClient()->ClientVersionBit() & EQEmu::versions::bit_SoDAndLater))
|
if (IsClient() && (CastToClient()->ClientVersionBit() & EQEmu::versions::maskSoDAndLater))
|
||||||
CastToClient()->LocateCorpse();
|
CastToClient()->LocateCorpse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4085,7 +4085,7 @@ void Mob::BuffFadeBySlot(int slot, bool iRecalcBonuses)
|
|||||||
{
|
{
|
||||||
EQApplicationPacket *outapp = MakeBuffsPacket();
|
EQApplicationPacket *outapp = MakeBuffsPacket();
|
||||||
|
|
||||||
entity_list.QueueClientsByTarget(this, outapp, false, nullptr, true, false, EQEmu::versions::bit_SoDAndLater);
|
entity_list.QueueClientsByTarget(this, outapp, false, nullptr, true, false, EQEmu::versions::maskSoDAndLater);
|
||||||
if(IsClient() && GetTarget() == this) {
|
if(IsClient() && GetTarget() == this) {
|
||||||
CastToClient()->QueuePacket(outapp);
|
CastToClient()->QueuePacket(outapp);
|
||||||
}
|
}
|
||||||
@ -4095,11 +4095,11 @@ void Mob::BuffFadeBySlot(int slot, bool iRecalcBonuses)
|
|||||||
|
|
||||||
if (IsNPC()) {
|
if (IsNPC()) {
|
||||||
EQApplicationPacket *outapp = MakeBuffsPacket();
|
EQApplicationPacket *outapp = MakeBuffsPacket();
|
||||||
entity_list.QueueClientsByTarget(this, outapp, false, nullptr, true, false, EQEmu::versions::bit_SoDAndLater, true);
|
entity_list.QueueClientsByTarget(this, outapp, false, nullptr, true, false, EQEmu::versions::maskSoDAndLater, true);
|
||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::bit_UFAndLater)
|
if (IsClient() && CastToClient()->ClientVersionBit() & EQEmu::versions::maskUFAndLater)
|
||||||
{
|
{
|
||||||
EQApplicationPacket *outapp = MakeBuffsPacket(false);
|
EQApplicationPacket *outapp = MakeBuffsPacket(false);
|
||||||
CastToClient()->FastQueuePacket(&outapp);
|
CastToClient()->FastQueuePacket(&outapp);
|
||||||
|
|||||||
@ -3317,7 +3317,7 @@ int Mob::AddBuff(Mob *caster, uint16 spell_id, int duration, int32 level_overrid
|
|||||||
{
|
{
|
||||||
EQApplicationPacket *outapp = MakeBuffsPacket();
|
EQApplicationPacket *outapp = MakeBuffsPacket();
|
||||||
|
|
||||||
entity_list.QueueClientsByTarget(this, outapp, false, nullptr, true, false, EQEmu::versions::bit_SoDAndLater);
|
entity_list.QueueClientsByTarget(this, outapp, false, nullptr, true, false, EQEmu::versions::maskSoDAndLater);
|
||||||
|
|
||||||
if(IsClient() && GetTarget() == this)
|
if(IsClient() && GetTarget() == this)
|
||||||
CastToClient()->QueuePacket(outapp);
|
CastToClient()->QueuePacket(outapp);
|
||||||
@ -3327,7 +3327,7 @@ int Mob::AddBuff(Mob *caster, uint16 spell_id, int duration, int32 level_overrid
|
|||||||
|
|
||||||
if (IsNPC()) {
|
if (IsNPC()) {
|
||||||
EQApplicationPacket *outapp = MakeBuffsPacket();
|
EQApplicationPacket *outapp = MakeBuffsPacket();
|
||||||
entity_list.QueueClientsByTarget(this, outapp, false, nullptr, true, false, EQEmu::versions::bit_SoDAndLater, true);
|
entity_list.QueueClientsByTarget(this, outapp, false, nullptr, true, false, EQEmu::versions::maskSoDAndLater, true);
|
||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5531,7 +5531,7 @@ void Mob::SendBuffsToClient(Client *c)
|
|||||||
if(!c)
|
if(!c)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (c->ClientVersionBit() & EQEmu::versions::bit_SoDAndLater)
|
if (c->ClientVersionBit() & EQEmu::versions::maskSoDAndLater)
|
||||||
{
|
{
|
||||||
EQApplicationPacket *outapp = MakeBuffsPacket();
|
EQApplicationPacket *outapp = MakeBuffsPacket();
|
||||||
c->FastQueuePacket(&outapp);
|
c->FastQueuePacket(&outapp);
|
||||||
|
|||||||
@ -2700,7 +2700,7 @@ void TaskManager::SendTaskActivityShort(Client *c, int TaskID, int ActivityID, i
|
|||||||
|
|
||||||
TaskActivityShort_Struct* tass;
|
TaskActivityShort_Struct* tass;
|
||||||
|
|
||||||
if (c->ClientVersionBit() & EQEmu::versions::bit_RoFAndLater)
|
if (c->ClientVersionBit() & EQEmu::versions::maskRoFAndLater)
|
||||||
{
|
{
|
||||||
auto outapp = new EQApplicationPacket(OP_TaskActivity, 25);
|
auto outapp = new EQApplicationPacket(OP_TaskActivity, 25);
|
||||||
outapp->WriteUInt32(ClientTaskIndex);
|
outapp->WriteUInt32(ClientTaskIndex);
|
||||||
|
|||||||
@ -588,7 +588,7 @@ void Client::ZonePC(uint32 zoneID, uint32 instance_id, float x, float y, float z
|
|||||||
// If we are SoF and later and are respawning from hover, we want the real zone ID, else zero to use the old hack.
|
// If we are SoF and later and are respawning from hover, we want the real zone ID, else zero to use the old hack.
|
||||||
//
|
//
|
||||||
if(zone->GetZoneID() == zoneID) {
|
if(zone->GetZoneID() == zoneID) {
|
||||||
if ((ClientVersionBit() & EQEmu::versions::bit_SoFAndLater) && (!RuleB(Character, RespawnFromHover) || !IsHoveringForRespawn()))
|
if ((ClientVersionBit() & EQEmu::versions::maskSoFAndLater) && (!RuleB(Character, RespawnFromHover) || !IsHoveringForRespawn()))
|
||||||
gmg->bind_zone_id = 0;
|
gmg->bind_zone_id = 0;
|
||||||
else
|
else
|
||||||
gmg->bind_zone_id = zoneID;
|
gmg->bind_zone_id = zoneID;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user