LearnMembers converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-10-07 11:26:03 -07:00
parent 4b1d3592d4
commit a90babbae1

View File

@ -1256,39 +1256,43 @@ void Raid::GetRaidDetails()
bool Raid::LearnMembers() bool Raid::LearnMembers()
{ {
memset(members, 0, (sizeof(RaidMember)*MAX_RAID_MEMBERS)); memset(members, 0, (sizeof(RaidMember)*MAX_RAID_MEMBERS));
char errbuf[MYSQL_ERRMSG_SIZE];
char* query = 0; std::string query = StringFormat("SELECT name, groupid, _class, level, "
MYSQL_RES *result; "isgroupleader, israidleader, islooter "
MYSQL_ROW row; "FROM raid_members WHERE raidid = %lu",
if (database.RunQuery(query,MakeAnyLenString(&query, "SELECT name, groupid, _class, level, isgroupleader, israidleader, islooter FROM raid_members WHERE raidid=%lu", (unsigned long)GetID()),errbuf,&result)){ (unsigned long)GetID());
safe_delete_array(query); auto results = database.QueryDatabase(query);
if(mysql_num_rows(result) < 1) { if (!results.Success())
mysql_free_result(result); return false;
LogFile->write(EQEMuLog::Error, "Error getting raid members for raid %lu: %s", (unsigned long)GetID(), errbuf);
if(results.RowCount() == 0) {
LogFile->write(EQEMuLog::Error, "Error getting raid members for raid %lu: %s", (unsigned long)GetID(), results.ErrorMessage().c_str());
disbandCheck = true; disbandCheck = true;
return(false); return false;
} }
int i = 0;
while((row = mysql_fetch_row(result))) { int index = 0;
for(auto row = results.begin(); row != results.end(); ++row) {
if(!row[0]) if(!row[0])
continue; continue;
members[i].member = nullptr;
strn0cpy(members[i].membername, row[0], 64); members[index].member = nullptr;
int GroupNum = atoi(row[1]); strn0cpy(members[index].membername, row[0], 64);
if(GroupNum > 11) int groupNum = atoi(row[1]);
members[i].GroupNumber = 0xFFFFFFFF; if(groupNum > 11)
members[index].GroupNumber = 0xFFFFFFFF;
else else
members[i].GroupNumber = GroupNum; members[index].GroupNumber = groupNum;
members[i]._class = atoi(row[2]);
members[i].level = atoi(row[3]); members[index]._class = atoi(row[2]);
members[i].IsGroupLeader = atoi(row[4]); members[index].level = atoi(row[3]);
members[i].IsRaidLeader = atoi(row[5]); members[index].IsGroupLeader = atoi(row[4]);
members[i].IsLooter = atoi(row[6]); members[index].IsRaidLeader = atoi(row[5]);
i++; members[index].IsLooter = atoi(row[6]);
++index;
} }
mysql_free_result(result);
} return true;
return(true);
} }
void Raid::VerifyRaid() void Raid::VerifyRaid()