[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();
break;
}
case ServerOP_ReloadDoors:
{
if (zone && zone->IsLoaded()) {
zone->SendReloadMessage("Doors");
entity_list.RemoveAllDoors();
zone->LoadZoneDoors();
entity_list.RespawnAllDoors();
}
break;
}
case ServerOP_ReloadDzTemplates:
{
if (zone)
@ -1958,14 +1948,6 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
}
break;
}
case ServerOP_ReloadGroundSpawns:
{
if (zone && zone->IsLoaded()) {
zone->SendReloadMessage("Ground Spawns");
zone->LoadGroundSpawns();
}
break;
}
case ServerOP_ReloadLevelEXPMods:
{
if (zone && zone->IsLoaded()) {
@ -1995,15 +1977,6 @@ void WorldServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p)
}
break;
}
case ServerOP_ReloadObjects:
{
if (zone && zone->IsLoaded()) {
zone->SendReloadMessage("Objects");
entity_list.RemoveAllObjects();
zone->LoadZoneObjects();
}
break;
}
case ServerOP_ReloadPerlExportSettings:
{
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);
break;
}
case ServerOP_ReloadDoors:
case ServerOP_ReloadGroundSpawns:
case ServerOP_ReloadObjects:
case ServerOP_ReloadStaticZoneData: {
if (zone && zone->IsLoaded()) {
zone->SendReloadMessage("Static Zone Data");

View File

@ -1231,6 +1231,8 @@ bool Zone::Init(bool is_static) {
void Zone::ReloadStaticData() {
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())) {
LogError("Loading static zone points failed");
@ -1249,14 +1251,12 @@ void Zone::ReloadStaticData() {
LogError("Reloading ground spawns failed. continuing");
}
entity_list.RemoveAllObjects();
LogInfo("Reloading World Objects from DB");
if (!LoadZoneObjects())
{
LogError("Reloading World Objects failed. continuing");
}
entity_list.RemoveAllDoors();
LoadZoneDoors();
entity_list.RespawnAllDoors();