LoadTaskSets converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-10-07 11:36:42 -07:00
parent 2bee906784
commit be7d2e9457

View File

@ -60,41 +60,32 @@ TaskManager::~TaskManager() {
}
bool TaskManager::LoadTaskSets() {
const char *TaskSetQuery = "SELECT `id`, `taskid` from `tasksets` WHERE `id` > 0 AND `id` < %i "
"AND `taskid` >= 0 AND `taskid` < %i ORDER BY `id`, `taskid` ASC";
const char *ERR_MYSQLERROR = "[TASKS]Error in TaskManager::LoadTaskSets: %s";
char errbuf[MYSQL_ERRMSG_SIZE];
char* query = 0;
MYSQL_RES *result;
MYSQL_ROW row;
// Clear all task sets in memory. Done so we can reload them on the fly if required by just calling
// this method again.
for(int i=0; i<MAXTASKSETS; i++) {
for(int i=0; i<MAXTASKSETS; i++)
TaskSets[i].clear();
}
if(database.RunQuery(query,MakeAnyLenString(&query,TaskSetQuery,MAXTASKSETS,MAXTASKS),errbuf,&result)) {
while((row = mysql_fetch_row(result))) {
int TaskSet = atoi(row[0]);
int TaskID = atoi(row[1]);
TaskSets[TaskSet].push_back(TaskID);
_log(TASKS__GLOBALLOAD, "Adding TaskID %4i to TaskSet %4i", TaskID, TaskSet);
}
mysql_free_result(result);
safe_delete_array(query);
}
else {
LogFile->write(EQEMuLog::Error, ERR_MYSQLERROR, errbuf);
safe_delete_array(query);
std::string query = StringFormat("SELECT `id`, `taskid` from `tasksets` "
"WHERE `id` > 0 AND `id` < %i "
"AND `taskid` >= 0 AND `taskid` < %i "
"ORDER BY `id`, `taskid` ASC",
MAXTASKSETS, MAXTASKS);
auto results = database.QueryDatabase(query);
if (!results.Success()) {
LogFile->write(EQEMuLog::Error, "[TASKS]Error in TaskManager::LoadTaskSets: %s", results.ErrorMessage().c_str());
return false;
}
return true;
for (auto row = results.begin(); row != results.end(); ++row) {
int taskSet = atoi(row[0]);
int taskID = atoi(row[1]);
TaskSets[taskSet].push_back(taskID);
_log(TASKS__GLOBALLOAD, "Adding TaskID %4i to TaskSet %4i", taskID, taskSet);
}
return true;
}
bool TaskManager::LoadSingleTask(int TaskID) {