mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-13 06:42:26 +00:00
LoadSkillCaps converted to QueryDatabase
This commit is contained in:
parent
5cbae2b833
commit
1366774931
@ -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))) {
|
|
||||||
uint8 skillID = atoi(row[0]);
|
|
||||||
uint8 class_ = atoi(row[1]) - 1;
|
|
||||||
uint8 level = atoi(row[2]);
|
|
||||||
uint16 cap = atoi(row[3]);
|
|
||||||
if(skillID >= skill_count || class_ >= class_count || level >= level_count)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
uint32 index = (((class_ * skill_count) + skillID) * level_count) + level;
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(auto row = results.begin(); row != results.end(); ++row) {
|
||||||
|
uint8 skillID = atoi(row[0]);
|
||||||
|
uint8 class_ = atoi(row[1]) - 1;
|
||||||
|
uint8 level = atoi(row[2]);
|
||||||
|
uint16 cap = atoi(row[3]);
|
||||||
|
|
||||||
|
if(skillID >= skill_count || class_ >= class_count || level >= level_count)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
uint32 index = (((class_ * skill_count) + skillID) * level_count) + level;
|
||||||
|
skill_caps_table[index] = cap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16 SharedDatabase::GetSkillCap(uint8 Class_, SkillUseTypes Skill, uint8 Level) {
|
uint16 SharedDatabase::GetSkillCap(uint8 Class_, SkillUseTypes Skill, uint8 Level) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user