diff --git a/utils/sql/git/required/2019_01_22_peq_expansions.sql b/utils/sql/git/required/2019_01_22_peq_expansions.sql index 7f73c80e0..d00c11a0b 100644 --- a/utils/sql/git/required/2019_01_22_peq_expansions.sql +++ b/utils/sql/git/required/2019_01_22_peq_expansions.sql @@ -34,3 +34,5 @@ ALTER TABLE `tributes` ADD `min_expansion` TINYINT(4) UNSIGNED NOT NULL DEFAU ALTER TABLE `tributes` ADD `max_expansion` TINYINT(4) UNSIGNED NOT NULL DEFAULT '99' AFTER `min_expansion`; ALTER TABLE `zone` ADD `min_expansion` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' AFTER `npc_max_aggro_dist`; ALTER TABLE `zone` ADD `max_expansion` TINYINT(4) UNSIGNED NOT NULL DEFAULT '99' AFTER `min_expansion`; +ALTER TABLE `zone_points` ADD `min_expansion` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' AFTER `client_version_mask`; +ALTER TABLE `zone_points` ADD `max_expansion` TINYINT(4) UNSIGNED NOT NULL DEFAULT '99' AFTER `min_expansion`; diff --git a/zone/spawngroup.cpp b/zone/spawngroup.cpp index 03e1a5671..be1151104 100644 --- a/zone/spawngroup.cpp +++ b/zone/spawngroup.cpp @@ -141,13 +141,14 @@ bool SpawnGroupList::RemoveSpawnGroup(uint32 in_id) { bool ZoneDatabase::LoadSpawnGroups(const char *zone_name, uint16 version, SpawnGroupList *spawn_group_list) { + auto latest_expansion = EQEmu::expansions::ConvertExpansionMaskToLatestExpansion(RuleI(World, ExpansionSettings)); std::string query = StringFormat("SELECT DISTINCT(spawngroupID), spawngroup.name, spawngroup.spawn_limit, " "spawngroup.dist, spawngroup.max_x, spawngroup.min_x, " "spawngroup.max_y, spawngroup.min_y, spawngroup.delay, " "spawngroup.despawn, spawngroup.despawn_timer, spawngroup.mindelay " "FROM spawn2, spawngroup WHERE spawn2.spawngroupID = spawngroup.ID " - "AND spawn2.version = %u and zone = '%s' AND %d & spawn2.expansions = spawn2.expansions", - version, zone_name); + "AND spawn2.version = %u and zone = '%s' AND spawn2.min_expansion <= %i AND spawn2.max_expansion >= %i", + version, zone_name, latest_expansion, latest_expansion); auto results = QueryDatabase(query); if (!results.Success()) { return false;