LoadPetItems converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-09-03 15:38:15 -07:00
parent a486db5e95
commit 364a51b119

View File

@ -2645,50 +2645,29 @@ void Bot::LoadPetBuffs(SpellBuff_Struct* petBuffs, uint32 botPetSaveId) {
} }
void Bot::LoadPetItems(uint32* petItems, uint32 botPetSaveId) { void Bot::LoadPetItems(uint32* petItems, uint32 botPetSaveId) {
if(petItems && botPetSaveId > 0) { if(!petItems || botPetSaveId == 0)
std::string errorMessage; return;
char* Query = 0;
char TempErrorMessageBuffer[MYSQL_ERRMSG_SIZE];
MYSQL_RES* DatasetResult;
MYSQL_ROW DataRow;
bool itemsLoaded = false; std::string query = StringFormat("SELECT ItemId FROM botpetinventory "
"WHERE BotPetsId = %u;", botPetSaveId);
auto results = database.QueryDatabase(query);
if(!results.Success())
return;
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "SELECT ItemId FROM botpetinventory WHERE BotPetsId = %u;", botPetSaveId), TempErrorMessageBuffer, &DatasetResult)) { int itemIndex = 0;
errorMessage = std::string(TempErrorMessageBuffer);
}
else {
int ItemCount = 0;
while(DataRow = mysql_fetch_row(DatasetResult)) { for(auto row = results.begin(); row != results.end(); ++row) {
if(ItemCount == EmuConstants::EQUIPMENT_SIZE) if(itemIndex == EmuConstants::EQUIPMENT_SIZE)
break; break;
petItems[ItemCount] = atoi(DataRow[0]); petItems[itemIndex] = atoi(row[0]);
ItemCount++; itemIndex++;
} }
mysql_free_result(DatasetResult); query = StringFormat("DELETE FROM botpetinventory WHERE BotPetsId = %u;", botPetSaveId);
results = database.QueryDatabase(query);
itemsLoaded = true;
}
safe_delete(Query);
Query = 0;
if(errorMessage.empty() && itemsLoaded) {
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "DELETE FROM botpetinventory 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
}
}
} }
void Bot::SavePet() { void Bot::SavePet() {