Merge pull request #208 from addtheice/RunQueryToDatabaseQuery_zone_trap

Run query to database query zone trap
This commit is contained in:
Alex 2014-08-24 11:18:25 -07:00
commit 339b8e37a6

View File

@ -262,19 +262,17 @@ Mob* EntityList::GetTrapTrigger(Trap* trap) {
//todo: rewrite this to not need direct access to trap members. //todo: rewrite this to not need direct access to trap members.
bool ZoneDatabase::LoadTraps(const char* zonename, int16 version) { bool ZoneDatabase::LoadTraps(const char* zonename, int16 version) {
char errbuf[MYSQL_ERRMSG_SIZE];
char *query = 0;
MYSQL_RES *result;
MYSQL_ROW row;
// int char_num = 0; std::string query = StringFormat("SELECT id, x, y, z, effect, effectvalue, effectvalue2, skill, "
unsigned long* lengths; "maxzdiff, radius, chance, message, respawn_time, respawn_var, level "
"FROM traps WHERE zone='%s' AND version=%u", zonename, version);
auto results = QueryDatabase(query);
if (!results.Success()) {
LogFile->write(EQEMuLog::Error, "Error in LoadTraps query '%s': %s", query.c_str(), results.ErrorMessage().c_str());
return false;
}
if (RunQuery(query, MakeAnyLenString(&query, "SELECT id,x,y,z,effect,effectvalue,effectvalue2,skill,maxzdiff,radius,chance,message,respawn_time,respawn_var,level FROM traps WHERE zone='%s' AND version=%u", zonename, version), errbuf, &result)) { for (auto row = results.begin(); row != results.end(); ++row) {
safe_delete_array(query);
while ((row = mysql_fetch_row(result)))
{
lengths = mysql_fetch_lengths(result);
Trap* trap = new Trap(); Trap* trap = new Trap();
trap->trap_id = atoi(row[0]); trap->trap_id = atoi(row[0]);
trap->x = atof(row[1]); trap->x = atof(row[1]);
@ -294,13 +292,6 @@ bool ZoneDatabase::LoadTraps(const char* zonename, int16 version) {
entity_list.AddTrap(trap); entity_list.AddTrap(trap);
trap->CreateHiddenTrigger(); trap->CreateHiddenTrigger();
} }
mysql_free_result(result);
}
else {
LogFile->write(EQEMuLog::Error, "Error in LoadTraps query '%s': %s", query, errbuf);
safe_delete_array(query);
return false;
}
return true; return true;
} }