Migrate doors [skip ci]

This commit is contained in:
Akkadius 2020-03-11 03:20:38 -05:00
parent 7c2a3f602c
commit c98d2743c5
5 changed files with 13 additions and 47 deletions

View File

@ -1130,9 +1130,9 @@ uint32 Database::GetZoneID(const char* zonename) {
if (zonename == nullptr)
return 0;
for (auto iter = zonename_array.begin(); iter != zonename_array.end(); ++iter)
if (strcasecmp(iter->second.c_str(), zonename) == 0)
return iter->first;
for (auto & iter : zonename_array)
if (strcasecmp(iter.second.c_str(), zonename) == 0)
return iter.first;
return 0;
}

View File

@ -83,8 +83,8 @@ Doors::Doors(const char *model, const glm::vec4 &position, uint8 open_type, uint
strn0cpy(door_name, model, 32);
strn0cpy(destination_zone_name, "NONE", 32);
this->database_id = (uint32) database.GetDoorsCountPlusOne(zone->GetShortName(), zone->GetInstanceVersion());
this->door_id = (uint8) database.GetDoorsDBCountPlusOne(zone->GetShortName(), zone->GetInstanceVersion());
this->database_id = (uint32) content_db.GetDoorsCountPlusOne(zone->GetShortName(), zone->GetInstanceVersion());
this->door_id = (uint8) content_db.GetDoorsDBCountPlusOne(zone->GetShortName(), zone->GetInstanceVersion());
this->open_type = open_type;
this->size = size;
@ -451,7 +451,7 @@ void Doors::HandleClick(Client* sender, uint8 trigger) {
if (!disable_add_to_key_ring) {
sender->KeyRingAdd(player_key);
}
if (database.GetZoneID(destination_zone_name) == zone->GetZoneID()) {
if (content_db.GetZoneID(destination_zone_name) == zone->GetZoneID()) {
sender->MovePC(
zone->GetZoneID(),
zone->GetInstanceID(),
@ -462,7 +462,7 @@ void Doors::HandleClick(Client* sender, uint8 trigger) {
);
} else {
sender->MovePC(
database.GetZoneID(destination_zone_name),
content_db.GetZoneID(destination_zone_name),
static_cast<uint32>(destination_instance_id),
m_Destination.x,
m_Destination.y,
@ -473,7 +473,7 @@ void Doors::HandleClick(Client* sender, uint8 trigger) {
}
if ((!IsDoorOpen() || open_type == 58) && (!required_key_item)) {
if (database.GetZoneID(destination_zone_name) == zone->GetZoneID()) {
if (content_db.GetZoneID(destination_zone_name) == zone->GetZoneID()) {
sender->MovePC(
zone->GetZoneID(),
zone->GetInstanceID(),
@ -484,7 +484,7 @@ void Doors::HandleClick(Client* sender, uint8 trigger) {
);
} else {
sender->MovePC(
database.GetZoneID(destination_zone_name),
content_db.GetZoneID(destination_zone_name),
static_cast<uint32>(this->destination_instance_id),
m_Destination.x,
m_Destination.y,
@ -820,14 +820,14 @@ void Doors::SetDisableTimer(bool flag) {
void Doors::CreateDatabaseEntry()
{
if (database.GetDoorsDBCountPlusOne(zone->GetShortName(), zone->GetInstanceVersion()) - 1 >= 255) {
if (content_db.GetDoorsDBCountPlusOne(zone->GetShortName(), zone->GetInstanceVersion()) - 1 >= 255) {
return;
}
/**
* Persist
*/
database.InsertDoor(
content_db.InsertDoor(
GetDoorDBID(),
GetDoorID(),
GetDoorName(),

View File

@ -408,35 +408,3 @@ void Client::GuildChangeRank(const char* name, uint32 guild_id, uint32 oldrank,
SendGuildMembers(guild_id, true);
}*/
bool ZoneDatabase::CheckGuildDoor(uint8 doorid, uint16 guild_id, const char* zone) {
std::string query = StringFormat("SELECT guild FROM doors WHERE doorid = %i AND zone = '%s'",
doorid-128, zone);
auto results = QueryDatabase(query);
if (!results.Success()) {
return false;
}
if (results.RowCount() != 1)
return false;
auto row = results.begin();
return atoi(row[0]) == guild_id;
}
bool ZoneDatabase::SetGuildDoor(uint8 doorid,uint16 guild_id, const char* zone) {
if (doorid > 127)
doorid = doorid - 128;
std::string query = StringFormat("UPDATE doors SET guild = %i WHERE (doorid=%i) AND (zone='%s')",
guild_id, doorid, zone);
auto results = QueryDatabase(query);
if (!results.Success()) {
return false;
}
return (results.RowsAffected() > 0);
}

View File

@ -743,7 +743,7 @@ void Zone::LoadZoneDoors(const char* zone, int16 version)
LogInfo("Loading doors for [{}] ", zone);
uint32 maxid;
int32 count = database.GetDoorsCount(&maxid, zone, version);
int32 count = content_db.GetDoorsCount(&maxid, zone, version);
if(count < 1) {
LogInfo("No doors loaded");
return;
@ -751,7 +751,7 @@ void Zone::LoadZoneDoors(const char* zone, int16 version)
auto dlist = new Door[count];
if(!database.LoadDoors(count, dlist, zone, version)) {
if(!content_db.LoadDoors(count, dlist, zone, version)) {
LogError("Failed to load doors");
delete[] dlist;
return;

View File

@ -503,8 +503,6 @@ public:
bool DoorIsOpen(uint8 door_id,const char* zone_name);
void SetDoorPlace(uint8 value,uint8 door_id,const char* zone_name);
bool LoadDoors(int32 door_count, Door *into, const char *zone_name, int16 version);
bool CheckGuildDoor(uint8 doorid,uint16 guild_id, const char* zone);
bool SetGuildDoor(uint8 doorid,uint16 guild_id, const char* zone);
uint32 GetGuildEQID(uint32 guilddbid);
void UpdateDoorGuildID(int doorid, int guild_id);
int32 GetDoorsCount(uint32* oMaxID, const char *zone_name, int16 version);