From 3a09197d77d80bbeba7413e8130e287b814314a9 Mon Sep 17 00:00:00 2001 From: Akkadius Date: Wed, 11 Mar 2020 03:55:44 -0500 Subject: [PATCH] Migrate zone [skip ci] --- world/main.cpp | 2 +- world/zoneserver.cpp | 2 +- zone/bot_command.cpp | 2 +- zone/client_packet.cpp | 4 +-- zone/command.cpp | 14 +++++----- zone/main.cpp | 2 +- zone/questmgr.cpp | 2 +- zone/zone.cpp | 62 ++++++++++++++++++++++++++++++------------ zone/zoning.cpp | 10 +++---- 9 files changed, 63 insertions(+), 37 deletions(-) diff --git a/world/main.cpp b/world/main.cpp index 40a1f949e..2b92bde98 100644 --- a/world/main.cpp +++ b/world/main.cpp @@ -330,7 +330,7 @@ int main(int argc, char** argv) { database.PurgeAllDeletedDataBuckets(); LogInfo("Loading zones"); - database.LoadZoneNames(); + content_db.LoadZoneNames(); LogInfo("Clearing groups"); database.ClearGroup(); LogInfo("Clearing raids"); diff --git a/world/zoneserver.cpp b/world/zoneserver.cpp index 08ccbfaff..0a31d40fe 100644 --- a/world/zoneserver.cpp +++ b/world/zoneserver.cpp @@ -108,7 +108,7 @@ bool ZoneServer::SetZone(uint32 iZoneID, uint32 iInstanceID, bool iStaticZone) { if (zn) { strn0cpy(zone_name, zn, sizeof(zone_name)); - if (database.GetZoneLongName((char*)zone_name, &longname, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)) + if (content_db.GetZoneLongName((char*)zone_name, &longname, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr)) { strn0cpy(long_name, longname, sizeof(long_name)); safe_delete_array(longname); diff --git a/zone/bot_command.cpp b/zone/bot_command.cpp index 9c202fed8..3b539d052 100644 --- a/zone/bot_command.cpp +++ b/zone/bot_command.cpp @@ -1061,7 +1061,7 @@ private: return; std::string query = "SELECT `short_name`, `long_name` FROM `zone` WHERE '' NOT IN (`short_name`, `long_name`)"; - auto results = database.QueryDatabase(query); + auto results = content_db.QueryDatabase(query); if (!results.Success()) { LogError("load_teleport_zone_names() - Error in zone names query: [{}]", results.ErrorMessage().c_str()); return; diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 1848a926c..7d8664737 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -6407,7 +6407,7 @@ void Client::Handle_OP_GMZoneRequest(const EQApplicationPacket *app) strcpy(tarzone, zname); // this both loads the safe points and does a sanity check on zone name - if (!database.GetSafePoints(tarzone, 0, &tarx, &tary, &tarz, &minstatus, &minlevel)) { + if (!content_db.GetSafePoints(tarzone, 0, &tarx, &tary, &tarz, &minstatus, &minlevel)) { tarzone[0] = 0; } @@ -12418,7 +12418,7 @@ void Client::Handle_OP_SetStartCity(const EQApplicationPacket *app) zoneid = atoi(row[0]); char* name = nullptr; - database.GetZoneLongName(database.GetZoneName(zoneid), &name); + content_db.GetZoneLongName(database.GetZoneName(zoneid), &name); Message(Chat::Yellow, "%d - %s", zoneid, name); } diff --git a/zone/command.cpp b/zone/command.cpp index 1bdb2562b..512992f51 100755 --- a/zone/command.cpp +++ b/zone/command.cpp @@ -4136,7 +4136,7 @@ void command_findzone(Client *c, const Seperator *sep) } } - auto results = database.QueryDatabase(query); + auto results = content_db.QueryDatabase(query); if (!results.Success()) { c->Message(Chat::White, "Error querying database."); c->Message(Chat::White, query.c_str()); @@ -4273,7 +4273,7 @@ void command_reloadlevelmods(Client *c, const Seperator *sep) void command_reloadzps(Client *c, const Seperator *sep) { - database.LoadStaticZonePoints(&zone->zone_point_list, zone->GetShortName(), zone->GetInstanceVersion()); + content_db.LoadStaticZonePoints(&zone->zone_point_list, zone->GetShortName(), zone->GetInstanceVersion()); c->Message(Chat::White, "Reloading server zone_points."); } @@ -4950,7 +4950,7 @@ void command_gmzone(Client *c, const Seperator *sep) int16 min_status = 0; uint8 min_level = 0; - if (!database.GetSafePoints( + if (!content_db.GetSafePoints( zone_short_name, zone_version, &target_x, @@ -9101,7 +9101,7 @@ void command_flagedit(Client *c, const Seperator *sep) { if(!strcasecmp(sep->arg[1], "listzones")) { std::string query = "SELECT zoneidnumber, short_name, long_name, version, flag_needed " "FROM zone WHERE flag_needed != ''"; - auto results = database.QueryDatabase(query); + auto results = content_db.QueryDatabase(query); if (!results.Success()) { return; } @@ -9642,8 +9642,8 @@ void command_deletegraveyard(Client *c, const Seperator *sep) return; } - zoneid = database.GetZoneID(sep->arg[1]); - graveyard_id = database.GetZoneGraveyardID(zoneid, 0); + zoneid = content_db.GetZoneID(sep->arg[1]); + graveyard_id = content_db.GetZoneGraveyardID(zoneid, 0); if(zoneid > 0 && graveyard_id > 0) { if(database.DeleteGraveyard(zoneid, graveyard_id)) @@ -12568,7 +12568,7 @@ void command_mysqltest(Client *c, const Seperator *sep) t = std::clock(); for (i = 0; i < atoi(sep->arg[1]); i++){ std::string query = "SELECT * FROM `zone`"; - auto results = database.QueryDatabase(query); + auto results = content_db.QueryDatabase(query); } } LogDebug("MySQL Test Took [{}] seconds", ((float)(std::clock() - t)) / CLOCKS_PER_SEC); diff --git a/zone/main.cpp b/zone/main.cpp index c700f72f5..989962554 100644 --- a/zone/main.cpp +++ b/zone/main.cpp @@ -313,7 +313,7 @@ int main(int argc, char** argv) { } LogInfo("Loading zone names"); - database.LoadZoneNames(); + content_db.LoadZoneNames(); LogInfo("Loading items"); if (!database.LoadItems(hotfix_name)) { diff --git a/zone/questmgr.cpp b/zone/questmgr.cpp index 274b4b8a1..73936bc2c 100644 --- a/zone/questmgr.cpp +++ b/zone/questmgr.cpp @@ -3065,7 +3065,7 @@ int32 QuestManager::GetZoneID(const char *zone) { const char* QuestManager::GetZoneLongName(const char *zone) { char *long_name; - database.GetZoneLongName(zone, &long_name); + content_db.GetZoneLongName(zone, &long_name); std::string ln = long_name; safe_delete_array(long_name); diff --git a/zone/zone.cpp b/zone/zone.cpp index 7c40f84a9..0982f2d39 100755 --- a/zone/zone.cpp +++ b/zone/zone.cpp @@ -156,7 +156,7 @@ bool Zone::Bootup(uint32 iZoneID, uint32 iInstanceID, bool iStaticZone) { /** * Set Shutdown timer */ - uint32 shutdown_timer = static_cast(database.getZoneShutDownDelay(zone->GetZoneID(), zone->GetInstanceVersion())); + uint32 shutdown_timer = static_cast(content_db.getZoneShutDownDelay(zone->GetZoneID(), zone->GetInstanceVersion())); zone->StartShutdownTimer(shutdown_timer); /* @@ -811,7 +811,7 @@ Zone::Zone(uint32 in_zoneid, uint32 in_instanceid, const char* in_short_name) pvpzone = false; if(database.GetServerType() == 1) pvpzone = true; - database.GetZoneLongName(short_name, &long_name, file_name, &m_SafePoint.x, &m_SafePoint.y, &m_SafePoint.z, &pgraveyard_id, &pMaxClients); + content_db.GetZoneLongName(short_name, &long_name, file_name, &m_SafePoint.x, &m_SafePoint.y, &m_SafePoint.z, &pgraveyard_id, &pMaxClients); if(graveyard_id() > 0) { LogDebug("Graveyard ID is [{}]", graveyard_id()); @@ -931,7 +931,7 @@ bool Zone::Init(bool iStaticZone) { } LogInfo("Loading static zone points"); - if (!database.LoadStaticZonePoints(&zone_point_list, short_name, GetInstanceVersion())) { + if (!content_db.LoadStaticZonePoints(&zone_point_list, short_name, GetInstanceVersion())) { LogError("Loading static zone points failed"); return false; } @@ -1019,7 +1019,7 @@ bool Zone::Init(bool iStaticZone) { petition_list.ReadDatabase(); LogInfo("Loading timezone data"); - zone->zone_time.setEQTimeZone(database.GetZoneTZ(zoneid, GetInstanceVersion())); + zone->zone_time.setEQTimeZone(content_db.GetZoneTZ(zoneid, GetInstanceVersion())); LogInfo("Init Finished: ZoneID = [{}], Time Offset = [{}]", zoneid, zone->zone_time.getEQTimeZone()); @@ -1036,7 +1036,7 @@ void Zone::ReloadStaticData() { LogInfo("Reloading static zone points"); zone_point_list.Clear(); - if (!database.LoadStaticZonePoints(&zone_point_list, GetShortName(), GetInstanceVersion())) { + if (!content_db.LoadStaticZonePoints(&zone_point_list, GetShortName(), GetInstanceVersion())) { LogError("Loading static zone points failed"); } @@ -1082,19 +1082,44 @@ bool Zone::LoadZoneCFG(const char* filename, uint16 instance_id) memset(&newzone_data, 0, sizeof(NewZone_Struct)); map_name = nullptr; - if(!database.GetZoneCFG(database.GetZoneID(filename), instance_id, &newzone_data, can_bind, - can_combat, can_levitate, can_castoutdoor, is_city, is_hotzone, allow_mercs, max_movement_update_range, zone_type, default_ruleset, &map_name)) - { + if (!content_db.GetZoneCFG( + content_db.GetZoneID(filename), + instance_id, + &newzone_data, + can_bind, + can_combat, + can_levitate, + can_castoutdoor, + is_city, + is_hotzone, + allow_mercs, + max_movement_update_range, + zone_type, + default_ruleset, + &map_name + )) { // If loading a non-zero instance failed, try loading the default - if (instance_id != 0) - { + if (instance_id != 0) { safe_delete_array(map_name); - if(!database.GetZoneCFG(database.GetZoneID(filename), 0, &newzone_data, can_bind, can_combat, can_levitate, - can_castoutdoor, is_city, is_hotzone, allow_mercs, max_movement_update_range, zone_type, default_ruleset, &map_name)) - { + if (!content_db.GetZoneCFG( + content_db.GetZoneID(filename), + 0, + &newzone_data, + can_bind, + can_combat, + can_levitate, + can_castoutdoor, + is_city, + is_hotzone, + allow_mercs, + max_movement_update_range, + zone_type, + default_ruleset, + &map_name + )) { LogError("Error loading the Zone Config"); return false; - } + } } } @@ -1107,8 +1132,9 @@ bool Zone::LoadZoneCFG(const char* filename, uint16 instance_id) return true; } -bool Zone::SaveZoneCFG() { - return database.SaveZoneCFG(GetZoneID(), GetInstanceVersion(), &newzone_data); +bool Zone::SaveZoneCFG() +{ + return content_db.SaveZoneCFG(GetZoneID(), GetInstanceVersion(), &newzone_data); } void Zone::AddAuth(ServerZoneIncomingClient_Struct* szic) { @@ -1487,7 +1513,7 @@ bool Zone::HasWeather() void Zone::StartShutdownTimer(uint32 set_time) { if (set_time > autoshutdown_timer.GetRemainingTime()) { if (set_time == (RuleI(Zone, AutoShutdownDelay))) { - set_time = static_cast(database.getZoneShutDownDelay(GetZoneID(), GetInstanceVersion())); + set_time = static_cast(content_db.getZoneShutDownDelay(GetZoneID(), GetInstanceVersion())); } autoshutdown_timer.SetTimer(set_time); @@ -2358,7 +2384,7 @@ uint32 Zone::GetSpawnKillCount(uint32 in_spawnid) { void Zone::UpdateHotzone() { std::string query = StringFormat("SELECT hotzone FROM zone WHERE short_name = '%s'", GetShortName()); - auto results = database.QueryDatabase(query); + auto results = content_db.QueryDatabase(query); if (!results.Success()) return; diff --git a/zone/zoning.cpp b/zone/zoning.cpp index 8eaa05c5a..7ee503b66 100644 --- a/zone/zoning.cpp +++ b/zone/zoning.cpp @@ -170,7 +170,7 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) { int16 minstatus = 0; uint8 minlevel = 0; char flag_needed[128]; - if(!database.GetSafePoints(target_zone_name, database.GetInstanceVersion(target_instance_id), &safe_x, &safe_y, &safe_z, &minstatus, &minlevel, flag_needed)) { + if(!content_db.GetSafePoints(target_zone_name, database.GetInstanceVersion(target_instance_id), &safe_x, &safe_y, &safe_z, &minstatus, &minlevel, flag_needed)) { //invalid zone... Message(Chat::Red, "Invalid target zone while getting safe points."); LogError("Zoning [{}]: Unable to get safe coordinates for zone [{}]", GetName(), target_zone_name); @@ -483,7 +483,7 @@ void Client::ZonePC(uint32 zoneID, uint32 instance_id, float x, float y, float z char* pZoneName = nullptr; pShortZoneName = database.GetZoneName(zoneID); - database.GetZoneLongName(pShortZoneName, &pZoneName); + content_db.GetZoneLongName(pShortZoneName, &pZoneName); if(!pZoneName) { Message(Chat::Red, "Invalid zone number specified"); @@ -831,7 +831,7 @@ void Client::SendZoneFlagInfo(Client *to) const { const char *short_name = database.GetZoneName(zoneid); char *long_name = nullptr; - database.GetZoneLongName(short_name, &long_name); + content_db.GetZoneLongName(short_name, &long_name); if(long_name == nullptr) long_name = empty; @@ -839,7 +839,7 @@ void Client::SendZoneFlagInfo(Client *to) const { int16 minstatus = 0; uint8 minlevel = 0; char flag_name[128]; - if(!database.GetSafePoints(short_name, 0, &safe_x, &safe_y, &safe_z, &minstatus, &minlevel, flag_name)) { + if(!content_db.GetSafePoints(short_name, 0, &safe_x, &safe_y, &safe_z, &minstatus, &minlevel, flag_name)) { strcpy(flag_name, "(ERROR GETTING NAME)"); } @@ -861,7 +861,7 @@ bool Client::CanBeInZone() { int16 minstatus = 0; uint8 minlevel = 0; char flag_needed[128]; - if(!database.GetSafePoints(zone->GetShortName(), zone->GetInstanceVersion(), &safe_x, &safe_y, &safe_z, &minstatus, &minlevel, flag_needed)) { + if(!content_db.GetSafePoints(zone->GetShortName(), zone->GetInstanceVersion(), &safe_x, &safe_y, &safe_z, &minstatus, &minlevel, flag_needed)) { //this should not happen... LogDebug("[CLIENT] Unable to query zone info for ourself [{}]", zone->GetShortName()); return(false);