diff --git a/zone/questmgr.cpp b/zone/questmgr.cpp index 599204a5c..9fb6d79e7 100644 --- a/zone/questmgr.cpp +++ b/zone/questmgr.cpp @@ -397,18 +397,7 @@ void QuestManager::Zone(const char *zone_name) { QuestManagerCurrentQuestVars(); if (initiator && initiator->IsClient()) { - auto pack = new ServerPacket(ServerOP_ZoneToZoneRequest, sizeof(ZoneToZone_Struct)); - ZoneToZone_Struct* ztz = (ZoneToZone_Struct*) pack->pBuffer; - ztz->response = 0; - ztz->current_zone_id = zone->GetZoneID(); - ztz->current_instance_id = zone->GetInstanceID(); - ztz->requested_zone_id = ZoneID(zone_name); - ztz->admin = initiator->Admin(); - strcpy(ztz->name, initiator->GetName()); - ztz->guild_id = initiator->GuildID(); - ztz->ignorerestrictions = 3; - worldserver.SendPacket(pack); - safe_delete(pack); + initiator->MoveZone(zone_name); } } @@ -416,35 +405,13 @@ void QuestManager::ZoneGroup(const char *zone_name) { QuestManagerCurrentQuestVars(); if (initiator && initiator->IsClient()) { if (!initiator->GetGroup()) { - auto pack = new ServerPacket(ServerOP_ZoneToZoneRequest, sizeof(ZoneToZone_Struct)); - ZoneToZone_Struct* ztz = (ZoneToZone_Struct*) pack->pBuffer; - ztz->response = 0; - ztz->current_zone_id = zone->GetZoneID(); - ztz->current_instance_id = zone->GetInstanceID(); - ztz->requested_zone_id = ZoneID(zone_name); - ztz->admin = initiator->Admin(); - strcpy(ztz->name, initiator->GetName()); - ztz->guild_id = initiator->GuildID(); - ztz->ignorerestrictions = 3; - worldserver.SendPacket(pack); - safe_delete(pack); + initiator->MoveZone(zone_name); } else { auto client_group = initiator->GetGroup(); for (int member_index = 0; member_index < MAX_GROUP_MEMBERS; member_index++) { if (client_group->members[member_index] && client_group->members[member_index]->IsClient()) { auto group_member = client_group->members[member_index]->CastToClient(); - auto pack = new ServerPacket(ServerOP_ZoneToZoneRequest, sizeof(ZoneToZone_Struct)); - ZoneToZone_Struct* ztz = (ZoneToZone_Struct*) pack->pBuffer; - ztz->response = 0; - ztz->current_zone_id = zone->GetZoneID(); - ztz->current_instance_id = zone->GetInstanceID(); - ztz->requested_zone_id = ZoneID(zone_name); - ztz->admin = group_member->Admin(); - strcpy(ztz->name, group_member->GetName()); - ztz->guild_id = group_member->GuildID(); - ztz->ignorerestrictions = 3; - worldserver.SendPacket(pack); - safe_delete(pack); + group_member->MoveZone(zone_name); } } } @@ -455,35 +422,13 @@ void QuestManager::ZoneRaid(const char *zone_name) { QuestManagerCurrentQuestVars(); if (initiator && initiator->IsClient()) { if (!initiator->GetRaid()) { - auto pack = new ServerPacket(ServerOP_ZoneToZoneRequest, sizeof(ZoneToZone_Struct)); - ZoneToZone_Struct* ztz = (ZoneToZone_Struct*) pack->pBuffer; - ztz->response = 0; - ztz->current_zone_id = zone->GetZoneID(); - ztz->current_instance_id = zone->GetInstanceID(); - ztz->requested_zone_id = ZoneID(zone_name); - ztz->admin = initiator->Admin(); - strcpy(ztz->name, initiator->GetName()); - ztz->guild_id = initiator->GuildID(); - ztz->ignorerestrictions = 3; - worldserver.SendPacket(pack); - safe_delete(pack); + initiator->MoveZone(zone_name); } else { auto client_raid = initiator->GetRaid(); for (int member_index = 0; member_index < MAX_RAID_MEMBERS; member_index++) { if (client_raid->members[member_index].member && client_raid->members[member_index].member->IsClient()) { auto raid_member = client_raid->members[member_index].member->CastToClient(); - auto pack = new ServerPacket(ServerOP_ZoneToZoneRequest, sizeof(ZoneToZone_Struct)); - ZoneToZone_Struct* ztz = (ZoneToZone_Struct*) pack->pBuffer; - ztz->response = 0; - ztz->current_zone_id = zone->GetZoneID(); - ztz->current_instance_id = zone->GetInstanceID(); - ztz->requested_zone_id = ZoneID(zone_name); - ztz->admin = raid_member->Admin(); - strcpy(ztz->name, raid_member->GetName()); - ztz->guild_id = raid_member->GuildID(); - ztz->ignorerestrictions = 3; - worldserver.SendPacket(pack); - safe_delete(pack); + raid_member->MoveZone(zone_name); } } } diff --git a/zone/zoning.cpp b/zone/zoning.cpp index 385c42668..581208f90 100644 --- a/zone/zoning.cpp +++ b/zone/zoning.cpp @@ -533,18 +533,7 @@ void Client::MovePC(uint32 zoneID, uint32 instanceID, float x, float y, float z, } void Client::MoveZone(const char *zone_short_name) { - auto pack = new ServerPacket(ServerOP_ZoneToZoneRequest, sizeof(ZoneToZone_Struct)); - ZoneToZone_Struct* ztz = (ZoneToZone_Struct*) pack->pBuffer; - ztz->response = 0; - ztz->current_zone_id = zone->GetZoneID(); - ztz->current_instance_id = zone->GetInstanceID(); - ztz->requested_zone_id = ZoneID(zone_short_name); - ztz->admin = Admin(); - strcpy(ztz->name, GetName()); - ztz->guild_id = GuildID(); - ztz->ignorerestrictions = 3; - worldserver.SendPacket(pack); - safe_delete(pack); + ProcessMovePC(ZoneID(zone_short_name), 0, 0.0f, 0.0f, 0.0f, 0.0f, 3, ZoneToSafeCoords); } void Client::MoveZoneGroup(const char *zone_short_name) { @@ -579,19 +568,7 @@ void Client::MoveZoneInstance(uint16 instance_id) { if (!database.CharacterInInstanceGroup(instance_id, CharacterID())) { database.AddClientToInstance(instance_id, CharacterID()); } - auto pack = new ServerPacket(ServerOP_ZoneToZoneRequest, sizeof(ZoneToZone_Struct)); - ZoneToZone_Struct* ztz = (ZoneToZone_Struct*) pack->pBuffer; - ztz->response = 0; - ztz->current_zone_id = zone->GetZoneID(); - ztz->current_instance_id = zone->GetInstanceID(); - ztz->requested_zone_id = database.ZoneIDFromInstanceID(instance_id); - ztz->requested_instance_id = instance_id; - ztz->admin = Admin(); - strcpy(ztz->name, GetName()); - ztz->guild_id = GuildID(); - ztz->ignorerestrictions = 3; - worldserver.SendPacket(pack); - safe_delete(pack); + ProcessMovePC(database.ZoneIDFromInstanceID(instance_id), instance_id, 0.0f, 0.0f, 0.0f, 0.0f, 3, ZoneToSafeCoords); } void Client::MoveZoneInstanceGroup(uint16 instance_id) {