mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-17 14:31:30 +00:00
PopulateZoneSpawnList converted to QueryDatabase
This commit is contained in:
parent
b36cc3ab08
commit
42a51eb373
@ -354,33 +354,29 @@ void Spawn2::DeathReset(bool realdeath)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool ZoneDatabase::PopulateZoneSpawnList(uint32 zoneid, LinkedList<Spawn2*> &spawn2_list, int16 version, uint32 repopdelay) {
|
bool ZoneDatabase::PopulateZoneSpawnList(uint32 zoneid, LinkedList<Spawn2*> &spawn2_list, int16 version, uint32 repopdelay) {
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
|
||||||
char* query = 0;
|
|
||||||
MYSQL_RES *result;
|
|
||||||
MYSQL_ROW row;
|
|
||||||
|
|
||||||
const char *zone_name = database.GetZoneName(zoneid);
|
const char *zone_name = database.GetZoneName(zoneid);
|
||||||
|
std::string query = StringFormat("SELECT id, spawngroupID, x, y, z, heading, "
|
||||||
|
"respawntime, variance, pathgrid, _condition, "
|
||||||
|
"cond_value, enabled, animation FROM spawn2 "
|
||||||
|
"WHERE zone = '%s' AND version = %u",
|
||||||
|
zone_name, version);
|
||||||
|
auto results = QueryDatabase(query);
|
||||||
|
if (!results.Success()) {
|
||||||
|
LogFile->write(EQEMuLog::Error, "Error in PopulateZoneLists query '%s': %s", query.c_str(), results.ErrorMessage().c_str());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
MakeAnyLenString(&query, "SELECT id, spawngroupID, x, y, z, heading, respawntime, variance, pathgrid, _condition, cond_value, enabled, animation FROM spawn2 WHERE zone='%s' AND version=%u", zone_name, version);
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
if (RunQuery(query, strlen(query), errbuf, &result))
|
|
||||||
{
|
|
||||||
safe_delete_array(query);
|
|
||||||
while((row = mysql_fetch_row(result)))
|
|
||||||
{
|
|
||||||
Spawn2* newSpawn = 0;
|
Spawn2* newSpawn = 0;
|
||||||
|
|
||||||
bool perl_enabled = atoi(row[11]) == 1 ? true : false;
|
bool perl_enabled = atoi(row[11]) == 1? true: false;
|
||||||
uint32 spawnLeft = (GetSpawnTimeLeft(atoi(row[0]), zone->GetInstanceID()) * 1000);
|
uint32 spawnLeft = (GetSpawnTimeLeft(atoi(row[0]), zone->GetInstanceID()) * 1000);
|
||||||
newSpawn = new Spawn2(atoi(row[0]), atoi(row[1]), atof(row[2]), atof(row[3]), atof(row[4]), atof(row[5]), atoi(row[6]), atoi(row[7]), spawnLeft, atoi(row[8]), atoi(row[9]), atoi(row[10]), perl_enabled, (EmuAppearance)atoi(row[12]));
|
newSpawn = new Spawn2(atoi(row[0]), atoi(row[1]), atof(row[2]), atof(row[3]), atof(row[4]),
|
||||||
spawn2_list.Insert( newSpawn );
|
atof(row[5]), atoi(row[6]), atoi(row[7]), spawnLeft, atoi(row[8]),
|
||||||
}
|
atoi(row[9]), atoi(row[10]), perl_enabled, (EmuAppearance)atoi(row[12]));
|
||||||
mysql_free_result(result);
|
|
||||||
}
|
spawn2_list.Insert(newSpawn);
|
||||||
else
|
|
||||||
{
|
|
||||||
LogFile->write(EQEMuLog::Error, "Error in PopulateZoneLists query '%s': %s", query, errbuf);
|
|
||||||
safe_delete_array(query);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user