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();
LogInfo("Loading zones");
database.LoadZoneNames();
content_db.LoadZoneNames();
LogInfo("Clearing groups");
database.ClearGroup();
LogInfo("Clearing raids");

View File

@ -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);

View File

@ -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;

View File

@ -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);
}

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()) {
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);

View File

@ -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)) {

View File

@ -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);

View File

@ -156,7 +156,7 @@ bool Zone::Bootup(uint32 iZoneID, uint32 iInstanceID, bool iStaticZone) {
/**
* 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);
/*
@ -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,16 +1082,41 @@ 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<uint32>(database.getZoneShutDownDelay(GetZoneID(), GetInstanceVersion()));
set_time = static_cast<uint32>(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;

View File

@ -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);