[Cleanup] Cleaning up Raid.cpp (#3125)

* [Cleanup] Cleanup Raid.cpp

* cleanup

* fix is_bot instances

* bracket cleanup

* bracket cleanup

* rename variables in struct

* fix for merge
This commit is contained in:
Aeadoin 2023-03-20 11:39:14 -04:00 committed by GitHub
parent 2415645b86
commit d6b954a4b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 846 additions and 779 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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) {

View File

@ -571,7 +571,9 @@ void Clientlist::CheckForStaleConnectionsAll()
void Clientlist::CheckForStaleConnections(Client *c) {
if (!c) return;
if (!c) {
return;
}
std::list<Client*>::iterator Iterator;

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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)
{

View File

@ -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;
}

View File

@ -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<Bot*>::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:

View File

@ -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<RaidMember> Raid::GetRaidGroupMembers(uint32 gid)
{
std::vector<RaidMember> 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<Bot*> Raid::GetRaidBotMembers(uint32 owner)
std::vector<Bot*> 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<Bot*> Raid::GetRaidGroupBotMembers(uint32 gid)
std::vector<Bot*> 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);

View File

@ -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<AggroMeter::AggroTypes>(at_id), cur_tar->GetHateRatio(cur_tar->GetTarget(), raid->members[i].member)))
add_entry(static_cast<AggroMeter::AggroTypes>(at_id));
at_id++;

View File

@ -612,15 +612,15 @@ void Client::CompleteConnect()
database.botdb.LoadBotsList(this->CharacterID(), bots_list);
std::vector<RaidMember> 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();

View File

@ -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);

View File

@ -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;
}

View File

@ -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<RaidMember> rm;
auto GetMembersWithNames = [&rm](Raid const* r) -> std::list<RaidMember> {
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<RaidMember> rm;
auto GetMembersWhoAreBots = [&rm](Raid* r) -> std::list<RaidMember> {
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();

View File

@ -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());

View File

@ -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;
}

View File

@ -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<std::string> 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);

View File

@ -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.
*/

View File

@ -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)

View File

@ -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;

View File

@ -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()

File diff suppressed because it is too large Load Diff

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);
}