diff --git a/common/repositories/base/base_spawn2_repository.h b/common/repositories/base/base_spawn2_repository.h index bcfc8f0c9..dd6903a26 100644 --- a/common/repositories/base/base_spawn2_repository.h +++ b/common/repositories/base/base_spawn2_repository.h @@ -16,6 +16,7 @@ #include "../../strings.h" #include + class BaseSpawn2Repository { public: struct Spawn2 { @@ -33,7 +34,6 @@ public: int8_t path_when_zone_idle; uint32_t _condition; int32_t cond_value; - uint8_t enabled; uint8_t animation; int8_t min_expansion; int8_t max_expansion; @@ -63,7 +63,6 @@ public: "path_when_zone_idle", "_condition", "cond_value", - "enabled", "animation", "min_expansion", "max_expansion", @@ -89,7 +88,6 @@ public: "path_when_zone_idle", "_condition", "cond_value", - "enabled", "animation", "min_expansion", "max_expansion", @@ -149,7 +147,6 @@ public: e.path_when_zone_idle = 0; e._condition = 0; e.cond_value = 1; - e.enabled = 1; e.animation = 0; e.min_expansion = -1; e.max_expansion = -1; @@ -180,8 +177,9 @@ public: { auto results = db.QueryDatabase( fmt::format( - "{} WHERE id = {} LIMIT 1", + "{} WHERE {} = {} LIMIT 1", BaseSelect(), + PrimaryKey(), spawn2_id ) ); @@ -204,12 +202,11 @@ public: e.path_when_zone_idle = static_cast(atoi(row[11])); e._condition = static_cast(strtoul(row[12], nullptr, 10)); e.cond_value = static_cast(atoi(row[13])); - e.enabled = static_cast(strtoul(row[14], nullptr, 10)); - e.animation = static_cast(strtoul(row[15], nullptr, 10)); - e.min_expansion = static_cast(atoi(row[16])); - e.max_expansion = static_cast(atoi(row[17])); - e.content_flags = row[18] ? row[18] : ""; - e.content_flags_disabled = row[19] ? row[19] : ""; + e.animation = static_cast(strtoul(row[14], nullptr, 10)); + e.min_expansion = static_cast(atoi(row[15])); + e.max_expansion = static_cast(atoi(row[16])); + e.content_flags = row[17] ? row[17] : ""; + e.content_flags_disabled = row[18] ? row[18] : ""; return e; } @@ -256,12 +253,11 @@ public: v.push_back(columns[11] + " = " + std::to_string(e.path_when_zone_idle)); v.push_back(columns[12] + " = " + std::to_string(e._condition)); v.push_back(columns[13] + " = " + std::to_string(e.cond_value)); - v.push_back(columns[14] + " = " + std::to_string(e.enabled)); - v.push_back(columns[15] + " = " + std::to_string(e.animation)); - v.push_back(columns[16] + " = " + std::to_string(e.min_expansion)); - v.push_back(columns[17] + " = " + std::to_string(e.max_expansion)); - v.push_back(columns[18] + " = '" + Strings::Escape(e.content_flags) + "'"); - v.push_back(columns[19] + " = '" + Strings::Escape(e.content_flags_disabled) + "'"); + v.push_back(columns[14] + " = " + std::to_string(e.animation)); + v.push_back(columns[15] + " = " + std::to_string(e.min_expansion)); + v.push_back(columns[16] + " = " + std::to_string(e.max_expansion)); + v.push_back(columns[17] + " = '" + Strings::Escape(e.content_flags) + "'"); + v.push_back(columns[18] + " = '" + Strings::Escape(e.content_flags_disabled) + "'"); auto results = db.QueryDatabase( fmt::format( @@ -297,7 +293,6 @@ public: v.push_back(std::to_string(e.path_when_zone_idle)); v.push_back(std::to_string(e._condition)); v.push_back(std::to_string(e.cond_value)); - v.push_back(std::to_string(e.enabled)); v.push_back(std::to_string(e.animation)); v.push_back(std::to_string(e.min_expansion)); v.push_back(std::to_string(e.max_expansion)); @@ -346,7 +341,6 @@ public: v.push_back(std::to_string(e.path_when_zone_idle)); v.push_back(std::to_string(e._condition)); v.push_back(std::to_string(e.cond_value)); - v.push_back(std::to_string(e.enabled)); v.push_back(std::to_string(e.animation)); v.push_back(std::to_string(e.min_expansion)); v.push_back(std::to_string(e.max_expansion)); @@ -399,12 +393,11 @@ public: e.path_when_zone_idle = static_cast(atoi(row[11])); e._condition = static_cast(strtoul(row[12], nullptr, 10)); e.cond_value = static_cast(atoi(row[13])); - e.enabled = static_cast(strtoul(row[14], nullptr, 10)); - e.animation = static_cast(strtoul(row[15], nullptr, 10)); - e.min_expansion = static_cast(atoi(row[16])); - e.max_expansion = static_cast(atoi(row[17])); - e.content_flags = row[18] ? row[18] : ""; - e.content_flags_disabled = row[19] ? row[19] : ""; + e.animation = static_cast(strtoul(row[14], nullptr, 10)); + e.min_expansion = static_cast(atoi(row[15])); + e.max_expansion = static_cast(atoi(row[16])); + e.content_flags = row[17] ? row[17] : ""; + e.content_flags_disabled = row[18] ? row[18] : ""; all_entries.push_back(e); } @@ -443,12 +436,11 @@ public: e.path_when_zone_idle = static_cast(atoi(row[11])); e._condition = static_cast(strtoul(row[12], nullptr, 10)); e.cond_value = static_cast(atoi(row[13])); - e.enabled = static_cast(strtoul(row[14], nullptr, 10)); - e.animation = static_cast(strtoul(row[15], nullptr, 10)); - e.min_expansion = static_cast(atoi(row[16])); - e.max_expansion = static_cast(atoi(row[17])); - e.content_flags = row[18] ? row[18] : ""; - e.content_flags_disabled = row[19] ? row[19] : ""; + e.animation = static_cast(strtoul(row[14], nullptr, 10)); + e.min_expansion = static_cast(atoi(row[15])); + e.max_expansion = static_cast(atoi(row[16])); + e.content_flags = row[17] ? row[17] : ""; + e.content_flags_disabled = row[18] ? row[18] : ""; all_entries.push_back(e); } diff --git a/zone/spawn2.cpp b/zone/spawn2.cpp index 6ba49e1c1..9401ad24a 100644 --- a/zone/spawn2.cpp +++ b/zone/spawn2.cpp @@ -485,13 +485,16 @@ bool ZoneDatabase::PopulateZoneSpawnList(uint32 zoneid, LinkedList &spa spawn2_ids.push_back(s.id); } - auto disabled_spawns = Spawn2DisabledRepository::GetWhere( - database, - fmt::format( - "spawn2_id IN ({})", - Strings::Join(spawn2_ids, ",") - ) - ); + std::vector disabled_spawns = {}; + if (spawn2_ids.size() > 0) { + disabled_spawns = Spawn2DisabledRepository::GetWhere( + database, + fmt::format( + "spawn2_id IN ({})", + Strings::Join(spawn2_ids, ",") + ) + ); + } for (auto &s: spawns) { uint32 spawn_time_left = 0;