[Bug fix]#reload static should now properly fill the entity_lists for… (#2815)

* [Bug fix]#reload static should now properly fill the entity_lists for objects / doors / groundspawns
The individual #reload commands WILL still have issues when trying to use #list afterwards!

* Point ReloadDoors, ReloadGroundSpawns, ReloadObjects all to reload static to avoid entity_list data missing
This commit is contained in:
Natedog2012 2023-01-31 16:32:25 -06:00 committed by GitHub
parent 8e831dce36
commit 2e575652f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 29 deletions

View File

@ -1939,16 +1939,6 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
content_service.SetExpansionContext()->ReloadContentFlags(); content_service.SetExpansionContext()->ReloadContentFlags();
break; break;
} }
case ServerOP_ReloadDoors:
{
if (zone && zone->IsLoaded()) {
zone->SendReloadMessage("Doors");
entity_list.RemoveAllDoors();
zone->LoadZoneDoors();
entity_list.RespawnAllDoors();
}
break;
}
case ServerOP_ReloadDzTemplates: case ServerOP_ReloadDzTemplates:
{ {
if (zone) if (zone)
@ -1958,14 +1948,6 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
} }
break; break;
} }
case ServerOP_ReloadGroundSpawns:
{
if (zone && zone->IsLoaded()) {
zone->SendReloadMessage("Ground Spawns");
zone->LoadGroundSpawns();
}
break;
}
case ServerOP_ReloadLevelEXPMods: case ServerOP_ReloadLevelEXPMods:
{ {
if (zone && zone->IsLoaded()) { if (zone && zone->IsLoaded()) {
@ -1995,15 +1977,6 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
} }
break; break;
} }
case ServerOP_ReloadObjects:
{
if (zone && zone->IsLoaded()) {
zone->SendReloadMessage("Objects");
entity_list.RemoveAllObjects();
zone->LoadZoneObjects();
}
break;
}
case ServerOP_ReloadPerlExportSettings: case ServerOP_ReloadPerlExportSettings:
{ {
zone->SendReloadMessage("Perl Event Export Settings"); zone->SendReloadMessage("Perl Event Export Settings");
@ -2016,6 +1989,9 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
RuleManager::Instance()->LoadRules(&database, RuleManager::Instance()->GetActiveRuleset(), true); RuleManager::Instance()->LoadRules(&database, RuleManager::Instance()->GetActiveRuleset(), true);
break; break;
} }
case ServerOP_ReloadDoors:
case ServerOP_ReloadGroundSpawns:
case ServerOP_ReloadObjects:
case ServerOP_ReloadStaticZoneData: { case ServerOP_ReloadStaticZoneData: {
if (zone && zone->IsLoaded()) { if (zone && zone->IsLoaded()) {
zone->SendReloadMessage("Static Zone Data"); zone->SendReloadMessage("Static Zone Data");

View File

@ -1231,6 +1231,8 @@ bool Zone::Init(bool is_static) {
void Zone::ReloadStaticData() { void Zone::ReloadStaticData() {
LogInfo("Reloading Zone Static Data"); LogInfo("Reloading Zone Static Data");
entity_list.RemoveAllObjects(); //Ground spawns are also objects we clear list then fill it
entity_list.RemoveAllDoors(); //Some objects are also doors so clear list before filling
if (!content_db.LoadStaticZonePoints(&zone_point_list, GetShortName(), GetInstanceVersion())) { if (!content_db.LoadStaticZonePoints(&zone_point_list, GetShortName(), GetInstanceVersion())) {
LogError("Loading static zone points failed"); LogError("Loading static zone points failed");
@ -1249,14 +1251,12 @@ void Zone::ReloadStaticData() {
LogError("Reloading ground spawns failed. continuing"); LogError("Reloading ground spawns failed. continuing");
} }
entity_list.RemoveAllObjects();
LogInfo("Reloading World Objects from DB"); LogInfo("Reloading World Objects from DB");
if (!LoadZoneObjects()) if (!LoadZoneObjects())
{ {
LogError("Reloading World Objects failed. continuing"); LogError("Reloading World Objects failed. continuing");
} }
entity_list.RemoveAllDoors();
LoadZoneDoors(); LoadZoneDoors();
entity_list.RespawnAllDoors(); entity_list.RespawnAllDoors();