LoadSkillCaps converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-10-04 14:13:05 -07:00
parent 5cbae2b833
commit 1366774931

View File

@ -1287,31 +1287,25 @@ void SharedDatabase::LoadSkillCaps(void *data) {
uint32 level_count = HARD_LEVEL_CAP + 1; uint32 level_count = HARD_LEVEL_CAP + 1;
uint16 *skill_caps_table = reinterpret_cast<uint16*>(data); uint16 *skill_caps_table = reinterpret_cast<uint16*>(data);
char errbuf[MYSQL_ERRMSG_SIZE]; const std::string query = "SELECT skillID, class, level, cap FROM skill_caps ORDER BY skillID, class, level";
char *query = 0; auto results = QueryDatabase(query);
MYSQL_RES *result; if (!results.Success()) {
MYSQL_ROW row; LogFile->write(EQEMuLog::Error, "Error loading skill caps from database: %s", results.ErrorMessage().c_str());
if(RunQuery(query, MakeAnyLenString(&query, return;
"SELECT skillID, class, level, cap FROM skill_caps ORDER BY skillID, class, level"), }
errbuf, &result)) {
safe_delete_array(query);
while((row = mysql_fetch_row(result))) { for(auto row = results.begin(); row != results.end(); ++row) {
uint8 skillID = atoi(row[0]); uint8 skillID = atoi(row[0]);
uint8 class_ = atoi(row[1]) - 1; uint8 class_ = atoi(row[1]) - 1;
uint8 level = atoi(row[2]); uint8 level = atoi(row[2]);
uint16 cap = atoi(row[3]); uint16 cap = atoi(row[3]);
if(skillID >= skill_count || class_ >= class_count || level >= level_count) if(skillID >= skill_count || class_ >= class_count || level >= level_count)
continue; continue;
uint32 index = (((class_ * skill_count) + skillID) * level_count) + level; uint32 index = (((class_ * skill_count) + skillID) * level_count) + level;
skill_caps_table[index] = cap; skill_caps_table[index] = cap;
} }
mysql_free_result(result);
} else {
LogFile->write(EQEMuLog::Error, "Error loading skill caps from database: %s", errbuf);
safe_delete_array(query);
}
} }
uint16 SharedDatabase::GetSkillCap(uint8 Class_, SkillUseTypes Skill, uint8 Level) { uint16 SharedDatabase::GetSkillCap(uint8 Class_, SkillUseTypes Skill, uint8 Level) {