diff --git a/common/patches/rof.cpp b/common/patches/rof.cpp index 44a2ae606..d6e0e2a17 100644 --- a/common/patches/rof.cpp +++ b/common/patches/rof.cpp @@ -1050,7 +1050,7 @@ namespace RoF { if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername)) { - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); auto outapp = new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct)); @@ -1069,7 +1069,7 @@ namespace RoF return; } //if(gjs->action == groupActLeave) - // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); auto outapp = new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct)); @@ -1099,7 +1099,7 @@ namespace RoF for (int i = 0; i < 5; ++i) { - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->membername[i]); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->member_name[i]); if (gu2->membername[i][0] != '\0') { PacketLength += (22 + strlen(gu2->membername[i]) + 1); @@ -1169,7 +1169,7 @@ namespace RoF return; } - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); ENCODE_LENGTH_EXACT(GroupJoin_Struct); SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct); diff --git a/common/patches/rof2.cpp b/common/patches/rof2.cpp index c5facee0b..3c34cd011 100644 --- a/common/patches/rof2.cpp +++ b/common/patches/rof2.cpp @@ -1101,7 +1101,7 @@ namespace RoF2 { if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername)) { - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); auto outapp = new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct)); @@ -1120,7 +1120,7 @@ namespace RoF2 return; } //if(gjs->action == groupActLeave) - // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); auto outapp = new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct)); @@ -1150,7 +1150,7 @@ namespace RoF2 for (int i = 0; i < 5; ++i) { - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->membername[i]); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->member_name[i]); if (gu2->membername[i][0] != '\0') { PacketLength += (22 + strlen(gu2->membername[i]) + 1); @@ -1220,7 +1220,7 @@ namespace RoF2 return; } - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); ENCODE_LENGTH_EXACT(GroupJoin_Struct); SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct); diff --git a/common/patches/rof2_structs.h b/common/patches/rof2_structs.h index 037574861..05cb4fb57 100644 --- a/common/patches/rof2_structs.h +++ b/common/patches/rof2_structs.h @@ -2590,7 +2590,7 @@ struct GroupUpdate_Struct_Live { // New for Live struct GroupMembers_Struct { // New for Live /*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?) -/*0000*/ //char membername[0]; // Member Name Null Terminated +/*0000*/ //char member_name[0]; // Member Name Null Terminated /*0000*/ uint8 unknown001[3]; // Seen 0 /*0000*/ uint32 memberlevel; // Guess /*0000*/ uint8 unknown002[11]; // Seen 0 @@ -2600,7 +2600,7 @@ struct GroupJoin_Struct_Live { // New for Live /*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct /*0004*/ uint32 action; /*0008*/ uint8 unknown0008[5]; // Seen 0 -/*0013*/ //char membername[0]; // Null Terminated? +/*0013*/ //char member_name[0]; // Null Terminated? /*0000*/ uint8 unknown0013[3]; // Seen 0 /*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct /*0000*/ uint8 unknown0020[11]; // Seen 0 diff --git a/common/patches/rof_structs.h b/common/patches/rof_structs.h index 3c81505d4..ef2f8cc3e 100644 --- a/common/patches/rof_structs.h +++ b/common/patches/rof_structs.h @@ -2566,7 +2566,7 @@ struct GroupUpdate_Struct_Live { // New for Live struct GroupMembers_Struct { // New for Live /*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?) -/*0000*/ //char membername[0]; // Member Name Null Terminated +/*0000*/ //char member_name[0]; // Member Name Null Terminated /*0000*/ uint8 unknown001[3]; // Seen 0 /*0000*/ uint32 memberlevel; // Guess /*0000*/ uint8 unknown002[11]; // Seen 0 @@ -2576,7 +2576,7 @@ struct GroupJoin_Struct_Live { // New for Live /*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct /*0004*/ uint32 action; /*0008*/ uint8 unknown0008[5]; // Seen 0 -/*0013*/ //char membername[0]; // Null Terminated? +/*0013*/ //char member_name[0]; // Null Terminated? /*0000*/ uint8 unknown0013[3]; // Seen 0 /*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct /*0000*/ uint8 unknown0020[11]; // Seen 0 diff --git a/common/patches/sod.cpp b/common/patches/sod.cpp index 98afcec62..4214e2730 100644 --- a/common/patches/sod.cpp +++ b/common/patches/sod.cpp @@ -785,7 +785,7 @@ namespace SoD { if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername)) { - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); auto outapp = new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct)); @@ -804,7 +804,7 @@ namespace SoD return; } //if(gjs->action == groupActLeave) - // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); auto outapp = new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct)); @@ -834,7 +834,7 @@ namespace SoD for (int i = 0; i < 5; ++i) { - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->membername[i]); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->member_name[i]); if (gu2->membername[i][0] != '\0') { PacketLength += (22 + strlen(gu2->membername[i]) + 1); @@ -902,7 +902,7 @@ namespace SoD return; } - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); ENCODE_LENGTH_EXACT(GroupJoin_Struct); SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct); diff --git a/common/patches/sod_structs.h b/common/patches/sod_structs.h index fdfb42706..18c3c63d6 100644 --- a/common/patches/sod_structs.h +++ b/common/patches/sod_structs.h @@ -2085,7 +2085,7 @@ struct GroupUpdate_Struct_SoD { // New for SoD struct GroupMembers_Struct { // New for SoD /*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?) -/*0000*/ //char membername[0]; // Member Name Null Terminated +/*0000*/ //char member_name[0]; // Member Name Null Terminated /*0000*/ uint8 unknown001[3]; // Seen 0 /*0000*/ uint32 memberlevel; // Guess /*0000*/ uint8 unknown002[11]; // Seen 0 @@ -2095,7 +2095,7 @@ struct GroupJoin_Struct_SoD { // New for SoD /*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct /*0004*/ uint32 action; /*0008*/ uint8 unknown0008[5]; // Seen 0 -/*0013*/ //char membername[0]; // Null Terminated? +/*0013*/ //char member_name[0]; // Null Terminated? /*0000*/ uint8 unknown0013[3]; // Seen 0 /*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct /*0000*/ uint8 unknown0020[11]; // Seen 0 diff --git a/common/patches/uf.cpp b/common/patches/uf.cpp index b44524723..b632cb7e3 100644 --- a/common/patches/uf.cpp +++ b/common/patches/uf.cpp @@ -927,7 +927,7 @@ namespace UF { if ((gjs->action == groupActDisband) || !strcmp(gjs->yourname, gjs->membername)) { - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); auto outapp = new EQApplicationPacket(OP_GroupDisbandYou, sizeof(structs::GroupGeneric_Struct)); @@ -947,7 +947,7 @@ namespace UF return; } //if(gjs->action == groupActLeave) - // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + // Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Group Leave, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); auto outapp = new EQApplicationPacket(OP_GroupDisbandOther, sizeof(structs::GroupGeneric_Struct)); @@ -977,7 +977,7 @@ namespace UF for (int i = 0; i < 5; ++i) { - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->membername[i]); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Membername[%i] is %s", i, gu2->member_name[i]); if (gu2->membername[i][0] != '\0') { PacketLength += (22 + strlen(gu2->membername[i]) + 1); @@ -1045,7 +1045,7 @@ namespace UF delete in; return; } - //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, membername = %s", gjs->yourname, gjs->membername); + //Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Generic GroupUpdate, yourname = %s, member_name = %s", gjs->yourname, gjs->member_name); ENCODE_LENGTH_EXACT(GroupJoin_Struct); SETUP_DIRECT_ENCODE(GroupJoin_Struct, structs::GroupJoin_Struct); diff --git a/common/patches/uf_structs.h b/common/patches/uf_structs.h index 86d6034f0..c629b19db 100644 --- a/common/patches/uf_structs.h +++ b/common/patches/uf_structs.h @@ -2128,7 +2128,7 @@ struct GroupUpdate_Struct_Underfoot { // New for Underfoot struct GroupMembers_Struct { // New for Underfoot /*0000*/ uint32 membernumber; // Guess - number of member in the group (0 to 5?) -/*0000*/ //char membername[0]; // Member Name Null Terminated +/*0000*/ //char member_name[0]; // Member Name Null Terminated /*0000*/ uint8 unknown001[3]; // Seen 0 /*0000*/ uint32 memberlevel; // Guess /*0000*/ uint8 unknown002[11]; // Seen 0 @@ -2138,7 +2138,7 @@ struct GroupJoin_Struct_Underfoot { // New for Underfoot /*0000*/ uint32 unknown0000; // Matches unknown0136 from GroupFollow_Struct /*0004*/ uint32 action; /*0008*/ uint8 unknown0008[5]; // Seen 0 -/*0013*/ //char membername[0]; // Null Terminated? +/*0013*/ //char member_name[0]; // Null Terminated? /*0000*/ uint8 unknown0013[3]; // Seen 0 /*0000*/ uint32 unknown0016; // Matches unknown0132 from GroupFollow_Struct /*0000*/ uint8 unknown0020[11]; // Seen 0 diff --git a/ucs/chatchannel.cpp b/ucs/chatchannel.cpp index 4da5aebc8..312b2a311 100644 --- a/ucs/chatchannel.cpp +++ b/ucs/chatchannel.cpp @@ -393,13 +393,15 @@ bool ChatChannel::RemoveClient(Client *c) { void ChatChannel::SendOPList(Client *c) { - if (!c) + if (!c) { return; + } c->GeneralChannelMessage("Channel " + m_name + " op-list: (Owner=" + m_owner + ")"); - for (auto &&m : m_moderators) + for (auto &&m : m_moderators) { c->GeneralChannelMessage(m); + } } void ChatChannel::SendChannelMembers(Client *c) { diff --git a/ucs/clientlist.cpp b/ucs/clientlist.cpp index cb5736725..fd2546941 100644 --- a/ucs/clientlist.cpp +++ b/ucs/clientlist.cpp @@ -571,7 +571,9 @@ void Clientlist::CheckForStaleConnectionsAll() void Clientlist::CheckForStaleConnections(Client *c) { - if (!c) return; + if (!c) { + return; + } std::list::iterator Iterator; diff --git a/ucs/worldserver.cpp b/ucs/worldserver.cpp index 39e076d7b..0e9ff3a02 100644 --- a/ucs/worldserver.cpp +++ b/ucs/worldserver.cpp @@ -120,8 +120,7 @@ void WorldServer::ProcessMessage(uint16 opcode, EQ::Net::Packet &p) if (Message.length() < 2) break; - if (!c) - { + if (!c) { LogInfo("Client not found"); break; } diff --git a/world/cliententry.cpp b/world/cliententry.cpp index f4270c4b5..142887b26 100644 --- a/world/cliententry.cpp +++ b/world/cliententry.cpp @@ -120,9 +120,9 @@ ClientListEntry::~ClientListEntry() Camp(); // updates zoneserver's numplayers client_list.RemoveCLEReferances(this); } - for (auto& elem: tell_queue) { - safe_delete_array(elem) - }; + for (auto& elem : tell_queue) { + safe_delete_array(elem); + } tell_queue.clear(); } @@ -283,9 +283,9 @@ void ClientListEntry::ClearVars(bool iAll) pLFG = 0; gm = 0; pClientVersion = 0; - for (auto& elem: tell_queue) { - safe_delete_array(elem) - }; + for (auto& elem : tell_queue) { + safe_delete_array(elem); + } tell_queue.clear(); } diff --git a/zone/attack.cpp b/zone/attack.cpp index 2f408e612..d7978e6d1 100644 --- a/zone/attack.cpp +++ b/zone/attack.cpp @@ -2746,23 +2746,23 @@ bool NPC::Death(Mob* killer_mob, int64 damage, uint16 spell, EQ::skills::SkillTy switch (r->GetLootType()) { case 0: case 1: - if (r->members[x].member && r->members[x].IsRaidLeader) { + if (r->members[x].member && r->members[x].is_raid_leader) { corpse->AllowPlayerLoot(r->members[x].member, i); i++; } break; case 2: - if (r->members[x].member && r->members[x].IsRaidLeader) { + if (r->members[x].member && r->members[x].is_raid_leader) { corpse->AllowPlayerLoot(r->members[x].member, i); i++; } - else if (r->members[x].member && r->members[x].IsGroupLeader) { + else if (r->members[x].member && r->members[x].is_group_leader) { corpse->AllowPlayerLoot(r->members[x].member, i); i++; } break; case 3: - if (r->members[x].member && r->members[x].IsLooter) { + if (r->members[x].member && r->members[x].is_looter) { corpse->AllowPlayerLoot(r->members[x].member, i); i++; } @@ -4395,8 +4395,7 @@ void Mob::CommonDamage(Mob* attacker, int64 &damage, const uint16 spell_id, cons ); } } - -} //end packet sending +} void Mob::HealDamage(uint64 amount, Mob* caster, uint16 spell_id) { diff --git a/zone/aura.cpp b/zone/aura.cpp index 4fd97dbf6..14ca590f2 100644 --- a/zone/aura.cpp +++ b/zone/aura.cpp @@ -144,8 +144,8 @@ void Aura::ProcessOnAllGroupMembers(Mob *owner) if (c->GetID() == m_owner) { return DistanceSquared(GetPosition(), c->GetPosition()) <= distance; } - else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || - raid->members[idx].GroupNumber == 0xFFFFFFFF) { + else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id || + raid->members[idx].group_number == 0xFFFFFFFF) { return false; } else if (DistanceSquared(GetPosition(), c->GetPosition()) > distance) { @@ -159,8 +159,8 @@ void Aura::ProcessOnAllGroupMembers(Mob *owner) if (m->GetOwner()->GetID() == m_owner) { return DistanceSquared(GetPosition(), m->GetPosition()) <= distance; } - else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || - raid->members[idx].GroupNumber == 0xFFFFFFFF) { + else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id || + raid->members[idx].group_number == 0xFFFFFFFF) { return false; } else if (DistanceSquared(GetPosition(), m->GetPosition()) > distance) { @@ -178,8 +178,8 @@ void Aura::ProcessOnAllGroupMembers(Mob *owner) if (owner->GetID() == m_owner) { return DistanceSquared(GetPosition(), n->GetPosition()) <= distance; } - else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || - raid->members[idx].GroupNumber == 0xFFFFFFFF) { + else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id || + raid->members[idx].group_number == 0xFFFFFFFF) { return false; } else if (DistanceSquared(GetPosition(), n->GetPosition()) > distance) { @@ -389,8 +389,8 @@ void Aura::ProcessOnGroupMembersPets(Mob *owner) if (m->GetOwner()->GetID() == group_member->GetID()) { return DistanceSquared(GetPosition(), m->GetPosition()) <= distance; } - else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || - raid->members[idx].GroupNumber == 0xFFFFFFFF) { + else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id || + raid->members[idx].group_number == 0xFFFFFFFF) { return false; } else if (DistanceSquared(GetPosition(), m->GetPosition()) > distance) { @@ -408,8 +408,8 @@ void Aura::ProcessOnGroupMembersPets(Mob *owner) if (owner->GetID() == group_member->GetID()) { return DistanceSquared(GetPosition(), n->GetPosition()) <= distance; } - else if (idx == 0xFFFFFFFF || raid->members[idx].GroupNumber != group_id || - raid->members[idx].GroupNumber == 0xFFFFFFFF) { + else if (idx == 0xFFFFFFFF || raid->members[idx].group_number != group_id || + raid->members[idx].group_number == 0xFFFFFFFF) { return false; } else if (DistanceSquared(GetPosition(), n->GetPosition()) > distance) { @@ -819,7 +819,7 @@ bool Aura::ShouldISpawnFor(Client *c) return false; } - if (raid->members[idx].GroupNumber != group_id) { // in our raid, but not our group + if (raid->members[idx].group_number != group_id) { // in our raid, but not our group return false; } diff --git a/zone/bot.cpp b/zone/bot.cpp index 0744ce94e..81981d01d 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -27,9 +27,6 @@ #include "../common/repositories/bot_spell_settings_repository.h" #include "../common/data_verification.h" -extern volatile bool is_zone_loaded; -extern bool Critical; - // This constructor is used during the bot create command Bot::Bot(NPCType *npcTypeData, Client* botOwner) : NPC(npcTypeData, nullptr, glm::vec4(), Ground, false), rest_timer(1), ping_timer(1) { GiveNPCTypeData(npcTypeData); @@ -2822,7 +2819,7 @@ void Bot::AcquireBotTarget(Group* bot_group, Raid* raid, Client* leash_owner, fl assist_mob = entity_list.GetMob(bot_group->GetMainAssistName()); } else if (raid) { - assist_mob = raid->GetRaidMainAssistOneByName(GetName()); + assist_mob = raid->GetRaidMainAssistOne(); } if (assist_mob) { @@ -4629,16 +4626,14 @@ bool Bot::Death(Mob *killerMob, int64 damage, uint16 spell_id, EQ::skills::Skill my_owner->CastToClient()->SetBotPulling(false); } -Raid* raid = entity_list.GetRaidByBotName(GetName()); - - if (raid) + if (auto raid = entity_list.GetRaidByBotName(GetName()); raid) { - for (int x = 0; x < MAX_RAID_MEMBERS; x++) + for (auto& m : raid->members) { - if (strcmp(raid->members[x].membername, GetName()) == 0) + if (strcmp(m.member_name, GetName()) == 0) { - raid->members[x].member = nullptr; + m.member = nullptr; } } } @@ -7803,7 +7798,6 @@ bool EntityList::Bot_AICheckCloseBeneficialSpells(Bot* caster, uint8 iChance, fl return false; } - Mob* EntityList::GetMobByBotID(uint32 botID) { Mob* Result = nullptr; if (botID > 0) { @@ -7837,10 +7831,9 @@ Bot* EntityList::GetBotByBotID(uint32 botID) { Bot* EntityList::GetBotByBotName(std::string_view botName) { Bot* Result = nullptr; if (!botName.empty()) { - for (std::list::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); ++botListItr) { - Bot* tempBot = *botListItr; - if (tempBot && std::string(tempBot->GetName()) == botName) { - Result = tempBot; + for (const auto b : bot_list) { + if (b && std::string_view(b->GetName()) == botName) { + Result = b; break; } } @@ -8252,15 +8245,6 @@ bool Bot::GetNeedsHateRedux(Mob *tar) { if (!tar || !tar->IsEngaged() || !tar->HasTargetReflection() || !tar->GetTarget()->IsNPC()) return false; - //if (tar->IsClient()) { - // switch (tar->GetClass()) { - // // TODO: figure out affectable classes.. - // // Might need flag to allow player to determine redux req... - // default: - // return false; - // } - //} - //else if (tar->IsBot()) { if (tar->IsBot()) { switch (tar->GetClass()) { case ROGUE: diff --git a/zone/bot_raid.cpp b/zone/bot_raid.cpp index 22edf3f76..13537e0e8 100644 --- a/zone/bot_raid.cpp +++ b/zone/bot_raid.cpp @@ -23,19 +23,16 @@ #include "quest_parser_collection.h" #include "../common/data_verification.h" -extern volatile bool is_zone_loaded; -extern bool Critical; - std::vector Raid::GetRaidGroupMembers(uint32 gid) { std::vector raid_group_members; raid_group_members.clear(); - for (int i = 0; i < MAX_RAID_MEMBERS; ++i) + for (const auto& m : members) { - if (members[i].member && members[i].GroupNumber == gid) + if (m.member && m.group_number == gid) { - raid_group_members.push_back(members[i]); + raid_group_members.push_back(m); } } return raid_group_members; @@ -48,12 +45,12 @@ std::vector Raid::GetRaidBotMembers(uint32 owner) std::vector raid_members_bots; raid_members_bots.clear(); - for (int i = 0; i < MAX_RAID_MEMBERS; i++) { + for (const auto& m : members) { if ( - members[i].member && - members[i].member->IsBot() + m.member && + m.member->IsBot() ) { - auto b_member = members[i].member->CastToBot(); + auto b_member = m.member->CastToBot(); if (owner && b_member->GetBotOwnerCharacterID() == owner) { raid_members_bots.emplace_back(b_member); } else if (!owner) { @@ -72,13 +69,13 @@ std::vector Raid::GetRaidGroupBotMembers(uint32 gid) std::vector raid_members_bots; raid_members_bots.clear(); - for (int i = 0; i < MAX_RAID_MEMBERS; i++) { + for (const auto& m : members) { if ( - members[i].member && - members[i].member->IsBot() && - members[i].GroupNumber == gid + m.member && + m.member->IsBot() && + m.group_number == gid ) { - auto b_member = members[i].member->CastToBot(); + auto b_member = m.member->CastToBot(); raid_members_bots.emplace_back(b_member); raid_members_bots.emplace_back(b_member); } @@ -92,34 +89,29 @@ void Raid::HandleBotGroupDisband(uint32 owner, uint32 gid) auto raid_members_bots = gid != RAID_GROUPLESS ? GetRaidGroupBotMembers(gid) : GetRaidBotMembers(owner); // If any of the bots are a group leader then re-create the botgroup on disband, dropping any clients - for (auto& bot_iter: raid_members_bots) { + for (const auto& b: raid_members_bots) { // Remove the entire BOT group in this case - if ( - bot_iter && - gid != RAID_GROUPLESS && - IsRaidMember(bot_iter->GetName()) && - IsGroupLeader(bot_iter->GetName()) - ) { - auto r_group_members = GetRaidGroupMembers(GetGroup(bot_iter->GetName())); - auto group_inst = new Group(bot_iter); - entity_list.AddGroup(group_inst); - database.SetGroupID(bot_iter->GetCleanName(), group_inst->GetID(), bot_iter->GetBotID()); - database.SetGroupLeaderName(group_inst->GetID(), bot_iter->GetName()); + if (b && gid != RAID_GROUPLESS && IsRaidMember(b->GetName()) && IsGroupLeader(b->GetName())) { + auto r_group_members = GetRaidGroupMembers(GetGroup(b->GetName())); + auto g = new Group(b); + entity_list.AddGroup(g); + database.SetGroupID(b->GetCleanName(), g->GetID(), b->GetBotID()); + database.SetGroupLeaderName(g->GetID(), b->GetName()); - for (auto member_iter: r_group_members) { - if (member_iter.member->IsBot()) { - auto b_member = member_iter.member->CastToBot(); - if (strcmp(b_member->GetName(), bot_iter->GetName()) == 0) { - bot_iter->SetFollowID(owner); + for (auto m: r_group_members) { + if (m.member->IsBot()) { + auto b_member = m.member->CastToBot(); + if (strcmp(b_member->GetName(), b->GetName()) == 0) { + b->SetFollowID(owner); } else { - Bot::AddBotToGroup(b_member, group_inst); + Bot::AddBotToGroup(b_member, g); } Bot::RemoveBotFromRaid(b_member); } } } else { - Bot::RemoveBotFromRaid(bot_iter); + Bot::RemoveBotFromRaid(b); } } } @@ -128,18 +120,15 @@ uint8 Bot::GetNumberNeedingHealedInRaidGroup(uint8& need_healed, uint8 hpr, bool if (raid) { uint32 r_group = raid->GetGroup(GetName()); - auto raid_group_members = raid->GetRaidGroupMembers(r_group); - for (auto& m: raid_group_members) { + for (auto& m: raid->GetRaidGroupMembers(r_group)) { if (m.member && !m.member->qglobal) { if (m.member->GetHPRatio() <= hpr) { need_healed++; } - if (includePets) { - if (m.member->GetPet() && m.member->GetPet()->GetHPRatio() <= hpr) { - need_healed++; - } + if (includePets && m.member->GetPet() && m.member->GetPet()->GetHPRatio() <= hpr) { + need_healed++; } } } @@ -246,22 +235,18 @@ void Bot::ProcessBotGroupAdd(Group* group, Raid* raid, Client* client, bool new_ uint32 raid_free_group_id = raid->GetFreeGroup(); if (group) { - for (int x = 0; x < MAX_GROUP_MEMBERS; x++) { - if (group->members[x]) { - Client* c = nullptr; - Bot* b = nullptr; - - if (group->members[x] && group->members[x]->IsBot()) { - b = group->members[x]->CastToBot(); - raid->AddBot(b, raid_free_group_id, false, x == 0, false); - } else if (group->members[x] && group->members[x]->IsClient()) { - c = group->members[x]->CastToClient(); + for (const auto& m : group->members) { + if (m) { + if (m && m->IsBot()) { + raid->AddBot(m->CastToBot(), raid_free_group_id, false, !raid->GroupCount(raid_free_group_id), false); + } else if (m && m->IsClient()) { + auto c = m->CastToClient(); raid->SendRaidCreate(c); raid->AddMember( c, raid_free_group_id, new_raid, - x == 0, + !raid->GroupCount(raid_free_group_id), false ); raid->SendMakeLeaderPacketTo(raid->leadername, c); diff --git a/zone/client.cpp b/zone/client.cpp index 7815e22c4..36d1334b5 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -4163,7 +4163,7 @@ bool Client::GroupFollow(Client* inviter) { { //this assumes the inviter is in the zone if (raid->members[x].member == inviter){ - groupToUse = raid->members[x].GroupNumber; + groupToUse = raid->members[x].group_number; break; } } @@ -8882,7 +8882,7 @@ void Client::ProcessAggroMeter() if (gid < 12) { int at_id = AggroMeter::AT_Group1; for (int i = 0; i < MAX_RAID_MEMBERS; ++i) { - if (raid->members[i].member && raid->members[i].member != this && raid->members[i].GroupNumber == gid) { + if (raid->members[i].member && raid->members[i].member != this && raid->members[i].group_number == gid) { if (m_aggrometer.set_pct(static_cast(at_id), cur_tar->GetHateRatio(cur_tar->GetTarget(), raid->members[i].member))) add_entry(static_cast(at_id)); at_id++; diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 21140e337..cc48a9844 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -612,15 +612,15 @@ void Client::CompleteConnect() database.botdb.LoadBotsList(this->CharacterID(), bots_list); std::vector r_members = raid->GetMembers(); for (const RaidMember& iter : r_members) { - if (iter.membername) { + if (iter.member_name) { for (const BotsAvailableList& b_iter : bots_list) { - if (strcmp(iter.membername, b_iter.Name) == 0) + if (strcmp(iter.member_name, b_iter.Name) == 0) { char buffer[71] = "^spawn "; - strcat(buffer, iter.membername); + strcat(buffer, iter.member_name); bot_command_real_dispatch(this, buffer); - Bot* b = entity_list.GetBotByBotName(iter.membername); + Bot* b = entity_list.GetBotByBotName(iter.member_name); if (b) { b->SetRaidGrouped(true); @@ -7027,15 +7027,15 @@ void Client::Handle_OP_GroupDisband(const EQApplicationPacket *app) } //we have a raid.. see if we're in a raid group uint32 grp = raid->GetGroup(memberToDisband->GetName()); - bool wasGrpLdr = raid->members[raid->GetPlayerIndex(memberToDisband->GetName())].IsGroupLeader; + bool wasGrpLdr = raid->members[raid->GetPlayerIndex(memberToDisband->GetName())].is_group_leader; if (grp < 12) { if (wasGrpLdr) { raid->SetGroupLeader(memberToDisband->GetName(), false); for (int x = 0; x < MAX_RAID_MEMBERS; x++) { - if (raid->members[x].GroupNumber == grp) { - if (strlen(raid->members[x].membername) > 0 && - strcmp(raid->members[x].membername, memberToDisband->GetName()) != 0) { - raid->SetGroupLeader(raid->members[x].membername); + if (raid->members[x].group_number == grp) { + if (strlen(raid->members[x].member_name) > 0 && + strcmp(raid->members[x].member_name, memberToDisband->GetName()) != 0) { + raid->SetGroupLeader(raid->members[x].member_name); break; } } @@ -8423,8 +8423,7 @@ void Client::Handle_OP_GuildStatus(const EQApplicationPacket *app) Client *c = entity_list.GetClientByName(gss->Name); - if (!c) - { + if (!c) { MessageString(Chat::LightGray, TARGET_PLAYER_FOR_GUILD_STATUS); return; } @@ -12217,12 +12216,12 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app) } if (group < 12) { uint32 i = raid->GetPlayerIndex(raid_command_packet->leader_name); - if (raid->members[i].IsGroupLeader) { //assign group leader to someone else + if (raid->members[i].is_group_leader) { //assign group leader to someone else for (int x = 0; x < MAX_RAID_MEMBERS; x++) { - if (strlen(raid->members[x].membername) > 0 && i != x) { - if (raid->members[x].GroupNumber == group) { + if (strlen(raid->members[x].member_name) > 0 && i != x) { + if (raid->members[x].group_number == group) { raid->SetGroupLeader(raid_command_packet->leader_name, false); - raid->SetGroupLeader(raid->members[x].membername); + raid->SetGroupLeader(raid->members[x].member_name); raid->UpdateGroupAAs(group); break; } @@ -12268,24 +12267,24 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app) if (raid_command_packet->parameter == old_group) //don't rejoin grp if we order to join same group. break; - if (raid->members[raid->GetPlayerIndex(raid_command_packet->leader_name)].IsGroupLeader) { + if (raid->members[raid->GetPlayerIndex(raid_command_packet->leader_name)].is_group_leader) { raid->SetGroupLeader(raid_command_packet->leader_name, false); /* We were the leader of our old group */ if (old_group < 12) { /* Assign new group leader if we can */ for (int x = 0; x < MAX_RAID_MEMBERS; x++) { - if (raid->members[x].GroupNumber == old_group) { - if (strcmp(raid_command_packet->leader_name, raid->members[x].membername) != 0 && strlen(raid_command_packet->leader_name) > 0) { - raid->SetGroupLeader(raid->members[x].membername); + if (raid->members[x].group_number == old_group) { + if (strcmp(raid_command_packet->leader_name, raid->members[x].member_name) != 0 && strlen(raid_command_packet->leader_name) > 0) { + raid->SetGroupLeader(raid->members[x].member_name); raid->UpdateGroupAAs(old_group); - Client* client_to_update = entity_list.GetClientByName(raid->members[x].membername); + Client* client_to_update = entity_list.GetClientByName(raid->members[x].member_name); if (client_to_update) { - raid->SendRaidRemove(raid->members[x].membername, client_to_update); + raid->SendRaidRemove(raid->members[x].member_name, client_to_update); raid->SendRaidCreate(client_to_update); raid->SendMakeLeaderPacketTo(raid->leadername, client_to_update); - raid->SendRaidAdd(raid->members[x].membername, client_to_update); + raid->SendRaidAdd(raid->members[x].member_name, client_to_update); raid->SendBulkRaid(client_to_update); if (raid->IsLocked()) { raid->SendRaidLockTo(client_to_update); @@ -12298,7 +12297,7 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app) raid_command_packet->rid = raid->GetID(); raid_command_packet->zoneid = zone->GetZoneID(); raid_command_packet->instance_id = zone->GetInstanceID(); - strn0cpy(raid_command_packet->playername, raid->members[x].membername, 64); + strn0cpy(raid_command_packet->playername, raid->members[x].member_name, 64); worldserver.SendPacket(pack); @@ -12343,20 +12342,20 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app) else { Client* c = entity_list.GetClientByName(raid_command_packet->leader_name); uint32 oldgrp = raid->GetGroup(raid_command_packet->leader_name); - if (raid->members[raid->GetPlayerIndex(raid_command_packet->leader_name)].IsGroupLeader) { + if (raid->members[raid->GetPlayerIndex(raid_command_packet->leader_name)].is_group_leader) { raid->SetGroupLeader(raid_command_packet->leader_name, false); for (int x = 0; x < MAX_RAID_MEMBERS; x++) { - if (raid->members[x].GroupNumber == oldgrp && strlen(raid->members[x].membername) > 0 && strcmp(raid->members[x].membername, raid_command_packet->leader_name) != 0) { + if (raid->members[x].group_number == oldgrp && strlen(raid->members[x].member_name) > 0 && strcmp(raid->members[x].member_name, raid_command_packet->leader_name) != 0) { - raid->SetGroupLeader(raid->members[x].membername); + raid->SetGroupLeader(raid->members[x].member_name); raid->UpdateGroupAAs(oldgrp); - Client* client_leaving_group = entity_list.GetClientByName(raid->members[x].membername); + Client* client_leaving_group = entity_list.GetClientByName(raid->members[x].member_name); if (client_leaving_group) { - raid->SendRaidRemove(raid->members[x].membername, client_leaving_group); + raid->SendRaidRemove(raid->members[x].member_name, client_leaving_group); raid->SendRaidCreate(client_leaving_group); raid->SendMakeLeaderPacketTo(raid->leadername, client_leaving_group); - raid->SendRaidAdd(raid->members[x].membername, client_leaving_group); + raid->SendRaidAdd(raid->members[x].member_name, client_leaving_group); raid->SendBulkRaid(client_leaving_group); if (raid->IsLocked()) { raid->SendRaidLockTo(client_leaving_group); @@ -12367,7 +12366,7 @@ void Client::Handle_OP_RaidCommand(const EQApplicationPacket* app) ServerRaidGeneralAction_Struct* raid_command = (ServerRaidGeneralAction_Struct*)pack->pBuffer; raid_command->rid = raid->GetID(); - strn0cpy(raid_command->playername, raid->members[x].membername, 64); + strn0cpy(raid_command->playername, raid->members[x].member_name, 64); raid_command->zoneid = zone->GetZoneID(); raid_command->instance_id = zone->GetInstanceID(); diff --git a/zone/client_process.cpp b/zone/client_process.cpp index 01c92f75e..087e05fe5 100644 --- a/zone/client_process.cpp +++ b/zone/client_process.cpp @@ -600,11 +600,13 @@ bool Client::Process() { for (auto & close_mob : close_mobs) { Mob *mob = close_mob.second; - if (!mob) + if (!mob) { continue; + } - if (mob->IsClient()) + if (mob->IsClient()) { continue; + } if (mob->CheckWillAggro(this) && !mob->CheckAggro(this)) { mob->AddToHateList(this, 25); diff --git a/zone/corpse.cpp b/zone/corpse.cpp index dc026c94d..269beb428 100644 --- a/zone/corpse.cpp +++ b/zone/corpse.cpp @@ -1062,30 +1062,32 @@ void Corpse::AllowPlayerLoot(Mob *them, uint8 slot) { } void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* app) { - if (!client) + if (!client) { return; + } // Added 12/08. Started compressing loot struct on live. - if(player_corpse_depop) { + if (player_corpse_depop) { SendLootReqErrorPacket(client, LootResponse::SomeoneElse); return; } - if(IsPlayerCorpse() && !corpse_db_id) { // really should try to resave in this case + if (IsPlayerCorpse() && !corpse_db_id) { // really should try to resave in this case // SendLootReqErrorPacket(client, 0); client->Message(Chat::Red, "Warning: Corpse's dbid = 0! Corpse will not survive zone shutdown!"); std::cout << "Error: PlayerCorpse::MakeLootRequestPackets: dbid = 0!" << std::endl; // return; } - if(is_locked && client->Admin() < AccountStatus::GMAdmin) { + if (is_locked && client->Admin() < AccountStatus::GMAdmin) { SendLootReqErrorPacket(client, LootResponse::SomeoneElse); client->Message(Chat::Red, "Error: Corpse locked by GM."); return; } - if(!being_looted_by || (being_looted_by != 0xFFFFFFFF && !entity_list.GetID(being_looted_by))) + if (!being_looted_by || (being_looted_by != 0xFFFFFFFF && !entity_list.GetID(being_looted_by))) { being_looted_by = 0xFFFFFFFF; + } if (DistanceSquaredNoZ(client->GetPosition(), m_Position) > 625) { SendLootReqErrorPacket(client, LootResponse::TooFar); @@ -1102,23 +1104,29 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a // loot_request_type is scoped to class Corpse and reset on a per-loot session basis if (client->GetGM()) { - if (client->Admin() >= AccountStatus::GMAdmin) + if (client->Admin() >= AccountStatus::GMAdmin) { loot_request_type = LootRequestType::GMAllowed; - else + + } else { loot_request_type = LootRequestType::GMPeek; + } } else { if (IsPlayerCorpse()) { if (char_id == client->CharacterID()) { loot_request_type = LootRequestType::Self; } + else if (CanPlayerLoot(client->CharacterID())) { - if (GetPlayerKillItem() == -1) + if (GetPlayerKillItem() == -1) { loot_request_type = LootRequestType::AllowedPVPAll; - else if (GetPlayerKillItem() == 1) + + } else if (GetPlayerKillItem() == 1) { loot_request_type = LootRequestType::AllowedPVPSingle; - else if (GetPlayerKillItem() > 1) + + } else if (GetPlayerKillItem() > 1) { loot_request_type = LootRequestType::AllowedPVPDefined; + } } } else if ((IsNPCCorpse() || become_npc) && CanPlayerLoot(client->CharacterID())) { @@ -1140,8 +1148,9 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a // process coin bool loot_coin = false; std::string tmp; - if (database.GetVariable("LootCoin", tmp)) + if (database.GetVariable("LootCoin", tmp)) { loot_coin = (tmp[0] == 1 && tmp[1] == '\0'); + } if (loot_request_type == LootRequestType::GMPeek || loot_request_type == LootRequestType::GMAllowed) { if ( @@ -1314,8 +1323,9 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a void Corpse::LootItem(Client *client, const EQApplicationPacket *app) { - if (!client) + if (!client) { return; + } auto lootitem = (LootingItem_Struct *)app->pBuffer; @@ -1325,8 +1335,10 @@ void Corpse::LootItem(Client *client, const EQApplicationPacket *app) client->QueuePacket(app); SendEndLootErrorPacket(client); // unlock corpse for others - if (IsBeingLootedBy(client)) + + if (IsBeingLootedBy(client)) { ResetLooter(); + } return; } @@ -1334,8 +1346,9 @@ void Corpse::LootItem(Client *client, const EQApplicationPacket *app) client->QueuePacket(app); SendEndLootErrorPacket(client); // unlock corpse for others - if (IsBeingLootedBy(client)) + if (IsBeingLootedBy(client)) { ResetLooter(); + } return; } @@ -1345,8 +1358,9 @@ void Corpse::LootItem(Client *client, const EQApplicationPacket *app) client->QueuePacket(app); SendEndLootErrorPacket(client); /* Unlock corpse for others */ - if (IsBeingLootedBy(client)) + if (IsBeingLootedBy(client)) { ResetLooter(); + } return; } diff --git a/zone/entity.cpp b/zone/entity.cpp index a447ec650..49c21a1da 100644 --- a/zone/entity.cpp +++ b/zone/entity.cpp @@ -1555,16 +1555,18 @@ void EntityList::RemoveFromAutoXTargets(Mob *mob) void EntityList::RefreshAutoXTargets(Client *c) { - if (!c) + if (!c) { return; + } auto it = mob_list.begin(); while (it != mob_list.end()) { Mob *m = it->second; ++it; - if (!m || m->GetHP() <= 0) + if (!m || m->GetHP() <= 0) { continue; + } if ((m->CheckAggro(c) || m->IsOnFeignMemory(c)) && !c->IsXTarget(m)) { c->AddAutoXTarget(m, false); // we only call this before a bulk, so lets not send right away @@ -1576,19 +1578,22 @@ void EntityList::RefreshAutoXTargets(Client *c) void EntityList::RefreshClientXTargets(Client *c) { - if (!c) + if (!c) { return; + } auto it = client_list.begin(); while (it != client_list.end()) { Client *c2 = it->second; ++it; - if (!c2) + if (!c2) { continue; + } - if (c2->IsClientXTarget(c)) + if (c2->IsClientXTarget(c)) { c2->UpdateClientXTarget(c); + } } } @@ -2222,7 +2227,7 @@ Raid* EntityList::GetRaidByBotName(const char* name) std::list rm; auto GetMembersWithNames = [&rm](Raid const* r) -> std::list { for (const auto& m : r->members) { - if (strlen(m.membername) > 0) + if (strlen(m.member_name) > 0) rm.push_back(m); } return rm; @@ -2230,7 +2235,7 @@ Raid* EntityList::GetRaidByBotName(const char* name) for (const auto& r : raid_list) { for (const auto& m : GetMembersWithNames(r)) { - if (strcmp(m.membername, name) == 0) { + if (strcmp(m.member_name, name) == 0) { return r; } } @@ -2243,7 +2248,7 @@ Raid* EntityList::GetRaidByBot(const Bot* bot) std::list rm; auto GetMembersWhoAreBots = [&rm](Raid* r) -> std::list { for (auto const& m : r->members) { - if (m.IsBot) { + if (m.is_bot) { rm.push_back(m); } } @@ -4890,8 +4895,9 @@ void EntityList::SendZoneAppearance(Client *c) void EntityList::SendNimbusEffects(Client *c) { - if (!c) + if (!c) { return; + } auto it = mob_list.begin(); while (it != mob_list.end()) { @@ -4918,8 +4924,9 @@ void EntityList::SendNimbusEffects(Client *c) void EntityList::SendUntargetable(Client *c) { - if (!c) + if (!c) { return; + } auto it = mob_list.begin(); while (it != mob_list.end()) { @@ -4930,8 +4937,9 @@ void EntityList::SendUntargetable(Client *c) ++it; continue; } - if (!cur->IsTargetable()) + if (!cur->IsTargetable()) { cur->SendTargetable(false, c); + } } ++it; } @@ -4939,8 +4947,9 @@ void EntityList::SendUntargetable(Client *c) void EntityList::SendAppearanceEffects(Client *c) { - if (!c) + if (!c) { return; + } auto it = mob_list.begin(); while (it != mob_list.end()) { @@ -5429,8 +5438,9 @@ void EntityList::DeleteQGlobal(std::string name, uint32 npcID, uint32 charID, ui void EntityList::SendFindableNPCList(Client *c) { - if (!c) + if (!c) { return; + } auto outapp = new EQApplicationPacket(OP_SendFindableNPCs, sizeof(FindableNPC_Struct)); @@ -5496,8 +5506,9 @@ void EntityList::UpdateFindableNPCState(NPC *n, bool Remove) void EntityList::HideCorpses(Client *c, uint8 CurrentMode, uint8 NewMode) { - if (!c) + if (!c) { return; + } if (NewMode == HideCorpseNone) { SendZoneCorpses(c); @@ -5509,8 +5520,9 @@ void EntityList::HideCorpses(Client *c, uint8 CurrentMode, uint8 NewMode) if (NewMode == HideCorpseAllButGroup) { g = c->GetGroup(); - if (!g) + if (!g) { NewMode = HideCorpseAll; + } } auto it = corpse_list.begin(); diff --git a/zone/exp.cpp b/zone/exp.cpp index 2907667d2..92890ed1d 100644 --- a/zone/exp.cpp +++ b/zone/exp.cpp @@ -1200,7 +1200,7 @@ void Raid::SplitExp(const uint64 exp, Mob* other) { } for (const auto& m : members) { - if (m.member && !m.IsBot) { + if (m.member && !m.is_bot) { const int32 diff = m.member->GetLevel() - highest_level; int32 max_diff = -(m.member->GetLevel() * 15 / 10 - m.member->GetLevel()); diff --git a/zone/expedition.cpp b/zone/expedition.cpp index 4233882f9..f92284d8f 100644 --- a/zone/expedition.cpp +++ b/zone/expedition.cpp @@ -427,8 +427,7 @@ void Expedition::RemoveLockout(const std::string& event_name) void Expedition::SendClientExpeditionInvite( Client* client, const std::string& inviter_name, const std::string& swap_remove_name) { - if (!client) - { + if (!client) { return; } diff --git a/zone/expedition_request.cpp b/zone/expedition_request.cpp index dfca1d581..85e27e725 100644 --- a/zone/expedition_request.cpp +++ b/zone/expedition_request.cpp @@ -96,12 +96,12 @@ bool ExpeditionRequest::CanRaidRequest(Raid* raid) // stable_sort not needed, order within a raid group may not be what is displayed std::sort(raid_members.begin(), raid_members.end(), [&](const RaidMember& lhs, const RaidMember& rhs) { - if (m_leader_name == lhs.membername) { // leader always added first + if (m_leader_name == lhs.member_name) { // leader always added first return true; - } else if (m_leader_name == rhs.membername) { + } else if (m_leader_name == rhs.member_name) { return false; } - return lhs.GroupNumber < rhs.GroupNumber; + return lhs.group_number < rhs.group_number; }); m_not_all_added_msg = fmt::format(CREATE_NOT_ALL_ADDED, "raid", SystemName, @@ -112,7 +112,7 @@ bool ExpeditionRequest::CanRaidRequest(Raid* raid) std::vector member_names; for (int i = 0; i < raid_members.size(); ++i) { - member_names.emplace_back(raid_members[i].membername); + member_names.emplace_back(raid_members[i].member_name); } return CanMembersJoin(member_names); diff --git a/zone/groups.cpp b/zone/groups.cpp index 7bb51bfb2..d803904d6 100644 --- a/zone/groups.cpp +++ b/zone/groups.cpp @@ -35,7 +35,7 @@ extern WorldServer worldserver; note about how groups work: A group contains 2 list, a list of pointers to members and a list of member names. All members of a group should have their -name in the membername array, whether they are in the zone or not. +name in the member_name array, whether they are in the zone or not. Only members in this zone will have non-null pointers in the members array. */ diff --git a/zone/lua_raid.cpp b/zone/lua_raid.cpp index 716d7ce12..6cb6cdf7d 100644 --- a/zone/lua_raid.cpp +++ b/zone/lua_raid.cpp @@ -148,12 +148,12 @@ int Lua_Raid::GetGroupNumber(int member_index) { if ( !EQ::ValueWithin(member_index, 0, 71) || - self->members[member_index].GroupNumber == RAID_GROUPLESS + self->members[member_index].group_number == RAID_GROUPLESS ) { return -1; } - return self->members[member_index].GroupNumber; + return self->members[member_index].group_number; } bool Lua_Raid::DoesAnyMemberHaveExpeditionLockout(std::string expedition_name, std::string event_name) diff --git a/zone/mob_ai.cpp b/zone/mob_ai.cpp index 685c65b26..325ab909c 100644 --- a/zone/mob_ai.cpp +++ b/zone/mob_ai.cpp @@ -2068,16 +2068,19 @@ bool Mob::Flurry(ExtraAttackOptions *opts) bool Mob::AddRampage(Mob *mob) { - if (!mob) + if (!mob) { return false; + } - if (!GetSpecialAbility(SPECATK_RAMPAGE)) + if (!GetSpecialAbility(SPECATK_RAMPAGE)) { return false; + } for (int i = 0; i < RampageArray.size(); i++) { // if Entity ID is already on the list don't add it again - if (mob->GetID() == RampageArray[i]) + if (mob->GetID() == RampageArray[i]) { return false; + } } RampageArray.push_back(mob->GetID()); return true; diff --git a/zone/perl_raids.cpp b/zone/perl_raids.cpp index 399e6636c..ad088698e 100644 --- a/zone/perl_raids.cpp +++ b/zone/perl_raids.cpp @@ -150,12 +150,12 @@ bool Perl_Raid_DoesAnyMemberHaveExpeditionLockout(Raid* self, std::string expedi int Perl_Raid_GetGroupNumber(Raid* self, int member_index) { if ( !EQ::ValueWithin(member_index, 0, 71) || - self->members[member_index].GroupNumber == RAID_GROUPLESS + self->members[member_index].group_number == RAID_GROUPLESS ) { return -1; } - return self->members[member_index].GroupNumber; + return self->members[member_index].group_number; } void perl_register_raid() diff --git a/zone/raids.cpp b/zone/raids.cpp index 91f44d962..c64d0ea42 100644 --- a/zone/raids.cpp +++ b/zone/raids.cpp @@ -39,9 +39,9 @@ Raid::Raid(uint32 raidID) memset(members ,0, (sizeof(RaidMember)*MAX_RAID_MEMBERS)); memset(&raid_aa, 0, sizeof(RaidLeadershipAA_Struct)); memset(group_aa, 0, sizeof(GroupLeadershipAA_Struct) * MAX_RAID_GROUPS); - for (int i = 0; i < MAX_RAID_GROUPS; i++) { - group_mentor[i].mentor_percent = 0; - group_mentor[i].mentoree = nullptr; + for (auto& gm : group_mentor) { + gm.mentor_percent = 0; + gm.mentoree = nullptr; } leader = nullptr; memset(leadername, 0, 64); @@ -57,9 +57,9 @@ Raid::Raid(Client* nLeader) memset(members ,0, (sizeof(RaidMember)*MAX_RAID_MEMBERS)); memset(&raid_aa, 0, sizeof(RaidLeadershipAA_Struct)); memset(group_aa, 0, sizeof(GroupLeadershipAA_Struct) * MAX_RAID_GROUPS); - for (int i = 0; i < MAX_RAID_GROUPS; i++) { - group_mentor[i].mentor_percent = 0; - group_mentor[i].mentoree = nullptr; + for (auto& gm : group_mentor) { + gm.mentor_percent = 0; + gm.mentoree = nullptr; } leader = nLeader; memset(leadername, 0, 64); @@ -76,25 +76,29 @@ Raid::~Raid() bool Raid::Process() { - if(forceDisband) + if (forceDisband) { return false; - if(disbandCheck) - { + } + + if (disbandCheck) { int count = 0; - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(strlen(members[x].membername) == 0) + for (const auto& m : members) { + if (strlen(m.member_name) == 0) { continue; - else + } + else { count++; + } } - if(count == 0) + if (count == 0) { return false; + } } return true; } -void Raid::AddMember(Client *c, uint32 group, bool rleader, bool groupleader, bool looter){ +void Raid::AddMember(Client *c, uint32 group, bool rleader, bool groupleader, bool looter) +{ if (!c) { return; } @@ -115,17 +119,18 @@ void Raid::AddMember(Client *c, uint32 group, bool rleader, bool groupleader, bo ); auto results = database.QueryDatabase(query); - if(!results.Success()) { + if (!results.Success()) { LogError("Error inserting into raid members: [{}]", results.ErrorMessage().c_str()); } LearnMembers(); VerifyRaid(); - if (rleader) { + if (rleader && group != RAID_GROUPLESS) { database.SetRaidGroupLeaderInfo(group, GetID()); UpdateRaidAAs(); - } else if (rleader) { + } + else if (rleader) { database.SetRaidGroupLeaderInfo(RAID_GROUPLESS, GetID()); UpdateRaidAAs(); } @@ -137,7 +142,8 @@ void Raid::AddMember(Client *c, uint32 group, bool rleader, bool groupleader, bo if (group < MAX_RAID_GROUPS) { GroupUpdate(group); - } else { // get raid AAs, GroupUpdate will handles it otherwise + } + else { // get raid AAs, GroupUpdate will handles it otherwise SendGroupLeadershipAA(c, RAID_GROUPLESS); } @@ -151,7 +157,8 @@ void Raid::AddMember(Client *c, uint32 group, bool rleader, bool groupleader, bo GetXTargetAutoMgr()->merge(*c->GetXTargetAutoMgr()); c->GetXTargetAutoMgr()->clear(); c->SetXTargetAutoMgr(GetXTargetAutoMgr()); - } else { + } + else { if (!c->GetXTargetAutoMgr()->empty()) { GetXTargetAutoMgr()->merge(*c->GetXTargetAutoMgr()); c->GetXTargetAutoMgr()->clear(); @@ -160,13 +167,13 @@ void Raid::AddMember(Client *c, uint32 group, bool rleader, bool groupleader, bo c->SetXTargetAutoMgr(GetXTargetAutoMgr()); - if (!c->GetXTargetAutoMgr()->empty()) + if (!c->GetXTargetAutoMgr()->empty()) { c->SetDirtyAutoHaters(); + } } } - auto* raid_update = c->GetRaid(); - if (raid_update) { + if (auto* raid_update = c->GetRaid()) { raid_update->SendHPManaEndPacketsTo(c); raid_update->SendHPManaEndPacketsFrom(c); } @@ -181,9 +188,8 @@ void Raid::AddMember(Client *c, uint32 group, bool rleader, bool groupleader, bo safe_delete(pack); } - - -void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool looter) { +void Raid::AddBot(Bot* b, uint32 group, bool raid_leader, bool group_leader, bool looter) +{ if (!b) { return; } @@ -198,8 +204,8 @@ void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool loo b->GetClass(), b->GetLevel(), b->GetName(), - groupleader, - rleader, + group_leader, + raid_leader, looter ); @@ -231,23 +237,23 @@ void Raid::AddBot(Bot* b, uint32 group, bool rleader, bool groupleader, bool loo } -void Raid::RemoveMember(const char *characterName) +void Raid::RemoveMember(const char *character_name) { - std::string query = StringFormat("DELETE FROM raid_members where name='%s'", characterName); + std::string query = StringFormat("DELETE FROM raid_members where name='%s'", character_name); auto results = database.QueryDatabase(query); - auto* b = entity_list.GetBotByBotName(characterName); - auto* c = entity_list.GetClientByName(characterName); + auto* b = entity_list.GetBotByBotName(character_name); + auto* c = entity_list.GetClientByName(character_name); if (RuleB(Bots, Enabled) && b) { - b = entity_list.GetBotByBotName(characterName); + b = entity_list.GetBotByBotName(character_name); b->SetFollowID(b->GetOwner()->CastToClient()->GetID()); b->SetTarget(nullptr); b->SetRaidGrouped(false); } disbandCheck = true; - SendRaidRemoveAll(characterName); + SendRaidRemoveAll(character_name); SendRaidDisband(c); LearnMembers(); VerifyRaid(); @@ -263,7 +269,7 @@ void Raid::RemoveMember(const char *characterName) rga->rid = GetID(); rga->instance_id = zone->GetInstanceID(); rga->zoneid = zone->GetZoneID(); - strn0cpy(rga->playername, characterName, sizeof(rga->playername)); + strn0cpy(rga->playername, character_name, sizeof(rga->playername)); worldserver.SendPacket(pack); safe_delete(pack); } @@ -340,12 +346,15 @@ void Raid::SetGroupLeader(const char *who, bool glFlag) Client *Raid::GetGroupLeader(uint32 group_id) { - if (group_id == RAID_GROUPLESS) + if (group_id == RAID_GROUPLESS) { return nullptr; + } - for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++) - if (members[i].member && members[i].IsGroupLeader && members[i].GroupNumber == group_id) - return members[i].member; + for (const auto& m : members) { + if (m.member && m.is_group_leader && m.group_number == group_id) { + return m.member; + } + } return nullptr; } @@ -354,28 +363,32 @@ void Raid::SetRaidLeader(const char *wasLead, const char *name) { std::string query = StringFormat("UPDATE raid_members SET israidleader = 0 WHERE name = '%s'", wasLead); auto results = database.QueryDatabase(query); - if (!results.Success()) + if (!results.Success()) { LogError("Set Raid Leader error: [{}]\n", results.ErrorMessage().c_str()); + } query = StringFormat("UPDATE raid_members SET israidleader = 1 WHERE name = '%s'", name); results = database.QueryDatabase(query); - if (!results.Success()) + if (!results.Success()) { LogError("Set Raid Leader error: [{}]\n", results.ErrorMessage().c_str()); + } strn0cpy(leadername, name, 64); Client *c = entity_list.GetClientByName(name); - if(c) + if (c) { SetLeader(c); - else - SetLeader(nullptr); //sanity check, should never get hit but we want to prefer to NOT crash if we do VerifyRaid and leader never gets set there (raid without a leader?) + } + else { + SetLeader(nullptr); + } //sanity check, should never get hit but we want to prefer to NOT crash if we do VerifyRaid and leader never gets set there (raid without a leader?) LearnMembers(); VerifyRaid(); SendMakeLeaderPacket(name); auto pack = new ServerPacket(ServerOP_RaidLeader, sizeof(ServerRaidGeneralAction_Struct)); - ServerRaidGeneralAction_Struct *rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; + auto rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; rga->rid = GetID(); strn0cpy(rga->playername, name, 64); rga->zoneid = zone->GetZoneID(); @@ -394,8 +407,9 @@ void Raid::SaveGroupLeaderAA(uint32 gid) query += StringFormat("' WHERE gid = %lu AND rid = %lu LIMIT 1", gid, GetID()); safe_delete_array(queryBuffer); auto results = database.QueryDatabase(query); - if (!results.Success()) + if (!results.Success()) { LogError("Unable to store LeadershipAA: [{}]\n", results.ErrorMessage().c_str()); + } } void Raid::SaveRaidLeaderAA() @@ -408,22 +422,25 @@ void Raid::SaveRaidLeaderAA() query += StringFormat("' WHERE gid = %lu AND rid = %lu LIMIT 1", RAID_GROUPLESS, GetID()); safe_delete_array(queryBuffer); auto results = database.QueryDatabase(query); - if (!results.Success()) + if (!results.Success()) { LogError("Unable to store LeadershipAA: [{}]\n", results.ErrorMessage().c_str()); + } } void Raid::UpdateGroupAAs(uint32 gid) { - if (gid < 0 || gid > MAX_RAID_GROUPS) + if (gid > MAX_RAID_GROUPS) { return; + } Client *gl = GetGroupLeader(gid); - if (gl) + if (gl) { gl->GetGroupAAs(&group_aa[gid]); - else + } else { memset(&group_aa[gid], 0, sizeof(GroupLeadershipAA_Struct)); + } SaveGroupLeaderAA(gid); } @@ -432,10 +449,11 @@ void Raid::UpdateRaidAAs() { Client *rl = GetLeader(); - if (rl) + if (rl) { rl->GetRaidAAs(&raid_aa); - else + } else { memset(&raid_aa, 0, sizeof(RaidLeadershipAA_Struct)); + } SaveRaidLeaderAA(); } @@ -444,8 +462,8 @@ bool Raid::IsGroupLeader(const char* name) { if (name) { for (const auto &m: members) { - if (!strcmp(m.membername, name)) { - return m.IsGroupLeader; + if (!strcmp(m.member_name, name)) { + return m.is_group_leader; } } } @@ -479,16 +497,16 @@ void Raid::UpdateLevel(const char *name, int newLevel) uint32 Raid::GetFreeGroup() { //check each group return the first one with 0 members assigned... - for(int x = 0; x < MAX_RAID_GROUPS; x++) - { + for (int x = 0; x < MAX_RAID_GROUPS; x++) { int count = 0; - for(int y = 0; y < MAX_RAID_MEMBERS; y++) - { - if(members[y].GroupNumber == x && (strlen(members[y].membername)>0)) + for (const auto& m : members) { + if (m.group_number == x && (strlen(m.member_name) > 0)) { count++; + } } - if(count == 0) + if (count == 0) { return x; + } } //if we get to here then there were no free groups so we added the group as free floating members. return RAID_GROUPLESS; @@ -497,22 +515,16 @@ uint32 Raid::GetFreeGroup() uint8 Raid::GroupCount(uint32 gid) { uint8 count = 0; - if(gid < MAX_RAID_GROUPS) - { - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(members[x].GroupNumber == gid && strlen(members[x].membername)>0) - { + if (gid < MAX_RAID_GROUPS) { + for (const auto& m : members) { + if (m.group_number == gid && strlen(m.member_name) > 0) { count++; } } } - else - { - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(members[x].GroupNumber > 11 && strlen(members[x].membername)>0) - { + else { + for (const auto& m : members) { + if (m.group_number > 11 && strlen(m.member_name) > 0) { count++; } } @@ -523,38 +535,39 @@ uint8 Raid::GroupCount(uint32 gid) uint8 Raid::RaidCount() { int count = 0; - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(strlen(members[x].membername) > 0) + for (const auto& m : members) { + if (strlen(m.member_name) > 0) { count++; + } } return count; } uint32 Raid::GetGroup(const char *name) { - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(strcmp(members[x].membername, name) == 0) - return members[x].GroupNumber; + for (const auto& m : members) { + if (strcmp(m.member_name, name) == 0) { + return m.group_number; + } } return RAID_GROUPLESS; } uint32 Raid::GetGroup(Client *c) { - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(members[x].member == c) - return members[x].GroupNumber; + for (const auto& m : members) { + if (m.member == c) { + return m.group_number; + } } return RAID_GROUPLESS; } void Raid::RaidSay(const char *msg, Client *c, uint8 language, uint8 lang_skill) { - if(!c) + if (!c) { return; + } auto pack = new ServerPacket(ServerOP_RaidSay, sizeof(ServerRaidMessage_Struct) + strlen(msg) + 1); ServerRaidMessage_Struct *rga = (ServerRaidMessage_Struct*)pack->pBuffer; @@ -572,18 +585,20 @@ void Raid::RaidSay(const char *msg, Client *c, uint8 language, uint8 lang_skill) void Raid::RaidGroupSay(const char *msg, Client *c, uint8 language, uint8 lang_skill) { - if(!c) + if (!c) { return; + } - uint32 groupToUse = GetGroup(c->GetName()); + uint32 group_id_to_use = GetGroup(c->GetName()); - if(groupToUse > 11) + if (group_id_to_use >= MAX_RAID_GROUPS) { return; + } auto pack = new ServerPacket(ServerOP_RaidGroupSay, sizeof(ServerRaidMessage_Struct) + strlen(msg) + 1); - ServerRaidMessage_Struct *rga = (ServerRaidMessage_Struct*)pack->pBuffer; + auto rga = (ServerRaidMessage_Struct*)pack->pBuffer; rga->rid = GetID(); - rga->gid = groupToUse; + rga->gid = group_id_to_use; rga->language = language; rga->lang_skill = lang_skill; strn0cpy(rga->from, c->GetName(), 64); @@ -594,10 +609,11 @@ void Raid::RaidGroupSay(const char *msg, Client *c, uint8 language, uint8 lang_s safe_delete(pack); } -uint32 Raid::GetPlayerIndex(const char *name){ +uint32 Raid::GetPlayerIndex(const char *name) +{ for(int x = 0; x < MAX_RAID_MEMBERS; x++) { - if(strcmp(name, members[x].membername) == 0){ + if(strcmp(name, members[x].member_name) == 0) { return x; } } @@ -606,16 +622,19 @@ uint32 Raid::GetPlayerIndex(const char *name){ uint32 Raid::GetPlayerIndex(Client *c) { - for (int i = 0; i < MAX_RAID_MEMBERS; ++i) - if (c == members[i].member) + for (int i = 0; i < MAX_RAID_MEMBERS; ++i) { + if (c == members[i].member) { return i; + } + } return 0xFFFFFFFF; // return sentinel value, make sure you check it unlike the above function } Client *Raid::GetClientByIndex(uint16 index) { - if(index > MAX_RAID_MEMBERS) + if (index > MAX_RAID_MEMBERS) { return nullptr; + } return members[index].member; } @@ -624,36 +643,37 @@ void Raid::CastGroupSpell(Mob* caster, uint16 spellid, uint32 gid) { float range, distance; - if(!caster) + if (!caster) { return; + } range = caster->GetAOERange(spellid); float range2 = range*range; - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(members[x].member == caster) { + for (const auto& m : members) { + if (m.member == caster) { caster->SpellOnTarget(spellid, caster); #ifdef GROUP_BUFF_PETS - if(spells[spellid].target_type != ST_GroupNoPets && caster->GetPet() && caster->HasPetAffinity() && !caster->GetPet()->IsCharmed()) + if (spells[spellid].target_type != ST_GroupNoPets && caster->GetPet() && caster->HasPetAffinity() && !caster->GetPet()->IsCharmed()) { caster->SpellOnTarget(spellid, caster->GetPet()); + } #endif } - else if(members[x].member != nullptr) - { - if(members[x].GroupNumber == gid){ - distance = DistanceSquared(caster->GetPosition(), members[x].member->GetPosition()); - if(distance <= range2){ - caster->SpellOnTarget(spellid, members[x].member); + else if (m.member != nullptr && m.group_number == gid) { + distance = DistanceSquared(caster->GetPosition(), m.member->GetPosition()); + if (distance <= range2) { + caster->SpellOnTarget(spellid, m.member); + #ifdef GROUP_BUFF_PETS - if(spells[spellid].target_type != ST_GroupNoPets && members[x].member->GetPet() && members[x].member->HasPetAffinity() && !members[x].member->GetPet()->IsCharmed()) - caster->SpellOnTarget(spellid, members[x].member->GetPet()); + if (spells[spellid].target_type != ST_GroupNoPets && m.member->GetPet() && m.member->HasPetAffinity() && + !m.member->GetPet()->IsCharmed()) { + caster->SpellOnTarget(spellid, m.member->GetPet()); + } #endif - } - else{ - LogSpells("Raid spell: [{}] is out of range [{}] at distance [{}] from [{}]", members[x].member->GetName(), range, distance, caster->GetName()); - } + } + else { + LogSpells("Raid spell: [{}] is out of range [{}] at distance [{}] from [{}]", m.member->GetName(), range, distance, caster->GetName()); } } } @@ -664,52 +684,51 @@ uint32 Raid::GetTotalRaidDamage(Mob* other) { uint32 total = 0; - for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++) { - if(!members[i].member) + for (const auto& m : members) { + if (!m.member) { continue; - if (other->CheckAggro(members[i].member)) - total += other->GetHateAmount(members[i].member,true); + } + + if (other->CheckAggro(m.member)) { + total += other->GetHateAmount(m.member, true); + } } + return total; } void Raid::HealGroup(uint32 heal_amt, Mob* caster, uint32 gid, float range) { - if (!caster) + if (!caster) { return; + } - if (!range) + if (!range) { range = 200; + } float distance; float range2 = range*range; int numMem = 0; - unsigned int gi = 0; - for(; gi < MAX_RAID_MEMBERS; gi++) - { - if(members[gi].member){ - if(members[gi].GroupNumber == gid) - { - distance = DistanceSquared(caster->GetPosition(), members[gi].member->GetPosition()); - if(distance <= range2){ - numMem += 1; - } + for (const auto& m : members) { + if (m.member && m.group_number == gid) { + distance = DistanceSquared(caster->GetPosition(), m.member->GetPosition()); + + if (distance <= range2) { + numMem += 1; } } } heal_amt /= numMem; - for(gi = 0; gi < MAX_RAID_MEMBERS; gi++) - { - if(members[gi].member){ - if(members[gi].GroupNumber == gid) - { - distance = DistanceSquared(caster->GetPosition(), members[gi].member->GetPosition()); - if(distance <= range2){ - members[gi].member->SetHP(members[gi].member->GetHP() + heal_amt); - members[gi].member->SendHPUpdate(); - } + for (const auto& m : members) { + if (m.member && m.group_number == gid) { + distance = DistanceSquared(caster->GetPosition(), m.member->GetPosition()); + + if (distance <= range2) { + m.member->SetHP(m.member->GetHP() + heal_amt); + m.member->SendHPUpdate(); } } } @@ -718,54 +737,53 @@ void Raid::HealGroup(uint32 heal_amt, Mob* caster, uint32 gid, float range) void Raid::BalanceHP(int32 penalty, uint32 gid, float range, Mob* caster, int32 limit) { - if (!caster) + if (!caster) { return; + } - if (!range) + if (!range) { range = 200; + } int dmgtaken = 0, numMem = 0, dmgtaken_tmp = 0; - int gi = 0; float distance; float range2 = range*range; - for(; gi < MAX_RAID_MEMBERS; gi++) - { - if(members[gi].member){ - if(members[gi].GroupNumber == gid) - { - distance = DistanceSquared(caster->GetPosition(), members[gi].member->GetPosition()); - if(distance <= range2){ + for (const auto& m : members) { + if (m.member && m.group_number == gid) { + distance = DistanceSquared(caster->GetPosition(), m.member->GetPosition()); - dmgtaken_tmp = members[gi].member->GetMaxHP() - members[gi].member->GetHP(); - if (limit && (dmgtaken_tmp > limit)) - dmgtaken_tmp = limit; + if (distance <= range2) { + dmgtaken_tmp = m.member->GetMaxHP() - m.member->GetHP(); - dmgtaken += (dmgtaken_tmp); - numMem += 1; + if (limit && (dmgtaken_tmp > limit)) { + dmgtaken_tmp = limit; } + + dmgtaken += dmgtaken_tmp; + numMem += 1; } } } dmgtaken += dmgtaken * penalty / 100; dmgtaken /= numMem; - for(gi = 0; gi < MAX_RAID_MEMBERS; gi++) - { - if(members[gi].member){ - if(members[gi].GroupNumber == gid) - { - distance = DistanceSquared(caster->GetPosition(), members[gi].member->GetPosition()); - if(distance <= range2){ - if((members[gi].member->GetMaxHP() - dmgtaken) < 1){//this way the ability will never kill someone - members[gi].member->SetHP(1); //but it will come darn close - members[gi].member->SendHPUpdate(); - } - else{ - members[gi].member->SetHP(members[gi].member->GetMaxHP() - dmgtaken); - members[gi].member->SendHPUpdate(); - } + for (const auto& m : members) { + if (m.member && m.group_number == gid) { + distance = DistanceSquared(caster->GetPosition(), m.member->GetPosition()); + + //this way the ability will never kill someone + //but it will come darn close + if (distance <= range2) { + if ((m.member->GetMaxHP() - dmgtaken) < 1) { + m.member->SetHP(1); + m.member->SendHPUpdate(); + } + + else { + m.member->SetHP(m.member->GetMaxHP() - dmgtaken); + m.member->SendHPUpdate(); } } } @@ -774,34 +792,38 @@ void Raid::BalanceHP(int32 penalty, uint32 gid, float range, Mob* caster, int32 void Raid::BalanceMana(int32 penalty, uint32 gid, float range, Mob* caster, int32 limit) { - if (!caster) + if (!caster) { return; + } - if (!range) + if (!range) { range = 200; + } float distance; float range2 = range*range; - int manataken = 0, numMem = 0, manataken_tmp = 0; - int gi = 0; - for(; gi < MAX_RAID_MEMBERS; gi++) - { - if (members[gi].member && !members[gi].IsBot) { - if (members[gi].GroupNumber == gid) - { - if (members[gi].member->GetMaxMana() > 0) { - distance = DistanceSquared(caster->GetPosition(), members[gi].member->GetPosition()); - if(distance <= range2){ + int manataken = 0; + int numMem = 0; + int manataken_tmp = 0; - manataken_tmp = members[gi].member->GetMaxMana() - members[gi].member->GetMana(); - if (limit && (manataken_tmp > limit)) - manataken_tmp = limit; + for (const auto& m : members) { + if (m.is_bot) { + continue; + } - manataken += (manataken_tmp); - numMem += 1; - } + if (m.member && m.group_number == gid && m.member->GetMaxMana() > 0) { + distance = DistanceSquared(caster->GetPosition(), m.member->GetPosition()); + + if (distance <= range2) { + manataken_tmp = m.member->GetMaxMana() - m.member->GetMana(); + + if (limit && (manataken_tmp > limit)) { + manataken_tmp = limit; } + + manataken += manataken_tmp; + numMem += 1; } } } @@ -809,22 +831,23 @@ void Raid::BalanceMana(int32 penalty, uint32 gid, float range, Mob* caster, int3 manataken += manataken * penalty / 100; manataken /= numMem; - for(gi = 0; gi < MAX_RAID_MEMBERS; gi++) - { - if (members[gi].member) { - if (members[gi].GroupNumber == gid) - { - distance = DistanceSquared(caster->GetPosition(), members[gi].member->GetPosition()); - if (distance <= range2){ - if ((members[gi].member->GetMaxMana() - manataken) < 1) { - members[gi].member->SetMana(1); - if (members[gi].member->IsClient()) - members[gi].member->CastToClient()->SendManaUpdate(); + for (const auto& m : members) { + if (m.member && m.group_number == gid) { + distance = DistanceSquared(caster->GetPosition(), m.member->GetPosition()); + + if (distance <= range2) { + if ((m.member->GetMaxMana() - manataken) < 1) { + m.member->SetMana(1); + + if (m.member->IsClient()) { + m.member->CastToClient()->SendManaUpdate(); } - else { - members[gi].member->SetMana(members[gi].member->GetMaxMana() - manataken); - if (members[gi].member->IsClient()) - members[gi].member->CastToClient()->SendManaUpdate(); + } + else { + m.member->SetMana(m.member->GetMaxMana() - manataken); + + if (m.member->IsClient()) { + m.member->CastToClient()->SendManaUpdate(); } } } @@ -851,8 +874,8 @@ void Raid::SplitMoney(uint32 gid, uint32 copper, uint32 silver, uint32 gold, uin } uint8 member_count = 0; - for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++) { - if (members[i].member && members[i].GroupNumber == gid && members[i].member->IsClient()) { + for (const auto& m : members) { + if (m.member && m.group_number == gid && m.member->IsClient()) { member_count++; } } @@ -890,9 +913,9 @@ void Raid::SplitMoney(uint32 gid, uint32 copper, uint32 silver, uint32 gold, uin auto gold_split = gold / member_count; auto platinum_split = platinum / member_count; - for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++) { - if (members[i].member && members[i].GroupNumber == gid && members[i].member->IsClient()) { // If Group Member is Client - members[i].member->AddMoneyToPP( + for (const auto& m : members) { + if (m.member && m.group_number == gid && m.member->IsClient()) { // If Group Member is Client + m.member->AddMoneyToPP( copper_split, silver_split, gold_split, @@ -906,13 +929,13 @@ void Raid::SplitMoney(uint32 gid, uint32 copper, uint32 silver, uint32 gold, uin .silver = silver_split, .gold = gold_split, .platinum = platinum_split, - .player_money_balance = members[i].member->GetCarriedMoney(), + .player_money_balance = m.member->GetCarriedMoney(), }; - RecordPlayerEventLogWithClient(members[i].member, PlayerEvent::SPLIT_MONEY, e); + RecordPlayerEventLogWithClient(m.member, PlayerEvent::SPLIT_MONEY, e); } - members[i].member->MessageString( + m.member->MessageString( Chat::MoneySplit, YOU_RECEIVE_AS_SPLIT, Strings::Money( @@ -928,9 +951,8 @@ void Raid::SplitMoney(uint32 gid, uint32 copper, uint32 silver, uint32 gold, uin void Raid::TeleportGroup(Mob* sender, uint32 zoneID, uint16 instance_id, float x, float y, float z, float heading, uint32 gid) { - for (const auto& m : members) - { - if (m.member && m.GroupNumber == gid && m.member->IsClient()) { + for (const auto& m : members) { + if (m.member && m.group_number == gid && m.member->IsClient()) { m.member->MovePC(zoneID, instance_id, x, y, z, heading, 0, ZoneSolicited); } } @@ -938,10 +960,8 @@ void Raid::TeleportGroup(Mob* sender, uint32 zoneID, uint16 instance_id, float x void Raid::TeleportRaid(Mob* sender, uint32 zoneID, uint16 instance_id, float x, float y, float z, float heading) { - for (const auto& m : members) - { - if (m.member && m.member->IsClient()) - { + for (const auto& m : members) { + if (m.member && m.member->IsClient()) { m.member->MovePC(zoneID, instance_id, x, y, z, heading, 0, ZoneSolicited); } } @@ -950,8 +970,8 @@ void Raid::TeleportRaid(Mob* sender, uint32 zoneID, uint16 instance_id, float x, void Raid::ChangeLootType(uint32 type) { std::string query = StringFormat("UPDATE raid_details SET loottype = %lu WHERE raidid = %lu", - (unsigned long)type, (unsigned long)GetID()); - auto results = database.QueryDatabase(query); + (unsigned long)type, (unsigned long)GetID()); + auto results = database.QueryDatabase(query); LootType = type; } @@ -960,16 +980,15 @@ void Raid::AddRaidLooter(const char* looter) std::string query = StringFormat("UPDATE raid_members SET islooter = 1 WHERE name = '%s'", looter); auto results = database.QueryDatabase(query); - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(strcmp(looter, members[x].membername) == 0) - { - members[x].IsLooter = 1; + for (auto& m : members) { + if (strcmp(looter, m.member_name) == 0) { + m.is_looter = true; break; } } + auto pack = new ServerPacket(ServerOP_DetailsChange, sizeof(ServerRaidGeneralAction_Struct)); - ServerRaidGeneralAction_Struct *rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; + auto rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; rga->rid = GetID(); rga->zoneid = zone->GetZoneID(); rga->instance_id = zone->GetInstanceID(); @@ -982,14 +1001,15 @@ void Raid::RemoveRaidLooter(const char* looter) std::string query = StringFormat("UPDATE raid_members SET islooter = 0 WHERE name = '%s'", looter); auto results = database.QueryDatabase(query); - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - if(strcmp(looter, members[x].membername) == 0) { - members[x].IsLooter = 0; + for (auto& m: members) { + if (strcmp(looter, m.member_name) == 0) { + m.is_looter = false; break; } + } auto pack = new ServerPacket(ServerOP_DetailsChange, sizeof(ServerRaidGeneralAction_Struct)); - ServerRaidGeneralAction_Struct *rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; + auto rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; rga->rid = GetID(); rga->zoneid = zone->GetZoneID(); rga->instance_id = zone->GetInstanceID(); @@ -1001,7 +1021,7 @@ bool Raid::IsRaidMember(const char *name) { if (name) { for (const auto &m: members) { - if (!strcmp(m.membername, name)) { + if (!strcmp(m.member_name, name)) { return true; } } @@ -1026,40 +1046,38 @@ bool Raid::IsRaidMember(Client* c) uint32 Raid::GetHighestLevel() { uint32 highlvl = 0; - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(strlen(members[x].membername)) - { - if(members[x].level > highlvl) - highlvl = members[x].level; + for (const auto& m : members) { + if (strlen(m.member_name) && m.level > highlvl) { + highlvl = m.level; } } + return highlvl; } uint32 Raid::GetLowestLevel() { uint32 lowlvl = 1000; - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(strlen(members[x].membername)) - { - if(members[x].level < lowlvl) - lowlvl = members[x].level; + for (const auto& m : members) { + if (strlen(m.member_name) && m.level < lowlvl) { + lowlvl = m.level; } } + return lowlvl; } /* * Packet Functions Start */ -void Raid::SendRaidCreate(Client *to){ - if(!to) +void Raid::SendRaidCreate(Client *to) +{ + if (!to) { return; + } auto outapp = new EQApplicationPacket(OP_RaidJoin, sizeof(RaidCreate_Struct)); - RaidCreate_Struct *rc = (RaidCreate_Struct*)outapp->pBuffer; + auto rc = (RaidCreate_Struct*)outapp->pBuffer; rc->action = raidCreate; strn0cpy(rc->leader_name, leadername, 64); rc->leader_id = (GetLeader()?GetLeader()->GetID():0); @@ -1069,24 +1087,23 @@ void Raid::SendRaidCreate(Client *to){ void Raid::SendRaidAdd(const char *who, Client *to) { - if(!to) + if (!to) { return; + } std::vector rm = GetMembers(); - for (const auto& m : rm) - { - if (strcmp(m.membername, who) == 0) - { + for (const auto& m : rm) { + if (strcmp(m.member_name, who) == 0) { auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidAddMember_Struct)); - RaidAddMember_Struct* ram = (RaidAddMember_Struct*)outapp->pBuffer; + auto ram = (RaidAddMember_Struct*)outapp->pBuffer; ram->raidGen.action = raidAdd; - ram->raidGen.parameter = m.GroupNumber; - strn0cpy(ram->raidGen.leader_name, m.membername, 64); - strn0cpy(ram->raidGen.player_name, m.membername, 64); + ram->raidGen.parameter = m.group_number; + strn0cpy(ram->raidGen.leader_name, m.member_name, 64); + strn0cpy(ram->raidGen.player_name, m.member_name, 64); ram->_class = m._class; ram->level = m.level; - ram->isGroupLeader = m.IsGroupLeader; + ram->isGroupLeader = m.is_group_leader; to->QueuePacket(outapp); safe_delete(outapp); return; @@ -1099,15 +1116,14 @@ void Raid::SendRaidAddAll(const char *who) std::vector rm = GetMembers(); for (const auto& m : rm) { - if (strcmp(m.membername, who) == 0) - { + if (strcmp(m.member_name, who) == 0) { auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidAddMember_Struct)); - RaidAddMember_Struct* ram = (RaidAddMember_Struct*)outapp->pBuffer; + auto ram = (RaidAddMember_Struct*)outapp->pBuffer; ram->raidGen.action = raidAdd; - ram->raidGen.parameter = m.GroupNumber; - strcpy(ram->raidGen.leader_name, m.membername); - strcpy(ram->raidGen.player_name, m.membername); - ram->isGroupLeader = m.IsGroupLeader; + ram->raidGen.parameter = m.group_number; + strcpy(ram->raidGen.leader_name, m.member_name); + strcpy(ram->raidGen.player_name, m.member_name); + ram->isGroupLeader = m.is_group_leader; ram->_class = m._class; ram->level = m.level; @@ -1120,15 +1136,14 @@ void Raid::SendRaidAddAll(const char *who) void Raid::SendRaidRemove(const char *who, Client *to) { - if(!to) + if (!to) { return; + } - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(strcmp(members[x].membername, who) == 0) - { + for (const auto& m : members) { + if (strcmp(m.member_name, who) == 0) { auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidGeneral_Struct)); - RaidGeneral_Struct *rg = (RaidGeneral_Struct*)outapp->pBuffer; + auto rg = (RaidGeneral_Struct*)outapp->pBuffer; rg->action = raidRemove2; strn0cpy(rg->leader_name, who, 64); strn0cpy(rg->player_name, who, 64); @@ -1142,12 +1157,10 @@ void Raid::SendRaidRemove(const char *who, Client *to) void Raid::SendRaidRemoveAll(const char *who) { - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(strcmp(members[x].membername, who) == 0) - { + for (const auto& m : members) { + if (strcmp(m.member_name, who) == 0) { auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidGeneral_Struct)); - RaidGeneral_Struct *rg = (RaidGeneral_Struct*)outapp->pBuffer; + auto rg = (RaidGeneral_Struct*)outapp->pBuffer; rg->action = raidRemove2; strn0cpy(rg->leader_name, who, 64); strn0cpy(rg->player_name, who, 64); @@ -1166,7 +1179,7 @@ void Raid::SendRaidDisband(Client *to) } auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidGeneral_Struct)); - RaidGeneral_Struct *rg = (RaidGeneral_Struct*)outapp->pBuffer; + auto rg = (RaidGeneral_Struct*)outapp->pBuffer; rg->action = raidDisband; strn0cpy(rg->leader_name, to->GetName(), 64); strn0cpy(rg->player_name, to->GetName(), 64); @@ -1178,7 +1191,7 @@ void Raid::SendRaidDisband(Client *to) void Raid::SendRaidDisbandAll() { auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidGeneral_Struct)); - RaidGeneral_Struct *rg = (RaidGeneral_Struct*)outapp->pBuffer; + auto rg = (RaidGeneral_Struct*)outapp->pBuffer; rg->action = raidDisband; strn0cpy(rg->leader_name, "RaidMember", 64); strn0cpy(rg->player_name, "RaidMember", 64); @@ -1189,19 +1202,21 @@ void Raid::SendRaidDisbandAll() void Raid::SendRaidMove(const char* who, Client *to) { - if(!to) + if (!to) { return; + } Client *c = entity_list.GetClientByName(who); - if(c && c == to){ + if (c && c == to) { SendRaidCreate(c); SendMakeLeaderPacketTo(leadername, c); } + SendRaidRemove(who, to); SendRaidAdd(who, to); - if(c && c == to){ + if (c && c == to) { SendBulkRaid(c); - if(IsLocked()) { + if (IsLocked()) { SendRaidLockTo(c); } } @@ -1211,51 +1226,53 @@ void Raid::SendRaidMoveAll(const char* who) { Client *c = entity_list.GetClientByName(who); SendRaidRemoveAll(who); - if(c) + + if (c) { SendRaidCreate(c); - if(c){ - SendBulkRaid(c); - if(IsLocked()) { SendRaidLockTo(c); } } + + if (c) { + SendBulkRaid(c); + if (IsLocked()) { + SendRaidLockTo(c); + } + } + SendRaidAddAll(who); SendMakeLeaderPacket(leadername); - } void Raid::SendBulkRaid(Client *to) { - if(!to) + if (!to) { return; + } - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if (strlen(members[x].membername) > 0 && (strcmp(members[x].membername, to->GetName()) != 0)) //don't send ourself - { - SendRaidAdd(members[x].membername, to); + for (const auto& m : members) { + if (strlen(m.member_name) > 0 && (strcmp(m.member_name, to->GetName()) != 0)) { + SendRaidAdd(m.member_name, to); } } } void Raid::QueuePacket(const EQApplicationPacket *app, bool ack_req) { - for (int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if (members[x].member && members[x].member->IsClient()) - { - members[x].member->QueuePacket(app, ack_req); + for (const auto& m : members) { + if (m.member && m.member->IsClient()) { + m.member->QueuePacket(app, ack_req); } } } -void Raid::SendMakeLeaderPacket(const char *who) //30 +void Raid::SendMakeLeaderPacket(const char *who) { - if (RuleB(Bots, Enabled) && entity_list.GetBotByBotName(who) && members[GetPlayerIndex(who)].IsBot) { + if (RuleB(Bots, Enabled) && entity_list.GetBotByBotName(who)) { return; } auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidLeadershipUpdate_Struct)); - RaidLeadershipUpdate_Struct *rg = (RaidLeadershipUpdate_Struct*)outapp->pBuffer; + auto rg = (RaidLeadershipUpdate_Struct*)outapp->pBuffer; rg->action = raidMakeLeader; strn0cpy(rg->leader_name, who, 64); strn0cpy(rg->player_name, who, 64); @@ -1270,12 +1287,12 @@ void Raid::SendMakeLeaderPacketTo(const char *who, Client *to) return; } - if (RuleB(Bots, Enabled) && members[GetPlayerIndex(who)].IsBot) { + if (RuleB(Bots, Enabled) && entity_list.GetBotByBotName(who)) { return; } auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidLeadershipUpdate_Struct)); - RaidLeadershipUpdate_Struct *rg = (RaidLeadershipUpdate_Struct*)outapp->pBuffer; + auto rg = (RaidLeadershipUpdate_Struct*)outapp->pBuffer; rg->action = raidMakeLeader; strn0cpy(rg->leader_name, who, 64); strn0cpy(rg->player_name, who, 64); @@ -1295,8 +1312,9 @@ void Raid::SendMakeGroupLeaderPacket(const char *who) //13 void Raid::SendMakeGroupLeaderPacketTo(const char *who, Client *to) { - if(!to) + if (!to) { return; + } } void Raid::SendGroupUpdate(Client *to) @@ -1305,42 +1323,42 @@ void Raid::SendGroupUpdate(Client *to) return; } - if (RuleB(Bots, Enabled) && members[GetPlayerIndex(to)].IsBot) { + if (RuleB(Bots, Enabled) && entity_list.GetBotByBotName(to->GetName())) { return; } auto outapp = new EQApplicationPacket(OP_GroupUpdate, sizeof(GroupUpdate2_Struct)); - GroupUpdate2_Struct* gu = (GroupUpdate2_Struct*)outapp->pBuffer; + auto gu = (GroupUpdate2_Struct*)outapp->pBuffer; gu->action = groupActUpdate; - int index = 0; + int i = 0; uint32 grp = GetGroup(to->GetName()); - if(grp > 11) - { + if (grp >= MAX_RAID_MEMBERS) { safe_delete(outapp); return; } - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(members[x].GroupNumber == grp && strlen(members[x].membername) > 0) - { - if(members[x].IsGroupLeader){ - strn0cpy(gu->leadersname, members[x].membername, 64); - if(strcmp(to->GetName(), members[x].membername) != 0){ - strn0cpy(gu->membername[index], members[x].membername, 64); - index++; + + for (const auto& m : members) { + if (m.group_number == grp && strlen(m.member_name) > 0) { + if (m.is_group_leader) { + strn0cpy(gu->leadersname, m.member_name, 64); + if (strcmp(to->GetName(), m.member_name) != 0) { + strn0cpy(gu->membername[i], m.member_name, 64); + i++; } } - else{ - if(strcmp(to->GetName(), members[x].membername) != 0){ - strn0cpy(gu->membername[index], members[x].membername, 64); - index++; + else { + if (strcmp(to->GetName(), m.member_name) != 0) { + strn0cpy(gu->membername[i], m.member_name, 64); + i++; } } } } - if(strlen(gu->leadersname) < 1){ + + if (strlen(gu->leadersname) < 1) { strn0cpy(gu->leadersname, to->GetName(), 64); } + strn0cpy(gu->yourname, to->GetName(), 64); memcpy(&gu->leader_aas, &group_aa[grp], sizeof(GroupLeadershipAA_Struct)); @@ -1349,23 +1367,20 @@ void Raid::SendGroupUpdate(Client *to) void Raid::GroupUpdate(uint32 gid, bool initial) { - if(gid > 11) {//ungrouped member doesn't need grouping. + //ungrouped member doesn't need grouping. + if (gid >= MAX_RAID_GROUPS) { return; } - for (int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(strlen(members[x].membername) > 0){ - if(members[x].GroupNumber == gid){ - if (members[x].member) { - SendGroupUpdate(members[x].member); - SendGroupLeadershipAA(members[x].member, gid); - } - } + + for (const auto& m : members) { + if (strlen(m.member_name) > 0 && m.group_number == gid && m.member) { + SendGroupUpdate(m.member); + SendGroupLeadershipAA(m.member, gid); } } - if(initial){ + if (initial) { auto pack = new ServerPacket(ServerOP_UpdateGroup, sizeof(ServerRaidGeneralAction_Struct)); - ServerRaidGeneralAction_Struct* rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; + auto rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; rga->gid = gid; rga->rid = GetID(); rga->zoneid = zone->GetZoneID(); @@ -1378,7 +1393,7 @@ void Raid::GroupUpdate(uint32 gid, bool initial) void Raid::SendRaidLock() { auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidGeneral_Struct)); - RaidGeneral_Struct *rg = (RaidGeneral_Struct*)outapp->pBuffer; + auto rg = (RaidGeneral_Struct*)outapp->pBuffer; rg->action = raidLock; strn0cpy(rg->leader_name, leadername, 64); strn0cpy(rg->player_name, leadername, 64); @@ -1389,7 +1404,7 @@ void Raid::SendRaidLock() void Raid::SendRaidUnlock() { auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidGeneral_Struct)); - RaidGeneral_Struct *rg = (RaidGeneral_Struct*)outapp->pBuffer; + auto rg = (RaidGeneral_Struct*)outapp->pBuffer; rg->action = raidUnlock; strn0cpy(rg->leader_name, leadername, 64); strn0cpy(rg->player_name, leadername, 64); @@ -1399,11 +1414,12 @@ void Raid::SendRaidUnlock() void Raid::SendRaidLockTo(Client *c) { - if(!c) + if (!c) { return; + } auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidGeneral_Struct)); - RaidGeneral_Struct *rg = (RaidGeneral_Struct*)outapp->pBuffer; + auto rg = (RaidGeneral_Struct*)outapp->pBuffer; rg->action = raidLock; strn0cpy(rg->leader_name, c->GetName(), 64); strn0cpy(rg->player_name, c->GetName(), 64); @@ -1413,11 +1429,12 @@ void Raid::SendRaidLockTo(Client *c) void Raid::SendRaidUnlockTo(Client *c) { - if(!c) + if (!c) { return; + } auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidGeneral_Struct)); - RaidGeneral_Struct *rg = (RaidGeneral_Struct*)outapp->pBuffer; + auto rg = (RaidGeneral_Struct*)outapp->pBuffer; rg->action = raidUnlock; strn0cpy(rg->leader_name, c->GetName(), 64); strn0cpy(rg->player_name, c->GetName(), 64); @@ -1427,11 +1444,12 @@ void Raid::SendRaidUnlockTo(Client *c) void Raid::SendGroupDisband(Client *to) { - if(!to) + if (!to) { return; + } auto outapp = new EQApplicationPacket(OP_GroupUpdate, sizeof(GroupUpdate_Struct)); - GroupUpdate_Struct* gu = (GroupUpdate_Struct*) outapp->pBuffer; + auto gu = (GroupUpdate_Struct*) outapp->pBuffer; gu->action = groupActDisband; strn0cpy(gu->leadersname, leadername, 64); strn0cpy(gu->yourname, to->GetName(), 64); @@ -1441,7 +1459,7 @@ void Raid::SendGroupDisband(Client *to) void Raid::SendRaidGroupAdd(const char *who, uint32 gid) { auto pack = new ServerPacket(ServerOP_RaidGroupAdd, sizeof(ServerRaidGroupAction_Struct)); - ServerRaidGroupAction_Struct * rga = (ServerRaidGroupAction_Struct*)pack->pBuffer; + auto rga = (ServerRaidGroupAction_Struct*)pack->pBuffer; rga->rid = GetID(); rga->gid = gid; strn0cpy(rga->membername, who, 64); @@ -1451,7 +1469,7 @@ void Raid::SendRaidGroupAdd(const char *who, uint32 gid) void Raid::SendRaidGroupRemove(const char *who, uint32 gid) { auto pack = new ServerPacket(ServerOP_RaidGroupRemove, sizeof(ServerRaidGroupAction_Struct)); - ServerRaidGroupAction_Struct * rga = (ServerRaidGroupAction_Struct*)pack->pBuffer; + auto rga = (ServerRaidGroupAction_Struct*)pack->pBuffer; rga->rid = GetID(); rga->gid = gid; strn0cpy(rga->membername, who, 64); @@ -1460,16 +1478,17 @@ void Raid::SendRaidGroupRemove(const char *who, uint32 gid) void Raid::SendRaidMOTD(Client *c) { - if (!c || motd.empty()) + if (!c || motd.empty()) { return; + } - if (members[GetPlayerIndex(c)].IsBot) { + if (entity_list.GetBotByBotName(c->GetName())) { return; } size_t size = motd.size() + 1; auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidMOTD_Struct) + size); - RaidMOTD_Struct *rmotd = (RaidMOTD_Struct *)outapp->pBuffer; + auto rmotd = (RaidMOTD_Struct *)outapp->pBuffer; rmotd->general.action = raidSetMotd; strn0cpy(rmotd->general.player_name, c->GetName(), 64); strn0cpy(rmotd->motd, motd.c_str(), size); @@ -1478,22 +1497,26 @@ void Raid::SendRaidMOTD(Client *c) void Raid::SendRaidMOTD() { - if (motd.empty()) + if (motd.empty()) { return; + } - for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++) - if (members[i].member) - SendRaidMOTD(members[i].member); + for (const auto& m: members) { + if (m.member) { + SendRaidMOTD(m.member); + } + } } void Raid::SendRaidMOTDToWorld() { - if (motd.empty()) + if (motd.empty()) { return; + } size_t size = motd.size() + 1; auto pack = new ServerPacket(ServerOP_RaidMOTD, sizeof(ServerRaidMOTD_Struct) + size); - ServerRaidMOTD_Struct *smotd = (ServerRaidMOTD_Struct *)pack->pBuffer; + auto smotd = (ServerRaidMOTD_Struct *)pack->pBuffer; smotd->rid = GetID(); strn0cpy(smotd->motd, motd.c_str(), size); worldserver.SendPacket(pack); @@ -1502,12 +1525,12 @@ void Raid::SendRaidMOTDToWorld() void Raid::SendGroupLeadershipAA(Client *c, uint32 gid) { - if (RuleB(Bots, Enabled) && members[GetPlayerIndex(c)].IsBot) { + if (RuleB(Bots, Enabled) && entity_list.GetBotByBotName(c->GetName())) { return; } auto outapp = new EQApplicationPacket(OP_RaidUpdate, sizeof(RaidLeadershipUpdate_Struct)); - RaidLeadershipUpdate_Struct *rlaa = (RaidLeadershipUpdate_Struct *)outapp->pBuffer; + auto rlaa = (RaidLeadershipUpdate_Struct *)outapp->pBuffer; rlaa->action = raidSetLeaderAbilities; strn0cpy(rlaa->leader_name, c->GetName(), 64); strn0cpy(rlaa->player_name, c->GetName(), 64); @@ -1521,7 +1544,11 @@ void Raid::SendGroupLeadershipAA(Client *c, uint32 gid) void Raid::SendGroupLeadershipAA(uint32 gid) { for (const auto& m : members) { - if (m.member && m.GroupNumber == gid && !m.IsBot) { + if (m.is_bot) { + continue; + } + + if (m.member && m.group_number == gid) { SendGroupLeadershipAA(m.member, gid); } } @@ -1530,8 +1557,12 @@ void Raid::SendGroupLeadershipAA(uint32 gid) void Raid::SendAllRaidLeadershipAA() { for (const auto& m : members) { - if (m.member && !m.IsBot) { - SendGroupLeadershipAA(m.member, m.GroupNumber); + if (m.is_bot) { + continue; + } + + if (m.member) { + SendGroupLeadershipAA(m.member, m.group_number); } } } @@ -1539,18 +1570,20 @@ void Raid::SendAllRaidLeadershipAA() void Raid::LockRaid(bool lockFlag) { - std::string query = StringFormat("UPDATE raid_details SET locked = %d WHERE raidid = %lu", - lockFlag, (unsigned long)GetID()); - auto results = database.QueryDatabase(query); + std::string query = StringFormat("UPDATE raid_details SET locked = %d WHERE raidid = %lu", lockFlag, (unsigned long)GetID()); + auto results = database.QueryDatabase(query); locked = lockFlag; - if(lockFlag) + + if (lockFlag) { SendRaidLock(); - else + } + else { SendRaidUnlock(); + } auto pack = new ServerPacket(ServerOP_RaidLockFlag, sizeof(ServerRaidGeneralAction_Struct)); - ServerRaidGeneralAction_Struct *rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; + auto rga = (ServerRaidGeneralAction_Struct*)pack->pBuffer; rga->rid = GetID(); rga->zoneid = zone->GetZoneID(); rga->gid = lockFlag; @@ -1562,17 +1595,19 @@ void Raid::LockRaid(bool lockFlag) void Raid::SetRaidDetails() { std::string query = StringFormat("INSERT INTO raid_details SET raidid = %lu, loottype = 4, locked = 0, motd = ''", - (unsigned long)GetID()); - auto results = database.QueryDatabase(query); + (unsigned long)GetID()); + auto results = database.QueryDatabase(query); } void Raid::GetRaidDetails() { std::string query = StringFormat("SELECT locked, loottype, motd FROM raid_details WHERE raidid = %lu", - (unsigned long)GetID()); - auto results = database.QueryDatabase(query); - if (!results.Success()) - return; + (unsigned long)GetID()); + auto results = database.QueryDatabase(query); + + if (!results.Success()) { + return; + } if (results.RowCount() == 0) { LogError( @@ -1583,10 +1618,10 @@ void Raid::GetRaidDetails() return; } - auto row = results.begin(); + auto row = results.begin(); - locked = Strings::ToInt(row[0]); - LootType = Strings::ToInt(row[1]); + locked = Strings::ToInt(row[0]); + LootType = Strings::ToInt(row[1]); motd = std::string(row[2]); } @@ -1615,69 +1650,73 @@ bool Raid::LearnMembers() } if (!results.RowCount()) { - LogError("Error getting raid members for raid [{}]: [{}]", GetID(), results.ErrorMessage()); disbandCheck = true; return false; } - int index = 0; + int i = 0; for (auto row: results) { if (!row[0]) { continue; } - members[index].member = nullptr; - strn0cpy(members[index].membername, row[0], sizeof(members[index].membername)); + members[i].member = nullptr; + strn0cpy(members[i].member_name, row[0], sizeof(members[i].member_name)); uint32 group_id = Strings::ToUnsignedInt(row[1]); - if (group_id > 11) { - members[index].GroupNumber = RAID_GROUPLESS; - } else { - members[index].GroupNumber = group_id; + if (group_id >= MAX_RAID_GROUPS) { + members[i].group_number = RAID_GROUPLESS; + } + else { + members[i].group_number = group_id; } - members[index]._class = Strings::ToUnsignedInt(row[2]); - members[index].level = Strings::ToUnsignedInt(row[3]); - members[index].IsGroupLeader = Strings::ToBool(row[4]); - members[index].IsRaidLeader = Strings::ToBool(row[5]); - members[index].IsLooter = Strings::ToBool(row[6]); - members[index].IsBot = Strings::ToBool(row[7]) > 0; - ++index; + members[i]._class = Strings::ToUnsignedInt(row[2]); + members[i].level = Strings::ToUnsignedInt(row[3]); + members[i].is_group_leader = Strings::ToBool(row[4]); + members[i].is_raid_leader = Strings::ToBool(row[5]); + members[i].is_looter = Strings::ToBool(row[6]); + members[i].is_bot = Strings::ToBool(row[7]) > 0; + ++i; } - + return true; } void Raid::VerifyRaid() { for (auto& m : members) { - if(strlen(m.membername) == 0){ + if (strlen(m.member_name) == 0) { m.member = nullptr; - } else { - auto* c = entity_list.GetClientByName(m.membername); - auto* b = entity_list.GetBotByBotName(m.membername); + } + else { + auto* c = entity_list.GetClientByName(m.member_name); + auto* b = entity_list.GetBotByBotName(m.member_name); if (c) { m.member = c; - m.IsBot = false; - } else if(RuleB(Bots, Enabled) && b){ + m.is_bot = false; + } + else if (RuleB(Bots, Enabled) && b) { //Raid requires client* we are forcing it here to be a BOT. Care is needed here as any client function that - //does not exist within the Bot Class will likely corrupt memory for the member object. Good practice to test the IsBot + //does not exist within the Bot Class will likely corrupt memory for the member object. Good practice to test the is_bot //attribute before calling a client function or casting to client. - b = entity_list.GetBotByBotName(m.membername); + b = entity_list.GetBotByBotName(m.member_name); m.member = b->CastToClient(); - m.IsBot = true; //Used to identify those members who are Bots - } else { + m.is_bot = true; //Used to identify those members who are Bots + } + else { m.member = nullptr; - m.IsBot = false; + m.is_bot = false; } } - if (m.IsRaidLeader) { - if (strlen(m.membername) > 0){ + if (m.is_raid_leader) { + if (strlen(m.member_name) > 0) { SetLeader(m.member); - strn0cpy(leadername, m.membername, sizeof(leadername)); - } else { + strn0cpy(leadername, m.member_name, sizeof(leadername)); + } + else { SetLeader(nullptr); } } @@ -1686,61 +1725,61 @@ void Raid::VerifyRaid() void Raid::MemberZoned(Client *c) { - if(!c) + if (!c) { return; + } - if (leader == c) - { + if (leader == c) { leader = nullptr; } // Raid::GetGroup() goes over the members as well, this way we go over once uint32 gid = RAID_GROUPLESS; - for(int x = 0; x < MAX_RAID_MEMBERS; x++) - { - if(members[x].member == c) - { - members[x].member = nullptr; - gid = members[x].GroupNumber; + for (auto& m : members) { + if (m.member == c) { + m.member = nullptr; + gid = m.group_number; } } - if (gid < MAX_RAID_GROUPS && group_mentor[gid].mentoree == c) + if (gid < MAX_RAID_GROUPS && group_mentor[gid].mentoree == c) { group_mentor[gid].mentoree = nullptr; + } } void Raid::SendHPManaEndPacketsTo(Client *client) { - if(!client) + if (!client) { return; + } uint32 group_id = GetGroup(client); EQApplicationPacket hp_packet; EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct)); - for(int x = 0; x < MAX_RAID_MEMBERS; x++) { - if(members[x].member && !members[x].IsBot) { - if((members[x].member != client) && (members[x].GroupNumber == group_id)) { + for (const auto& m : members) { + if (m.is_bot) { + continue; + } - members[x].member->CreateHPPacket(&hp_packet); - client->QueuePacket(&hp_packet, false); - safe_delete_array(hp_packet.pBuffer); + if (m.member && (m.member != client) && (m.group_number == group_id)) { + m.member->CreateHPPacket(&hp_packet); + client->QueuePacket(&hp_packet, false); + safe_delete_array(hp_packet.pBuffer); + hp_packet.size = 0; - hp_packet.size = 0; - if (client->ClientVersion() >= EQ::versions::ClientVersion::SoD) { + if (client->ClientVersion() >= EQ::versions::ClientVersion::SoD) { + outapp.SetOpcode(OP_MobManaUpdate); + auto mana_update = (MobManaUpdate_Struct *)outapp.pBuffer; + mana_update->spawn_id = m.member->GetID(); + mana_update->mana = m.member->GetManaPercent(); + client->QueuePacket(&outapp, false); - outapp.SetOpcode(OP_MobManaUpdate); - MobManaUpdate_Struct *mana_update = (MobManaUpdate_Struct *)outapp.pBuffer; - mana_update->spawn_id = members[x].member->GetID(); - mana_update->mana = members[x].member->GetManaPercent(); - client->QueuePacket(&outapp, false); - - outapp.SetOpcode(OP_MobEnduranceUpdate); - MobEnduranceUpdate_Struct *endurance_update = (MobEnduranceUpdate_Struct *)outapp.pBuffer; - endurance_update->endurance = members[x].member->GetEndurancePercent(); - client->QueuePacket(&outapp, false); - } + outapp.SetOpcode(OP_MobEnduranceUpdate); + auto endurance_update = (MobEnduranceUpdate_Struct *)outapp.pBuffer; + endurance_update->endurance = m.member->GetEndurancePercent(); + client->QueuePacket(&outapp, false); } } } @@ -1748,35 +1787,40 @@ void Raid::SendHPManaEndPacketsTo(Client *client) void Raid::SendHPManaEndPacketsFrom(Mob *mob) { - if(!mob) + if (!mob) { return; + } uint32 group_id = 0; - if(mob->IsClient()) + if (mob->IsClient()) { group_id = GetGroup(mob->CastToClient()); + } EQApplicationPacket hpapp; EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct)); mob->CreateHPPacket(&hpapp); - for(int x = 0; x < MAX_RAID_MEMBERS; x++) { - if(members[x].member && !members[x].IsBot) { - if(!mob->IsClient() || ((members[x].member != mob->CastToClient()) && (members[x].GroupNumber == group_id))) { - members[x].member->QueuePacket(&hpapp, false); - if (members[x].member->ClientVersion() >= EQ::versions::ClientVersion::SoD) { - outapp.SetOpcode(OP_MobManaUpdate); - MobManaUpdate_Struct *mana_update = (MobManaUpdate_Struct *)outapp.pBuffer; - mana_update->spawn_id = mob->GetID(); - mana_update->mana = mob->GetManaPercent(); - members[x].member->QueuePacket(&outapp, false); + for (const auto& m : members) { + if (m.is_bot) { + continue; + } - outapp.SetOpcode(OP_MobEnduranceUpdate); - MobEnduranceUpdate_Struct *endurance_update = (MobEnduranceUpdate_Struct *)outapp.pBuffer; - endurance_update->endurance = mob->GetEndurancePercent(); - members[x].member->QueuePacket(&outapp, false); - } + if (m.member && (!mob->IsClient() || ((m.member != mob->CastToClient()) && (m.group_number == group_id)))) { + m.member->QueuePacket(&hpapp, false); + + if (m.member->ClientVersion() >= EQ::versions::ClientVersion::SoD) { + outapp.SetOpcode(OP_MobManaUpdate); + MobManaUpdate_Struct *mana_update = (MobManaUpdate_Struct *)outapp.pBuffer; + mana_update->spawn_id = mob->GetID(); + mana_update->mana = mob->GetManaPercent(); + m.member->QueuePacket(&outapp, false); + + outapp.SetOpcode(OP_MobEnduranceUpdate); + MobEnduranceUpdate_Struct *endurance_update = (MobEnduranceUpdate_Struct *)outapp.pBuffer; + endurance_update->endurance = mob->GetEndurancePercent(); + m.member->QueuePacket(&outapp, false); } } } @@ -1784,54 +1828,62 @@ void Raid::SendHPManaEndPacketsFrom(Mob *mob) void Raid::SendManaPacketFrom(Mob *mob) { - if (!mob) + if (!mob) { return; + } uint32 group_id = 0; - if (mob->IsClient()) + if (mob->IsClient()) { group_id = GetGroup(mob->CastToClient()); + } EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct)); - for (int x = 0; x < MAX_RAID_MEMBERS; x++) { - if (members[x].member && !members[x].IsBot) { - if (!mob->IsClient() || ((members[x].member != mob->CastToClient()) && (members[x].GroupNumber == group_id))) { - if (members[x].member->ClientVersion() >= EQ::versions::ClientVersion::SoD) { - outapp.SetOpcode(OP_MobManaUpdate); - MobManaUpdate_Struct *mana_update = (MobManaUpdate_Struct *)outapp.pBuffer; - mana_update->spawn_id = mob->GetID(); - mana_update->mana = mob->GetManaPercent(); - members[x].member->QueuePacket(&outapp, false); - } - } + for (const auto& m : members) { + if (m.is_bot) { + continue; + } + + if (m.member && (!mob->IsClient() || ((m.member != mob->CastToClient()) && (m.group_number == group_id))) && + m.member->ClientVersion() >= EQ::versions::ClientVersion::SoD + ) { + outapp.SetOpcode(OP_MobManaUpdate); + MobManaUpdate_Struct *mana_update = (MobManaUpdate_Struct *)outapp.pBuffer; + mana_update->spawn_id = mob->GetID(); + mana_update->mana = mob->GetManaPercent(); + m.member->QueuePacket(&outapp, false); } } } void Raid::SendEndurancePacketFrom(Mob *mob) { - if (!mob) + if (!mob) { return; + } uint32 group_id = 0; - if (mob->IsClient()) + if (mob->IsClient()) { group_id = GetGroup(mob->CastToClient()); + } EQApplicationPacket outapp(OP_MobManaUpdate, sizeof(MobManaUpdate_Struct)); - for (int x = 0; x < MAX_RAID_MEMBERS; x++) { - if (members[x].member && !members[x].IsBot) { - if (!mob->IsClient() || ((members[x].member != mob->CastToClient()) && (members[x].GroupNumber == group_id))) { - if (members[x].member->ClientVersion() >= EQ::versions::ClientVersion::SoD) { - outapp.SetOpcode(OP_MobEnduranceUpdate); - MobEnduranceUpdate_Struct *endurance_update = (MobEnduranceUpdate_Struct *)outapp.pBuffer; - endurance_update->spawn_id = mob->GetID(); - endurance_update->endurance = mob->GetEndurancePercent(); - members[x].member->QueuePacket(&outapp, false); - } - } + for (const auto& m : members) { + if (m.is_bot) { + continue; + } + + if (m.member && (!mob->IsClient() || ((m.member != mob->CastToClient()) && (m.group_number == group_id))) && + m.member->ClientVersion() >= EQ::versions::ClientVersion::SoD + ) { + outapp.SetOpcode(OP_MobEnduranceUpdate); + auto endurance_update = (MobEnduranceUpdate_Struct *)outapp.pBuffer; + endurance_update->spawn_id = mob->GetID(); + endurance_update->endurance = mob->GetEndurancePercent(); + m.member->QueuePacket(&outapp, false); } } } @@ -1841,30 +1893,28 @@ uint16 Raid::GetAvgLevel() double levelHolder = 0; uint8 i = 0; uint8 numMem = 0; - while(i < MAX_RAID_MEMBERS) - { - if(strlen(members[i].membername)) - { + while (i < MAX_RAID_MEMBERS) { + if (strlen(members[i].member_name)) { levelHolder = levelHolder + members[i].level; numMem++; } i++; } levelHolder = ((levelHolder/(numMem))+.5); // total levels divided by num of characters - return (uint16(levelHolder)); + return uint16(levelHolder); } const char *Raid::GetClientNameByIndex(uint8 index) { - return members[index].membername; + return members[index].member_name; } -void Raid::RaidMessageString(Mob* sender, uint32 type, uint32 string_id, const char* message,const char* message2,const char* message3,const char* message4,const char* message5,const char* message6,const char* message7,const char* message8,const char* message9, uint32 distance) { - uint32 i; - for (i = 0; i < MAX_RAID_MEMBERS; i++) { - if(members[i].member && members[i].member->IsClient()) { - if(members[i].member != sender) - members[i].member->MessageString(type, string_id, message, message2, message3, message4, message5, message6, message7, message8, message9, distance); +void Raid::RaidMessageString(Mob* sender, uint32 type, uint32 string_id, const char* message,const char* message2,const char* message3,const char* message4,const char* message5,const char* message6,const char* message7,const char* message8,const char* message9, uint32 distance) +{ + for (const auto& m : members) { + if (m.member && m.member->IsClient() && m.member != sender) { + m.member->MessageString(type, string_id, message, message2, message3, message4, message5, message6, + message7, message8, message9, distance); } } } @@ -1877,6 +1927,7 @@ void Raid::LoadLeadership() for (uint32 group_id = 0; group_id < MAX_RAID_GROUPS; group_id++) { database.GetGroupLeadershipInfo(group_id, GetID(), nullptr, nullptr, nullptr, nullptr, mentor_name, &group_mentor[group_id].mentor_percent, &group_aa[group_id]); + if (strlen(mentor_name)) { group_mentor[group_id].name = mentor_name; mentor_name[0] = '\0'; @@ -1886,8 +1937,10 @@ void Raid::LoadLeadership() void Raid::SetGroupMentor(uint32 group_id, int percent, char *name) { - if (group_id > 11) + if (group_id >= MAX_RAID_GROUPS) { return; + } + group_mentor[group_id].name = name; group_mentor[group_id].mentor_percent = percent; Client *client = entity_list.GetClientByName(name); @@ -1902,8 +1955,9 @@ void Raid::SetGroupMentor(uint32 group_id, int percent, char *name) void Raid::ClearGroupMentor(uint32 group_id) { - if (group_id > 11) + if (group_id >= MAX_RAID_GROUPS) { return; + } group_mentor[group_id].name.clear(); group_mentor[group_id].mentor_percent = 0; group_mentor[group_id].mentoree = nullptr; @@ -1911,16 +1965,18 @@ void Raid::ClearGroupMentor(uint32 group_id) std::string query = StringFormat("UPDATE raid_leaders SET mentoree = '', mentor_percent = 0 WHERE gid = %i AND rid = %i LIMIT 1", group_id, GetID()); auto results = database.QueryDatabase(query); - if (!results.Success()) + if (!results.Success()) { LogError("Unable to clear raid group mentor: [{}]\n", results.ErrorMessage().c_str()); + } } // there isn't a nice place to add this in another function, unlike groups // so we do it here instead void Raid::CheckGroupMentor(uint32 group_id, Client *c) { - if (!c || group_id > 11) + if (!c || group_id >= MAX_RAID_GROUPS) { return; + } if (group_mentor[group_id].name == c->GetName()) group_mentor[group_id].mentoree = c; @@ -1928,54 +1984,61 @@ void Raid::CheckGroupMentor(uint32 group_id, Client *c) void Raid::SetDirtyAutoHaters() { - for (int i = 0; i < MAX_RAID_MEMBERS; ++i) - if (members[i].member && members[i].IsBot) - { - members[i].member->CastToBot()->SetDirtyAutoHaters(); + for (const auto& m: members) { + if (m.member && m.is_bot) { + m.member->CastToBot()->SetDirtyAutoHaters(); } - else if (members[i].member && !members[i].IsBot) - { - members[i].member->SetDirtyAutoHaters(); + else if (m.member) { + m.member->SetDirtyAutoHaters(); } + } } -void Raid::QueueClients(Mob *sender, const EQApplicationPacket *app, bool ack_required /*= true*/, bool ignore_sender /*= true*/, float distance /*= 0*/, bool group_only /*= true*/) { +void Raid::QueueClients(Mob *sender, const EQApplicationPacket *app, bool ack_required /*= true*/, bool ignore_sender /*= true*/, float distance /*= 0*/, bool group_only /*= true*/) +{ if (sender && sender->IsClient()) { - uint32 group_id = GetGroup(sender->CastToClient()); /* If this is a group only packet and we're not in a group -- return */ - if (group_id == RAID_GROUPLESS && group_only) + if (group_id == RAID_GROUPLESS && group_only) { return; + } - for (uint32 i = 0; i < MAX_RAID_MEMBERS; i++) { - if (!members[i].member) { + for (const auto& m : members) { + if (!m.member) { continue; } - if (members[i].IsBot) { + + if (m.is_bot) { continue; } - if (!members[i].member->IsClient()) { + + if (m.member->IsClient()) { continue; } - if (ignore_sender && members[i].member == sender) { + + if (ignore_sender && m.member == sender) { continue; } - if (group_only && members[i].GroupNumber != group_id) { + + if (group_only && m.group_number != group_id) { continue; } + /* If we don't have a distance requirement - send to all members */ if (distance == 0) { - members[i].member->CastToClient()->QueuePacket(app, ack_required); + m.member->CastToClient()->QueuePacket(app, ack_required); } + else { /* If negative distance - we check if current distance is greater than X */ - if (distance <= 0 && DistanceSquared(sender->GetPosition(), members[i].member->GetPosition()) >= (distance * distance)) { - members[i].member->CastToClient()->QueuePacket(app, ack_required); + if (distance <= 0 && DistanceSquared(sender->GetPosition(), m.member->GetPosition()) >= (distance * distance)) { + m.member->CastToClient()->QueuePacket(app, ack_required); } + /* If positive distance - we check if current distance is less than X */ - else if (distance >= 0 && DistanceSquared(sender->GetPosition(), members[i].member->GetPosition()) <= (distance * distance)) { - members[i].member->CastToClient()->QueuePacket(app, ack_required); + else if (distance >= 0 && DistanceSquared(sender->GetPosition(), m.member->GetPosition()) <= (distance * distance)) { + m.member->CastToClient()->QueuePacket(app, ack_required); } } } @@ -1985,79 +2048,79 @@ void Raid::QueueClients(Mob *sender, const EQApplicationPacket *app, bool ack_re std::vector Raid::GetMembers() const { std::vector raid_members; - for (int i = 0; i < MAX_RAID_MEMBERS; ++i) - { - if (members[i].membername[0]) - { - raid_members.emplace_back(members[i]); + for (const auto& m : members) { + if (m.member_name[0]) { + raid_members.emplace_back(m); } } return raid_members; } -bool Raid::DoesAnyMemberHaveExpeditionLockout( - const std::string& expedition_name, const std::string& event_name, int max_check_count) +bool Raid::DoesAnyMemberHaveExpeditionLockout(const std::string& expedition_name, const std::string& event_name, int max_check_count) { auto raid_members = GetMembers(); - if (max_check_count > 0) - { + if (max_check_count > 0) { // priority is leader, group number, then ungrouped members std::sort(raid_members.begin(), raid_members.end(), [&](const RaidMember& lhs, const RaidMember& rhs) { - if (lhs.IsRaidLeader) { + if (lhs.is_raid_leader) { return true; - } else if (rhs.IsRaidLeader) { + } else if (rhs.is_raid_leader) { return false; } - return lhs.GroupNumber < rhs.GroupNumber; + return lhs.group_number < rhs.group_number; }); raid_members.resize(max_check_count); } return std::any_of(raid_members.begin(), raid_members.end(), [&](const RaidMember& raid_member) { - return Expedition::HasLockoutByCharacterName(raid_member.membername, expedition_name, event_name); + return Expedition::HasLockoutByCharacterName(raid_member.member_name, expedition_name, event_name); }); } -Mob* Raid::GetRaidMainAssistOneByName(const char* name) +Mob* Raid::GetRaidMainAssistOne() { - Raid* raid = entity_list.GetRaidByBotName(name); - std::vector raid_members = raid->GetMembers(); - - for (RaidMember iter : raid_members) - { - if (iter.IsRaidMainAssistOne) { - return iter.member->CastToMob(); + for (const auto& m : GetMembers()) { + if (m.is_raid_main_assist_one) { + return m.member->CastToMob(); } } return nullptr; } -bool Raid::IsEngaged() { - std::vector rm = GetMembers(); - for (const auto& m : rm) { - if (m.member && !m.IsBot && (m.member->IsEngaged() || m.member->GetAggroCount() > 0)) { - return 1; +bool Raid::IsEngaged() +{ + + for (const auto& m : GetMembers()) { + if (m.is_bot) { + continue; + } + + if (m.member && (m.member->IsEngaged() || m.member->GetAggroCount() > 0)) { + return true; } } - return 0; + return false; } + void Raid::RaidGroupSay(const char* msg, const char* from, uint8 language, uint8 lang_skill) { - if (!from) + if (!from) { return; + } - uint32 groupToUse = GetGroup(from); + uint32 group_id_to_use = GetGroup(from); - if (groupToUse > 11) + if (group_id_to_use >= MAX_RAID_GROUPS) { return; + } auto pack = new ServerPacket(ServerOP_RaidGroupSay, sizeof(ServerRaidMessage_Struct) + strlen(msg) + 1); - ServerRaidMessage_Struct* rga = (ServerRaidMessage_Struct*)pack->pBuffer; + auto rga = (ServerRaidMessage_Struct*)pack->pBuffer; rga->rid = GetID(); - rga->gid = groupToUse; + rga->gid = group_id_to_use; rga->language = language; rga->lang_skill = lang_skill; strn0cpy(rga->from, from, 64); @@ -2069,11 +2132,12 @@ void Raid::RaidGroupSay(const char* msg, const char* from, uint8 language, uint8 } void Raid::RaidSay(const char* msg, const char* from, uint8 language, uint8 lang_skill) { - if (!from) + if (!from) { return; + } auto pack = new ServerPacket(ServerOP_RaidSay, sizeof(ServerRaidMessage_Struct) + strlen(msg) + 1); - ServerRaidMessage_Struct* rga = (ServerRaidMessage_Struct*)pack->pBuffer; + auto rga = (ServerRaidMessage_Struct*)pack->pBuffer; rga->rid = GetID(); rga->gid = RAID_GROUPLESS; rga->language = language; @@ -2088,15 +2152,17 @@ void Raid::RaidSay(const char* msg, const char* from, uint8 language, uint8 lang void Raid::SetNewRaidLeader(uint32 i) { - if (members[i].IsRaidLeader) { - for (int x = 0; x < MAX_RAID_MEMBERS; x++) { - if (!members[x].IsBot) { - if (strlen(members[x].membername) > 0 && strcmp(members[x].membername, members[i].membername) != 0) { - SetRaidLeader(members[i].membername, members[x].membername); - UpdateRaidAAs(); - SendAllRaidLeadershipAA(); - break; - } + if (members[i].is_raid_leader) { + for (const auto& m : members) { + if (m.is_bot) { + continue; + } + + if (m.member && strlen(m.member_name) > 0 && strcmp(m.member_name, m.member_name) != 0) { + SetRaidLeader(members[i].member_name, m.member_name); + UpdateRaidAAs(); + SendAllRaidLeadershipAA(); + break; } } } diff --git a/zone/raids.h b/zone/raids.h index 52bbc3b3a..b8eadbc7b 100644 --- a/zone/raids.h +++ b/zone/raids.h @@ -75,21 +75,21 @@ enum { //raid command types RaidCommandSetNote = 36, }; -#define MAX_RAID_GROUPS 12 -#define MAX_RAID_MEMBERS 72 +constexpr uint8_t MAX_RAID_GROUPS = 12; +constexpr uint8_t MAX_RAID_MEMBERS = 72; const uint32 RAID_GROUPLESS = 0xFFFFFFFF; struct RaidMember{ - char membername[64]; + char member_name[64]; Client *member; - uint32 GroupNumber; + uint32 group_number; uint8 _class; uint8 level; - bool IsGroupLeader; - bool IsRaidLeader; - bool IsLooter; - bool IsBot = false; - bool IsRaidMainAssistOne = false; + bool is_group_leader; + bool is_raid_leader; + bool is_looter; + bool is_bot = false; + bool is_raid_main_assist_one = false; }; struct GroupMentor { @@ -115,12 +115,12 @@ public: bool IsRaid() { return true; } void AddMember(Client *c, uint32 group = 0xFFFFFFFF, bool rleader=false, bool groupleader=false, bool looter=false); - void AddBot(Bot* b, uint32 group = 0xFFFFFFFF, bool rleader=false, bool groupleader=false, bool looter=false); + void AddBot(Bot* b, uint32 group = 0xFFFFFFFF, bool raid_leader=false, bool group_leader=false, bool looter=false); void RaidGroupSay(const char* msg, const char* from, uint8 language, uint8 lang_skill); void RaidSay(const char* msg, const char* from, uint8 language, uint8 lang_skill); bool IsEngaged(); - Mob* GetRaidMainAssistOneByName(const char* name); - void RemoveMember(const char *c); + Mob* GetRaidMainAssistOne(); + void RemoveMember(const char *character_name); void DisbandRaid(); void MoveMember(const char *name, uint32 newGroup); void SetGroupLeader(const char *who, bool glFlag = true); diff --git a/zone/spell_effects.cpp b/zone/spell_effects.cpp index 096fa2e63..a83240480 100644 --- a/zone/spell_effects.cpp +++ b/zone/spell_effects.cpp @@ -697,7 +697,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove uint32 gid = raid->GetGroup(caster->CastToClient()); if (gid < 12) for (int i = 0; i < MAX_RAID_MEMBERS; ++i) - if (raid->members[i].member && raid->members[i].GroupNumber == gid) + if (raid->members[i].member && raid->members[i].group_number == gid) raid->members[i].member->aa_timers[aaTimerWarcry].Start(time); } } diff --git a/zone/spells.cpp b/zone/spells.cpp index c8fdf9f08..0a63370b8 100644 --- a/zone/spells.cpp +++ b/zone/spells.cpp @@ -496,7 +496,7 @@ bool Mob::DoCastSpell(uint16 spell_id, uint16 target_id, CastingSlot slot, void Mob::DoSpellInterrupt(uint16 spell_id, int32 mana_cost, int my_curmana) { //The client will prevent spell casting if insufficient mana, this is only for serverside enforcement. - LogSpells("Spell Error not enough mana spell=[{}] mymana=[{}] cost=[{}]\n", spell_id, my_curmana, mana_cost); + LogSpells("Not enough mana spell [{}] curmana [{}] cost [{}]\n", spell_id, my_curmana, mana_cost); if (IsClient()) { //clients produce messages... npcs should not for this case MessageString(Chat::Red, INSUFFICIENT_MANA); diff --git a/zone/worldserver.cpp b/zone/worldserver.cpp index 5a5025ac4..70013c3e6 100644 --- a/zone/worldserver.cpp +++ b/zone/worldserver.cpp @@ -1121,8 +1121,9 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) Client *client = entity_list.GetClientByName(sgfas->Name); - if (!client) + if (!client) { break; + } uint32 groupid = database.GetGroupID(client->GetName()); @@ -1445,7 +1446,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) if (r->members[x].member) { if (strcmp(r->members[x].member->GetName(), rga->membername) != 0) { - if ((rga->gid < 12) && rga->gid == r->members[x].GroupNumber) + if ((rga->gid < 12) && rga->gid == r->members[x].group_number) { strn0cpy(gj->yourname, r->members[x].member->GetName(), 64); r->members[x].member->QueuePacket(outapp); @@ -1475,7 +1476,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) if (r->members[x].member) { if (strcmp(r->members[x].member->GetName(), rga->membername) != 0) { - if ((rga->gid < 12) && rga->gid == r->members[x].GroupNumber) + if ((rga->gid < 12) && rga->gid == r->members[x].group_number) { strn0cpy(gj->yourname, r->members[x].member->GetName(), 64); r->members[x].member->QueuePacket(outapp); @@ -1499,8 +1500,8 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) if (r->members[x].member) { if (strcmp(rmsg->from, r->members[x].member->GetName()) != 0) { - if (r->members[x].GroupNumber == rmsg->gid) { - if (!r->members[x].IsBot && r->members[x].member->GetFilter(FilterGroupChat) != 0) + if (r->members[x].group_number == rmsg->gid) { + if (!r->members[x].is_bot && r->members[x].member->GetFilter(FilterGroupChat) != 0) { r->members[x].member->ChannelMessageSend(rmsg->from, r->members[x].member->GetName(), ChatChannel_Group, rmsg->language, rmsg->lang_skill, rmsg->message); } @@ -1524,7 +1525,7 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) if (r->members[x].member) { if (strcmp(rmsg->from, r->members[x].member->GetName()) != 0) { - if (!r->members[x].IsBot && r->members[x].member->GetFilter(FilterGroupChat) != 0) + if (!r->members[x].is_bot && r->members[x].member->GetFilter(FilterGroupChat) != 0) { r->members[x].member->ChannelMessageSend(rmsg->from, r->members[x].member->GetName(), ChatChannel_Raid, rmsg->language, rmsg->lang_skill, rmsg->message); }