diff --git a/zone/QGlobals.cpp b/zone/QGlobals.cpp index b14713c81..9146340a3 100644 --- a/zone/QGlobals.cpp +++ b/zone/QGlobals.cpp @@ -152,21 +152,15 @@ void QGlobalCache::LoadByNPCID(uint32 npcID) void QGlobalCache::LoadByCharID(uint32 charID) { - char errbuf[MYSQL_ERRMSG_SIZE]; - char *query = 0; - MYSQL_RES *result; - MYSQL_ROW row; + std::string query = StringFormat("SELECT name, charid, npcid, zoneid, value, expdate " + "FROM quest_globals WHERE charid = %d && npcid = 0", charID); + auto results = database.QueryDatabase(query); + if (!results.Success()) + return; + + for (auto row = results.begin(); row != results.end(); ++row) + AddGlobal(0, QGlobal(std::string(row[0]), atoi(row[1]), atoi(row[2]), atoi(row[3]), row[4], row[5]? atoi(row[5]): 0xFFFFFFFF)); - if (database.RunQuery(query, MakeAnyLenString(&query, "select name, charid, npcid, zoneid, value, expdate from" - " quest_globals where charid = %d && npcid = 0", charID), errbuf, &result)) - { - while((row = mysql_fetch_row(result))) - { - AddGlobal(0, QGlobal(std::string(row[0]), atoi(row[1]), atoi(row[2]), atoi(row[3]), row[4], row[5]?atoi(row[5]):0xFFFFFFFF)); - } - mysql_free_result(result); - } - safe_delete_array(query); } void QGlobalCache::LoadByZoneID(uint32 zoneID)