Migrate zone [skip ci]

This commit is contained in:
Akkadius 2020-03-11 03:55:44 -05:00
parent 8d21225eb3
commit 3a09197d77
9 changed files with 63 additions and 37 deletions

View File

@ -330,7 +330,7 @@ int main(int argc, char** argv) {
database.PurgeAllDeletedDataBuckets(); database.PurgeAllDeletedDataBuckets();
LogInfo("Loading zones"); LogInfo("Loading zones");
database.LoadZoneNames(); content_db.LoadZoneNames();
LogInfo("Clearing groups"); LogInfo("Clearing groups");
database.ClearGroup(); database.ClearGroup();
LogInfo("Clearing raids"); LogInfo("Clearing raids");

View File

@ -108,7 +108,7 @@ bool ZoneServer::SetZone(uint32 iZoneID, uint32 iInstanceID, bool iStaticZone) {
if (zn) if (zn)
{ {
strn0cpy(zone_name, zn, sizeof(zone_name)); 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)); strn0cpy(long_name, longname, sizeof(long_name));
safe_delete_array(longname); safe_delete_array(longname);

View File

@ -1061,7 +1061,7 @@ private:
return; return;
std::string query = "SELECT `short_name`, `long_name` FROM `zone` WHERE '' NOT IN (`short_name`, `long_name`)"; 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()) { if (!results.Success()) {
LogError("load_teleport_zone_names() - Error in zone names query: [{}]", results.ErrorMessage().c_str()); LogError("load_teleport_zone_names() - Error in zone names query: [{}]", results.ErrorMessage().c_str());
return; return;

View File

@ -6407,7 +6407,7 @@ void Client::Handle_OP_GMZoneRequest(const EQApplicationPacket *app)
strcpy(tarzone, zname); strcpy(tarzone, zname);
// this both loads the safe points and does a sanity check on zone name // 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; tarzone[0] = 0;
} }
@ -12418,7 +12418,7 @@ void Client::Handle_OP_SetStartCity(const EQApplicationPacket *app)
zoneid = atoi(row[0]); zoneid = atoi(row[0]);
char* name = nullptr; char* name = nullptr;
database.GetZoneLongName(database.GetZoneName(zoneid), &name); content_db.GetZoneLongName(database.GetZoneName(zoneid), &name);
Message(Chat::Yellow, "%d - %s", zoneid, name); Message(Chat::Yellow, "%d - %s", zoneid, name);
} }

View File

@ -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()) { if (!results.Success()) {
c->Message(Chat::White, "Error querying database."); c->Message(Chat::White, "Error querying database.");
c->Message(Chat::White, query.c_str()); 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) 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."); c->Message(Chat::White, "Reloading server zone_points.");
} }
@ -4950,7 +4950,7 @@ void command_gmzone(Client *c, const Seperator *sep)
int16 min_status = 0; int16 min_status = 0;
uint8 min_level = 0; uint8 min_level = 0;
if (!database.GetSafePoints( if (!content_db.GetSafePoints(
zone_short_name, zone_short_name,
zone_version, zone_version,
&target_x, &target_x,
@ -9101,7 +9101,7 @@ void command_flagedit(Client *c, const Seperator *sep) {
if(!strcasecmp(sep->arg[1], "listzones")) { if(!strcasecmp(sep->arg[1], "listzones")) {
std::string query = "SELECT zoneidnumber, short_name, long_name, version, flag_needed " std::string query = "SELECT zoneidnumber, short_name, long_name, version, flag_needed "
"FROM zone WHERE flag_needed != ''"; "FROM zone WHERE flag_needed != ''";
auto results = database.QueryDatabase(query); auto results = content_db.QueryDatabase(query);
if (!results.Success()) { if (!results.Success()) {
return; return;
} }
@ -9642,8 +9642,8 @@ void command_deletegraveyard(Client *c, const Seperator *sep)
return; return;
} }
zoneid = database.GetZoneID(sep->arg[1]); zoneid = content_db.GetZoneID(sep->arg[1]);
graveyard_id = database.GetZoneGraveyardID(zoneid, 0); graveyard_id = content_db.GetZoneGraveyardID(zoneid, 0);
if(zoneid > 0 && graveyard_id > 0) { if(zoneid > 0 && graveyard_id > 0) {
if(database.DeleteGraveyard(zoneid, graveyard_id)) if(database.DeleteGraveyard(zoneid, graveyard_id))
@ -12568,7 +12568,7 @@ void command_mysqltest(Client *c, const Seperator *sep)
t = std::clock(); t = std::clock();
for (i = 0; i < atoi(sep->arg[1]); i++){ for (i = 0; i < atoi(sep->arg[1]); i++){
std::string query = "SELECT * FROM `zone`"; 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); LogDebug("MySQL Test Took [{}] seconds", ((float)(std::clock() - t)) / CLOCKS_PER_SEC);

View File

@ -313,7 +313,7 @@ int main(int argc, char** argv) {
} }
LogInfo("Loading zone names"); LogInfo("Loading zone names");
database.LoadZoneNames(); content_db.LoadZoneNames();
LogInfo("Loading items"); LogInfo("Loading items");
if (!database.LoadItems(hotfix_name)) { if (!database.LoadItems(hotfix_name)) {

View File

@ -3065,7 +3065,7 @@ int32 QuestManager::GetZoneID(const char *zone) {
const char* QuestManager::GetZoneLongName(const char *zone) { const char* QuestManager::GetZoneLongName(const char *zone) {
char *long_name; char *long_name;
database.GetZoneLongName(zone, &long_name); content_db.GetZoneLongName(zone, &long_name);
std::string ln = long_name; std::string ln = long_name;
safe_delete_array(long_name); safe_delete_array(long_name);

View File

@ -156,7 +156,7 @@ bool Zone::Bootup(uint32 iZoneID, uint32 iInstanceID, bool iStaticZone) {
/** /**
* Set Shutdown timer * Set Shutdown timer
*/ */
uint32 shutdown_timer = static_cast<uint32>(database.getZoneShutDownDelay(zone->GetZoneID(), zone->GetInstanceVersion())); uint32 shutdown_timer = static_cast<uint32>(content_db.getZoneShutDownDelay(zone->GetZoneID(), zone->GetInstanceVersion()));
zone->StartShutdownTimer(shutdown_timer); zone->StartShutdownTimer(shutdown_timer);
/* /*
@ -811,7 +811,7 @@ Zone::Zone(uint32 in_zoneid, uint32 in_instanceid, const char* in_short_name)
pvpzone = false; pvpzone = false;
if(database.GetServerType() == 1) if(database.GetServerType() == 1)
pvpzone = true; 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) if(graveyard_id() > 0)
{ {
LogDebug("Graveyard ID is [{}]", graveyard_id()); LogDebug("Graveyard ID is [{}]", graveyard_id());
@ -931,7 +931,7 @@ bool Zone::Init(bool iStaticZone) {
} }
LogInfo("Loading static zone points"); 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"); LogError("Loading static zone points failed");
return false; return false;
} }
@ -1019,7 +1019,7 @@ bool Zone::Init(bool iStaticZone) {
petition_list.ReadDatabase(); petition_list.ReadDatabase();
LogInfo("Loading timezone data"); 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()); LogInfo("Init Finished: ZoneID = [{}], Time Offset = [{}]", zoneid, zone->zone_time.getEQTimeZone());
@ -1036,7 +1036,7 @@ void Zone::ReloadStaticData() {
LogInfo("Reloading static zone points"); LogInfo("Reloading static zone points");
zone_point_list.Clear(); 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"); 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)); memset(&newzone_data, 0, sizeof(NewZone_Struct));
map_name = nullptr; map_name = nullptr;
if(!database.GetZoneCFG(database.GetZoneID(filename), instance_id, &newzone_data, can_bind, if (!content_db.GetZoneCFG(
can_combat, can_levitate, can_castoutdoor, is_city, is_hotzone, allow_mercs, max_movement_update_range, zone_type, default_ruleset, &map_name)) 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 loading a non-zero instance failed, try loading the default
if (instance_id != 0) if (instance_id != 0) {
{
safe_delete_array(map_name); safe_delete_array(map_name);
if(!database.GetZoneCFG(database.GetZoneID(filename), 0, &newzone_data, can_bind, can_combat, can_levitate, if (!content_db.GetZoneCFG(
can_castoutdoor, is_city, is_hotzone, allow_mercs, max_movement_update_range, zone_type, default_ruleset, &map_name)) 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"); LogError("Error loading the Zone Config");
return false; return false;
} }
} }
} }
@ -1107,8 +1132,9 @@ bool Zone::LoadZoneCFG(const char* filename, uint16 instance_id)
return true; return true;
} }
bool Zone::SaveZoneCFG() { bool Zone::SaveZoneCFG()
return database.SaveZoneCFG(GetZoneID(), GetInstanceVersion(), &newzone_data); {
return content_db.SaveZoneCFG(GetZoneID(), GetInstanceVersion(), &newzone_data);
} }
void Zone::AddAuth(ServerZoneIncomingClient_Struct* szic) { void Zone::AddAuth(ServerZoneIncomingClient_Struct* szic) {
@ -1487,7 +1513,7 @@ bool Zone::HasWeather()
void Zone::StartShutdownTimer(uint32 set_time) { void Zone::StartShutdownTimer(uint32 set_time) {
if (set_time > autoshutdown_timer.GetRemainingTime()) { if (set_time > autoshutdown_timer.GetRemainingTime()) {
if (set_time == (RuleI(Zone, AutoShutdownDelay))) { if (set_time == (RuleI(Zone, AutoShutdownDelay))) {
set_time = static_cast<uint32>(database.getZoneShutDownDelay(GetZoneID(), GetInstanceVersion())); set_time = static_cast<uint32>(content_db.getZoneShutDownDelay(GetZoneID(), GetInstanceVersion()));
} }
autoshutdown_timer.SetTimer(set_time); autoshutdown_timer.SetTimer(set_time);
@ -2358,7 +2384,7 @@ uint32 Zone::GetSpawnKillCount(uint32 in_spawnid) {
void Zone::UpdateHotzone() void Zone::UpdateHotzone()
{ {
std::string query = StringFormat("SELECT hotzone FROM zone WHERE short_name = '%s'", GetShortName()); 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()) if (!results.Success())
return; return;

View File

@ -170,7 +170,7 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
int16 minstatus = 0; int16 minstatus = 0;
uint8 minlevel = 0; uint8 minlevel = 0;
char flag_needed[128]; 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... //invalid zone...
Message(Chat::Red, "Invalid target zone while getting safe points."); Message(Chat::Red, "Invalid target zone while getting safe points.");
LogError("Zoning [{}]: Unable to get safe coordinates for zone [{}]", GetName(), target_zone_name); 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; char* pZoneName = nullptr;
pShortZoneName = database.GetZoneName(zoneID); pShortZoneName = database.GetZoneName(zoneID);
database.GetZoneLongName(pShortZoneName, &pZoneName); content_db.GetZoneLongName(pShortZoneName, &pZoneName);
if(!pZoneName) { if(!pZoneName) {
Message(Chat::Red, "Invalid zone number specified"); Message(Chat::Red, "Invalid zone number specified");
@ -831,7 +831,7 @@ void Client::SendZoneFlagInfo(Client *to) const {
const char *short_name = database.GetZoneName(zoneid); const char *short_name = database.GetZoneName(zoneid);
char *long_name = nullptr; char *long_name = nullptr;
database.GetZoneLongName(short_name, &long_name); content_db.GetZoneLongName(short_name, &long_name);
if(long_name == nullptr) if(long_name == nullptr)
long_name = empty; long_name = empty;
@ -839,7 +839,7 @@ void Client::SendZoneFlagInfo(Client *to) const {
int16 minstatus = 0; int16 minstatus = 0;
uint8 minlevel = 0; uint8 minlevel = 0;
char flag_name[128]; 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)"); strcpy(flag_name, "(ERROR GETTING NAME)");
} }
@ -861,7 +861,7 @@ bool Client::CanBeInZone() {
int16 minstatus = 0; int16 minstatus = 0;
uint8 minlevel = 0; uint8 minlevel = 0;
char flag_needed[128]; 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... //this should not happen...
LogDebug("[CLIENT] Unable to query zone info for ourself [{}]", zone->GetShortName()); LogDebug("[CLIENT] Unable to query zone info for ourself [{}]", zone->GetShortName());
return(false); return(false);