mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 13:41:31 +00:00
[Crash] Resolve crash when assigning empty raid note. (#3628)
* [Crash] Resolve crash when assigning empty raid note. * const
This commit is contained in:
parent
16ab1839e8
commit
c203fec9b4
@ -1707,34 +1707,31 @@ bool Raid::LearnMembers()
|
|||||||
{
|
{
|
||||||
memset(members, 0, (sizeof(RaidMember) * MAX_RAID_MEMBERS));
|
memset(members, 0, (sizeof(RaidMember) * MAX_RAID_MEMBERS));
|
||||||
|
|
||||||
const auto query = fmt::format(
|
auto raid_members = RaidMembersRepository::GetWhere(
|
||||||
"SELECT name, groupid, _class, level, "
|
content_db,
|
||||||
"isgroupleader, israidleader, islooter, is_marker, is_assister, bot_id, note "
|
fmt::format(
|
||||||
"FROM raid_members WHERE raidid = {} ORDER BY groupid",
|
"raidid = {}",
|
||||||
GetID()
|
GetID()
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
auto results = database.QueryDatabase(query);
|
if (raid_members.empty()) {
|
||||||
if (!results.Success()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!results.RowCount()) {
|
|
||||||
disbandCheck = true;
|
disbandCheck = true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (auto row: results) {
|
for (const auto &e: raid_members) {
|
||||||
if (!row[0]) {
|
if (e.name.empty()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
members[i].member = nullptr;
|
members[i].member = nullptr;
|
||||||
strn0cpy(members[i].member_name, row[0], sizeof(members[i].member_name));
|
strn0cpy(members[i].member_name, e.name.c_str(), sizeof(members[i].member_name));
|
||||||
// strn0cpy(members[i].note, row[10], sizeof(members[i].note));
|
uint32 group_id = e.groupid;
|
||||||
members[i].note = std::string(row[10]);
|
if (!e.note.empty()) {
|
||||||
uint32 group_id = Strings::ToUnsignedInt(row[1]);
|
members[i].note = e.note;
|
||||||
|
}
|
||||||
|
|
||||||
if (group_id >= MAX_RAID_GROUPS) {
|
if (group_id >= MAX_RAID_GROUPS) {
|
||||||
members[i].group_number = RAID_GROUPLESS;
|
members[i].group_number = RAID_GROUPLESS;
|
||||||
@ -1743,14 +1740,14 @@ bool Raid::LearnMembers()
|
|||||||
members[i].group_number = group_id;
|
members[i].group_number = group_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
members[i]._class = Strings::ToUnsignedInt(row[2]);
|
members[i]._class = e._class;
|
||||||
members[i].level = Strings::ToUnsignedInt(row[3]);
|
members[i].level = e.level;
|
||||||
members[i].is_group_leader = Strings::ToBool(row[4]);
|
members[i].is_group_leader = e.isgroupleader;
|
||||||
members[i].is_raid_leader = Strings::ToBool(row[5]);
|
members[i].is_raid_leader = e.israidleader;
|
||||||
members[i].is_looter = Strings::ToBool(row[6]);
|
members[i].is_looter = e.islooter;
|
||||||
members[i].main_marker = Strings::ToUnsignedInt(row[7]);
|
members[i].main_marker = e.is_marker;
|
||||||
members[i].main_assister = Strings::ToUnsignedInt(row[8]);
|
members[i].main_assister = e.is_assister;
|
||||||
members[i].is_bot = Strings::ToBool(row[9]) > 0;
|
members[i].is_bot = e.bot_id > 0;
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user