LoadPetBuffs converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-09-03 15:28:13 -07:00
parent c8e7d9e005
commit a486db5e95

View File

@ -2616,52 +2616,32 @@ void Bot::LoadPetStats(std::string* petName, uint16* petMana, uint16* petHitPoin
} }
void Bot::LoadPetBuffs(SpellBuff_Struct* petBuffs, uint32 botPetSaveId) { void Bot::LoadPetBuffs(SpellBuff_Struct* petBuffs, uint32 botPetSaveId) {
if(petBuffs && botPetSaveId > 0) { if(!petBuffs || botPetSaveId == 0)
std::string errorMessage; return;
char* Query = 0;
char TempErrorMessageBuffer[MYSQL_ERRMSG_SIZE];
MYSQL_RES* DatasetResult;
MYSQL_ROW DataRow;
bool BuffsLoaded = false; std::string query = StringFormat("SELECT SpellId, CasterLevel, Duration "
"FROM botpetbuffs WHERE BotPetsId = %u;", botPetSaveId);
auto results = database.QueryDatabase(query);
if(!results.Success())
return;
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "SELECT SpellId, CasterLevel, Duration FROM botpetbuffs WHERE BotPetsId = %u;", botPetSaveId), TempErrorMessageBuffer, &DatasetResult)) {
errorMessage = std::string(TempErrorMessageBuffer);
}
else {
int BuffCount = 0;
while(DataRow = mysql_fetch_row(DatasetResult)) { int buffIndex = 0;
if(BuffCount == BUFF_COUNT)
break;
petBuffs[BuffCount].spellid = atoi(DataRow[0]); for (auto row = results.begin();row != results.end(); ++row) {
petBuffs[BuffCount].level = atoi(DataRow[1]); if(buffIndex == BUFF_COUNT)
petBuffs[BuffCount].duration = atoi(DataRow[2]); break;
BuffCount++; petBuffs[buffIndex].spellid = atoi(row[0]);
} petBuffs[buffIndex].level = atoi(row[1]);
petBuffs[buffIndex].duration = atoi(row[2]);
mysql_free_result(DatasetResult); buffIndex++;
BuffsLoaded = true;
}
safe_delete(Query);
Query = 0;
if(errorMessage.empty() && BuffsLoaded) {
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "DELETE FROM botpetbuffs WHERE BotPetsId = %u;", botPetSaveId), TempErrorMessageBuffer)) {
errorMessage = std::string(TempErrorMessageBuffer);
safe_delete(Query);
Query = 0;
}
}
if(!errorMessage.empty()) {
// TODO: Record this error message to zone error log
}
} }
query = StringFormat("DELETE FROM botpetbuffs WHERE BotPetsId = %u;", botPetSaveId);
results = database.QueryDatabase(query);
} }
void Bot::LoadPetItems(uint32* petItems, uint32 botPetSaveId) { void Bot::LoadPetItems(uint32* petItems, uint32 botPetSaveId) {