From 826f7d0efd0ff4d0ffe0e3c01be56d493b3a0bd8 Mon Sep 17 00:00:00 2001 From: Arthur Ice Date: Wed, 20 Aug 2014 16:00:36 -0700 Subject: [PATCH] LoadMercSpells converted to QueryDatabase --- zone/zone.cpp | 60 ++++++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/zone/zone.cpp b/zone/zone.cpp index da044beee..f50b2a095 100644 --- a/zone/zone.cpp +++ b/zone/zone.cpp @@ -628,46 +628,38 @@ void Zone::LoadLevelEXPMods(){ void Zone::LoadMercSpells(){ - std::string errorMessage; - char* Query = 0; - char TempErrorMessageBuffer[MYSQL_ERRMSG_SIZE]; - MYSQL_RES* DatasetResult; - MYSQL_ROW DataRow; merc_spells_list.clear(); + const std::string query = "SELECT msl.class_id, msl.proficiency_id, msle.spell_id, msle.spell_type, " + "msle.stance_id, msle.minlevel, msle.maxlevel, msle.slot, msle.procChance " + "FROM merc_spell_lists msl, merc_spell_list_entries msle " + "WHERE msle.merc_spell_list_id = msl.merc_spell_list_id " + "ORDER BY msl.class_id, msl.proficiency_id, msle.spell_type, msle.minlevel, msle.slot;"; + auto results = database.QueryDatabase(query); + if (!results.Success()) { + LogFile->write(EQEMuLog::Error, "Error in Zone::LoadMercSpells()"); + return; + } - if(!database.RunQuery(Query, MakeAnyLenString(&Query, "SELECT msl.class_id, msl.proficiency_id, msle.spell_id, msle.spell_type, msle.stance_id, msle.minlevel, msle.maxlevel, msle.slot, msle.procChance FROM merc_spell_lists msl, merc_spell_list_entries msle WHERE msle.merc_spell_list_id = msl.merc_spell_list_id ORDER BY msl.class_id, msl.proficiency_id, msle.spell_type, msle.minlevel, msle.slot;"), TempErrorMessageBuffer, &DatasetResult)) { - errorMessage = std::string(TempErrorMessageBuffer); - } - else { - while(DataRow = mysql_fetch_row(DatasetResult)) { - uint32 classid; - MercSpellEntry tempMercSpellEntry; + for (auto row = results.begin(); row != results.end(); ++row) { + uint32 classid; + MercSpellEntry tempMercSpellEntry; - classid = atoi(DataRow[0]); - tempMercSpellEntry.proficiencyid = atoi(DataRow[1]); - tempMercSpellEntry.spellid = atoi(DataRow[2]); - tempMercSpellEntry.type = atoi(DataRow[3]); - tempMercSpellEntry.stance = atoi(DataRow[4]); - tempMercSpellEntry.minlevel = atoi(DataRow[5]); - tempMercSpellEntry.maxlevel = atoi(DataRow[6]); - tempMercSpellEntry.slot = atoi(DataRow[7]); - tempMercSpellEntry.proc_chance = atoi(DataRow[8]); + classid = atoi(row[0]); + tempMercSpellEntry.proficiencyid = atoi(row[1]); + tempMercSpellEntry.spellid = atoi(row[2]); + tempMercSpellEntry.type = atoi(row[3]); + tempMercSpellEntry.stance = atoi(row[4]); + tempMercSpellEntry.minlevel = atoi(row[5]); + tempMercSpellEntry.maxlevel = atoi(row[6]); + tempMercSpellEntry.slot = atoi(row[7]); + tempMercSpellEntry.proc_chance = atoi(row[8]); - merc_spells_list[classid].push_back(tempMercSpellEntry); - } + merc_spells_list[classid].push_back(tempMercSpellEntry); + } - mysql_free_result(DatasetResult); + if(MERC_DEBUG > 0) + LogFile->write(EQEMuLog::Debug, "Mercenary Debug: Loaded %i merc spells.", merc_spells_list[1].size() + merc_spells_list[2].size() + merc_spells_list[9].size() + merc_spells_list[12].size()); - if(MERC_DEBUG > 0) - LogFile->write(EQEMuLog::Debug, "Mercenary Debug: Loaded %i merc spells.", merc_spells_list[1].size() + merc_spells_list[2].size() + merc_spells_list[9].size() + merc_spells_list[12].size()); - } - - safe_delete_array(Query); - Query = 0; - - if(!errorMessage.empty()) { - LogFile->write(EQEMuLog::Error, "Error in Zone::LoadMercSpells()"); - } } void Zone::DBAWComplete(uint8 workpt_b1, DBAsyncWork* dbaw) {