[Quest API] Add Overloads to MoveZone Methods in Perl/Lua. (#2551)

# Perl
- Add `$client->MoveZone(zone_name, x, y, z)`.
- Add `$client->MoveZone(zone_name, x, y, z, h)`.
- Add `$client->MoveZoneGroup(zone_name, x, y, z)`.
- Add `$client->MoveZoneGroup(zone_name, x, y, z, h)`.
- Add `$client->MoveZoneRaid(zone_name, x, y, z)`.
- Add `$client->MoveZoneRaid(zone_name, x, y, z, h)`.
- Add `$client->MoveZoneInstance(instance_id, x, y, z)`.
- Add `$client->MoveZoneInstance(instance_id, x, y, z, h)`.
- Add `$client->MoveZoneInstanceGroup(instance_id, x, y, z)`.
- Add `$client->MoveZoneInstanceGroup(instance_id, x, y, z, h)`.
- Add `$client->MoveZoneInstanceRaid(instance_id, x, y, z)`.
- Add `$client->MoveZoneInstanceRaid(instance_id, x, y, z, h)`.

# Lua
- Add `client:MoveZone(zone_name, x, y, z)`.
- Add `client:MoveZone(zone_name, x, y, z, h)`.
- Add `client:MoveZoneGroup(zone_name, x, y, z)`.
- Add `client:MoveZoneGroup(zone_name, x, y, z, h)`.
- Add `client:MoveZoneRaid(zone_name, x, y, z)`.
- Add `client:MoveZoneRaid(zone_name, x, y, z, h)`.
- Add `client:MoveZoneInstance(instance_id, x, y, z)`.
- Add `client:MoveZoneInstance(instance_id, x, y, z, h)`.
- Add `client:MoveZoneInstanceGroup(instance_id, x, y, z)`.
- Add `client:MoveZoneInstanceGroup(instance_id, x, y, z, h)`.
- Add `client:MoveZoneInstanceRaid(instance_id, x, y, z)`.
- Add `client:MoveZoneInstanceRaid(instance_id, x, y, z, h)`.

# Notes
- Adds XYZ/XYZH overloads to these methods so it no longer assumes safe coordinates unless position isn't specified.
This commit is contained in:
Kinglykrab 2022-11-22 16:48:05 -05:00 committed by GitHub
parent 8373dd1cb9
commit 5e6741cf17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 245 additions and 88 deletions

View File

@ -661,12 +661,12 @@ public:
void MovePC(uint32 zoneID, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited);
void MovePC(float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited);
void MovePC(uint32 zoneID, uint32 instanceID, float x, float y, float z, float heading, uint8 ignorerestrictions = 0, ZoneMode zm = ZoneSolicited);
void MoveZone(const char *zone_short_name);
void MoveZoneGroup(const char *zone_short_name);
void MoveZoneRaid(const char *zone_short_name);
void MoveZoneInstance(uint16 instance_id);
void MoveZoneInstanceGroup(uint16 instance_id);
void MoveZoneInstanceRaid(uint16 instance_id);
void MoveZone(const char *zone_short_name, const glm::vec4& location = glm::vec4(0.f));
void MoveZoneGroup(const char *zone_short_name, const glm::vec4& location = glm::vec4(0.f));
void MoveZoneRaid(const char *zone_short_name, const glm::vec4& location = glm::vec4(0.f));
void MoveZoneInstance(uint16 instance_id, const glm::vec4& location = glm::vec4(0.f));
void MoveZoneInstanceGroup(uint16 instance_id, const glm::vec4& location = glm::vec4(0.f));
void MoveZoneInstanceRaid(uint16 instance_id, const glm::vec4& location = glm::vec4(0.f));
void SendToGuildHall();
void SendToInstance(std::string instance_type, std::string zone_short_name, uint32 instance_version, float x, float y, float z, float heading, std::string instance_identifier, uint32 duration);
void AssignToInstance(uint16 instance_id);

View File

@ -386,36 +386,6 @@ void Lua_Client::MovePCInstance(int zone, int instance, float x, float y, float
self->MovePC(zone, instance, x, y, z, heading);
}
void Lua_Client::MoveZone(const char *zone_short_name) {
Lua_Safe_Call_Void();
self->MoveZone(zone_short_name);
}
void Lua_Client::MoveZoneGroup(const char *zone_short_name) {
Lua_Safe_Call_Void();
self->MoveZoneGroup(zone_short_name);
}
void Lua_Client::MoveZoneRaid(const char *zone_short_name) {
Lua_Safe_Call_Void();
self->MoveZoneRaid(zone_short_name);
}
void Lua_Client::MoveZoneInstance(uint16 instance_id) {
Lua_Safe_Call_Void();
self->MoveZoneInstance(instance_id);
}
void Lua_Client::MoveZoneInstanceGroup(uint16 instance_id) {
Lua_Safe_Call_Void();
self->MoveZoneInstanceGroup(instance_id);
}
void Lua_Client::MoveZoneInstanceRaid(uint16 instance_id) {
Lua_Safe_Call_Void();
self->MoveZoneInstanceRaid(instance_id);
}
void Lua_Client::ChangeLastName(std::string last_name) {
Lua_Safe_Call_Void();
self->ChangeLastName(last_name);
@ -2613,6 +2583,96 @@ void Lua_Client::SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in
self->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, message);
}
void Lua_Client::MoveZone(const char *zone_short_name) {
Lua_Safe_Call_Void();
self->MoveZone(zone_short_name);
}
void Lua_Client::MoveZone(const char *zone_short_name, float x, float y, float z) {
Lua_Safe_Call_Void();
self->MoveZone(zone_short_name, glm::vec4(x, y, z, 0.0f));
}
void Lua_Client::MoveZone(const char *zone_short_name, float x, float y, float z, float heading) {
Lua_Safe_Call_Void();
self->MoveZone(zone_short_name, glm::vec4(x, y, z, heading));
}
void Lua_Client::MoveZoneGroup(const char *zone_short_name) {
Lua_Safe_Call_Void();
self->MoveZoneGroup(zone_short_name);
}
void Lua_Client::MoveZoneGroup(const char *zone_short_name, float x, float y, float z) {
Lua_Safe_Call_Void();
self->MoveZoneGroup(zone_short_name, glm::vec4(x, y, z, 0.0f));
}
void Lua_Client::MoveZoneGroup(const char *zone_short_name, float x, float y, float z, float heading) {
Lua_Safe_Call_Void();
self->MoveZoneGroup(zone_short_name, glm::vec4(x, y, z, heading));
}
void Lua_Client::MoveZoneRaid(const char *zone_short_name) {
Lua_Safe_Call_Void();
self->MoveZoneRaid(zone_short_name);
}
void Lua_Client::MoveZoneRaid(const char *zone_short_name, float x, float y, float z) {
Lua_Safe_Call_Void();
self->MoveZoneRaid(zone_short_name, glm::vec4(x, y, z, 0.0f));
}
void Lua_Client::MoveZoneRaid(const char *zone_short_name, float x, float y, float z, float heading) {
Lua_Safe_Call_Void();
self->MoveZoneRaid(zone_short_name, glm::vec4(x, y, z, heading));
}
void Lua_Client::MoveZoneInstance(uint16 instance_id) {
Lua_Safe_Call_Void();
self->MoveZoneInstance(instance_id);
}
void Lua_Client::MoveZoneInstance(uint16 instance_id, float x, float y, float z) {
Lua_Safe_Call_Void();
self->MoveZoneInstance(instance_id, glm::vec4(x, y, z, 0.0f));
}
void Lua_Client::MoveZoneInstance(uint16 instance_id, float x, float y, float z, float heading) {
Lua_Safe_Call_Void();
self->MoveZoneInstance(instance_id, glm::vec4(x, y, z, heading));
}
void Lua_Client::MoveZoneInstanceGroup(uint16 instance_id) {
Lua_Safe_Call_Void();
self->MoveZoneInstanceGroup(instance_id);
}
void Lua_Client::MoveZoneInstanceGroup(uint16 instance_id, float x, float y, float z) {
Lua_Safe_Call_Void();
self->MoveZoneInstanceGroup(instance_id, glm::vec4(x, y, z, 0.0f));
}
void Lua_Client::MoveZoneInstanceGroup(uint16 instance_id, float x, float y, float z, float heading) {
Lua_Safe_Call_Void();
self->MoveZoneInstanceGroup(instance_id, glm::vec4(x, y, z, heading));
}
void Lua_Client::MoveZoneInstanceRaid(uint16 instance_id) {
Lua_Safe_Call_Void();
self->MoveZoneInstanceRaid(instance_id);
}
void Lua_Client::MoveZoneInstanceRaid(uint16 instance_id, float x, float y, float z) {
Lua_Safe_Call_Void();
self->MoveZoneInstanceRaid(instance_id, glm::vec4(x, y, z, 0.0f));
}
void Lua_Client::MoveZoneInstanceRaid(uint16 instance_id, float x, float y, float z, float heading) {
Lua_Safe_Call_Void();
self->MoveZoneInstanceRaid(instance_id, glm::vec4(x, y, z, heading));
}
void Lua_Client::ApplySpell(int spell_id) {
Lua_Safe_Call_Void();
self->ApplySpell(spell_id);
@ -3136,11 +3196,23 @@ luabind::scope lua_register_client() {
.def("MovePCDynamicZone", (void(Lua_Client::*)(uint32, int, bool))&Lua_Client::MovePCDynamicZone)
.def("MovePCInstance", (void(Lua_Client::*)(int,int,float,float,float,float))&Lua_Client::MovePCInstance)
.def("MoveZone", (void(Lua_Client::*)(const char*))&Lua_Client::MoveZone)
.def("MoveZone", (void(Lua_Client::*)(const char*,float,float,float))&Lua_Client::MoveZone)
.def("MoveZone", (void(Lua_Client::*)(const char*,float,float,float,float))&Lua_Client::MoveZone)
.def("MoveZoneGroup", (void(Lua_Client::*)(const char*))&Lua_Client::MoveZoneGroup)
.def("MoveZoneGroup", (void(Lua_Client::*)(const char*,float,float,float))&Lua_Client::MoveZoneGroup)
.def("MoveZoneGroup", (void(Lua_Client::*)(const char*,float,float,float,float))&Lua_Client::MoveZoneGroup)
.def("MoveZoneInstance", (void(Lua_Client::*)(uint16))&Lua_Client::MoveZoneInstance)
.def("MoveZoneInstance", (void(Lua_Client::*)(uint16,float,float,float))&Lua_Client::MoveZoneInstance)
.def("MoveZoneInstance", (void(Lua_Client::*)(uint16,float,float,float,float))&Lua_Client::MoveZoneInstance)
.def("MoveZoneInstanceGroup", (void(Lua_Client::*)(uint16))&Lua_Client::MoveZoneInstanceGroup)
.def("MoveZoneInstanceGroup", (void(Lua_Client::*)(uint16,float,float,float))&Lua_Client::MoveZoneInstanceGroup)
.def("MoveZoneInstanceGroup", (void(Lua_Client::*)(uint16,float,float,float,float))&Lua_Client::MoveZoneInstanceGroup)
.def("MoveZoneInstanceRaid", (void(Lua_Client::*)(uint16))&Lua_Client::MoveZoneInstanceRaid)
.def("MoveZoneInstanceRaid", (void(Lua_Client::*)(uint16,float,float,float))&Lua_Client::MoveZoneInstanceRaid)
.def("MoveZoneInstanceRaid", (void(Lua_Client::*)(uint16,float,float,float,float))&Lua_Client::MoveZoneInstanceRaid)
.def("MoveZoneRaid", (void(Lua_Client::*)(const char*))&Lua_Client::MoveZoneRaid)
.def("MoveZoneRaid", (void(Lua_Client::*)(const char*,float,float,float))&Lua_Client::MoveZoneRaid)
.def("MoveZoneRaid", (void(Lua_Client::*)(const char*,float,float,float,float))&Lua_Client::MoveZoneRaid)
.def("NotifyNewTitlesAvailable", (void(Lua_Client::*)(void))&Lua_Client::NotifyNewTitlesAvailable)
.def("NukeItem", (void(Lua_Client::*)(uint32))&Lua_Client::NukeItem)
.def("NukeItem", (void(Lua_Client::*)(uint32,int))&Lua_Client::NukeItem)

View File

@ -117,11 +117,23 @@ public:
void MovePC(int zone, float x, float y, float z, float heading);
void MovePCInstance(int zone, int instance, float x, float y, float z, float heading);
void MoveZone(const char *zone_short_name);
void MoveZone(const char *zone_short_name, float x, float y, float z);
void MoveZone(const char *zone_short_name, float x, float y, float z, float heading);
void MoveZoneGroup(const char *zone_short_name);
void MoveZoneGroup(const char *zone_short_name, float x, float y, float z);
void MoveZoneGroup(const char *zone_short_name, float x, float y, float z, float heading);
void MoveZoneRaid(const char *zone_short_name);
void MoveZoneRaid(const char *zone_short_name, float x, float y, float z);
void MoveZoneRaid(const char *zone_short_name, float x, float y, float z, float heading);
void MoveZoneInstance(uint16 instance_id);
void MoveZoneInstance(uint16 instance_id, float x, float y, float z);
void MoveZoneInstance(uint16 instance_id, float x, float y, float z, float heading);
void MoveZoneInstanceGroup(uint16 instance_id);
void MoveZoneInstanceGroup(uint16 instance_id, float x, float y, float z);
void MoveZoneInstanceGroup(uint16 instance_id, float x, float y, float z, float heading);
void MoveZoneInstanceRaid(uint16 instance_id);
void MoveZoneInstanceRaid(uint16 instance_id, float x, float y, float z);
void MoveZoneInstanceRaid(uint16 instance_id, float x, float y, float z, float heading);
bool TeleportToPlayerByCharID(uint32 character_id);
bool TeleportToPlayerByName(std::string player_name);
bool TeleportGroupToPlayerByCharID(uint32 character_id);

View File

@ -339,36 +339,6 @@ void Perl_Client_MovePCInstance(Client* self, uint32 zone_id, uint32 instance_id
self->MovePC(zone_id, instance_id, x, y, z, heading);
}
void Perl_Client_MoveZone(Client* self, const char* zone_short_name) // @categories Script Utility
{
self->MoveZone(zone_short_name);
}
void Perl_Client_MoveZoneGroup(Client* self, const char* zone_short_name) // @categories Script Utility, Group
{
self->MoveZoneGroup(zone_short_name);
}
void Perl_Client_MoveZoneRaid(Client* self, const char* zone_short_name) // @categories Script Utility, Raid
{
self->MoveZoneRaid(zone_short_name);
}
void Perl_Client_MoveZoneInstance(Client* self, uint16 instance_id) // @categories Adventures and Expeditions, Script Utility
{
self->MoveZoneInstance(instance_id);
}
void Perl_Client_MoveZoneInstanceGroup(Client* self, uint16 instance_id) // @categories Adventures and Expeditions, Script Utility, Group
{
self->MoveZoneInstanceGroup(instance_id);
}
void Perl_Client_MoveZoneInstanceRaid(Client* self, uint16 instance_id) // @categories Adventures and Expeditions, Script Utility, Raid
{
self->MoveZoneInstanceRaid(instance_id);
}
void Perl_Client_ChangeLastName(Client* self, std::string last_name) // @categories Account and Character
{
self->ChangeLastName(last_name);
@ -2506,6 +2476,96 @@ void Perl_Client_SendMarqueeMessage(Client* self, uint32 type, uint32 priority,
self->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, message);
}
void Perl_Client_MoveZone(Client* self, const char* zone_short_name) // @categories Script Utility
{
self->MoveZone(zone_short_name);
}
void Perl_Client_MoveZone(Client* self, const char* zone_short_name, float x, float y, float z) // @categories Script Utility
{
self->MoveZone(zone_short_name, glm::vec4(x, y, z, 0.0f));
}
void Perl_Client_MoveZone(Client* self, const char* zone_short_name, float x, float y, float z, float heading) // @categories Script Utility
{
self->MoveZone(zone_short_name, glm::vec4(x, y, z, heading));
}
void Perl_Client_MoveZoneGroup(Client* self, const char* zone_short_name) // @categories Script Utility, Group
{
self->MoveZoneGroup(zone_short_name);
}
void Perl_Client_MoveZoneGroup(Client* self, const char* zone_short_name, float x, float y, float z) // @categories Script Utility
{
self->MoveZoneGroup(zone_short_name, glm::vec4(x, y, z, 0.0f));
}
void Perl_Client_MoveZoneGroup(Client* self, const char* zone_short_name, float x, float y, float z, float heading) // @categories Script Utility
{
self->MoveZoneGroup(zone_short_name, glm::vec4(x, y, z, heading));
}
void Perl_Client_MoveZoneRaid(Client* self, const char* zone_short_name) // @categories Script Utility, Raid
{
self->MoveZoneRaid(zone_short_name);
}
void Perl_Client_MoveZoneRaid(Client* self, const char* zone_short_name, float x, float y, float z) // @categories Script Utility
{
self->MoveZoneRaid(zone_short_name, glm::vec4(x, y, z, 0.0f));
}
void Perl_Client_MoveZoneRaid(Client* self, const char* zone_short_name, float x, float y, float z, float heading) // @categories Script Utility
{
self->MoveZoneRaid(zone_short_name, glm::vec4(x, y, z, heading));
}
void Perl_Client_MoveZoneInstance(Client* self, uint16 instance_id) // @categories Adventures and Expeditions, Script Utility
{
self->MoveZoneInstance(instance_id);
}
void Perl_Client_MoveZoneInstance(Client* self, uint16 instance_id, float x, float y, float z) // @categories Adventures and Expeditions, Script Utility
{
self->MoveZoneInstance(instance_id, glm::vec4(x, y, z, 0.0f));
}
void Perl_Client_MoveZoneInstance(Client* self, uint16 instance_id, float x, float y, float z, float heading) // @categories Adventures and Expeditions, Script Utility
{
self->MoveZoneInstance(instance_id, glm::vec4(x, y, z, heading));
}
void Perl_Client_MoveZoneInstanceGroup(Client* self, uint16 instance_id) // @categories Adventures and Expeditions, Script Utility, Group
{
self->MoveZoneInstanceGroup(instance_id);
}
void Perl_Client_MoveZoneInstanceGroup(Client* self, uint16 instance_id, float x, float y, float z) // @categories Adventures and Expeditions, Script Utility
{
self->MoveZoneInstanceGroup(instance_id, glm::vec4(x, y, z, 0.0f));
}
void Perl_Client_MoveZoneInstanceGroup(Client* self, uint16 instance_id, float x, float y, float z, float heading) // @categories Adventures and Expeditions, Script Utility
{
self->MoveZoneInstanceGroup(instance_id, glm::vec4(x, y, z, heading));
}
void Perl_Client_MoveZoneInstanceRaid(Client* self, uint16 instance_id) // @categories Adventures and Expeditions, Script Utility, Raid
{
self->MoveZoneInstanceRaid(instance_id);
}
void Perl_Client_MoveZoneInstanceRaid(Client* self, uint16 instance_id, float x, float y, float z) // @categories Adventures and Expeditions, Script Utility
{
self->MoveZoneInstanceRaid(instance_id, glm::vec4(x, y, z, 0.0f));
}
void Perl_Client_MoveZoneInstanceRaid(Client* self, uint16 instance_id, float x, float y, float z, float heading) // @categories Adventures and Expeditions, Script Utility
{
self->MoveZoneInstanceRaid(instance_id, glm::vec4(x, y, z, heading));
}
void Perl_Client_ApplySpell(Client* self, int spell_id)
{
self->ApplySpell(spell_id);
@ -3009,12 +3069,24 @@ void perl_register_client()
package.add("MovePCDynamicZone", (void(*)(Client*, perl::scalar, int))&Perl_Client_MovePCDynamicZone);
package.add("MovePCDynamicZone", (void(*)(Client*, perl::scalar, int, bool))&Perl_Client_MovePCDynamicZone);
package.add("MovePCInstance", &Perl_Client_MovePCInstance);
package.add("MoveZone", &Perl_Client_MoveZone);
package.add("MoveZoneGroup", &Perl_Client_MoveZoneGroup);
package.add("MoveZoneInstance", &Perl_Client_MoveZoneInstance);
package.add("MoveZoneInstanceGroup", &Perl_Client_MoveZoneInstanceGroup);
package.add("MoveZoneInstanceRaid", &Perl_Client_MoveZoneInstanceRaid);
package.add("MoveZoneRaid", &Perl_Client_MoveZoneRaid);
package.add("MoveZone", (void(*)(Client*, const char*))&Perl_Client_MoveZone);
package.add("MoveZone", (void(*)(Client*, const char*, float, float, float))&Perl_Client_MoveZone);
package.add("MoveZone", (void(*)(Client*, const char*, float, float, float, float))&Perl_Client_MoveZone);
package.add("MoveZoneGroup", (void(*)(Client*, const char*))&Perl_Client_MoveZoneGroup);
package.add("MoveZoneGroup", (void(*)(Client*, const char*, float, float, float))&Perl_Client_MoveZoneGroup);
package.add("MoveZoneGroup", (void(*)(Client*, const char*, float, float, float, float))&Perl_Client_MoveZoneGroup);
package.add("MoveZoneInstance", (void(*)(Client*, uint16))&Perl_Client_MoveZoneInstance);
package.add("MoveZoneInstance", (void(*)(Client*, uint16, float, float, float))&Perl_Client_MoveZoneInstance);
package.add("MoveZoneInstance", (void(*)(Client*, uint16, float, float, float, float))&Perl_Client_MoveZoneInstance);
package.add("MoveZoneInstanceGroup", (void(*)(Client*, uint16))&Perl_Client_MoveZoneInstanceGroup);
package.add("MoveZoneInstanceGroup", (void(*)(Client*, uint16, float, float, float))&Perl_Client_MoveZoneInstanceGroup);
package.add("MoveZoneInstanceGroup", (void(*)(Client*, uint16, float, float, float, float))&Perl_Client_MoveZoneInstanceGroup);
package.add("MoveZoneInstanceRaid", (void(*)(Client*, uint16))&Perl_Client_MoveZoneInstanceRaid);
package.add("MoveZoneInstanceRaid", (void(*)(Client*, uint16, float, float, float))&Perl_Client_MoveZoneInstanceRaid);
package.add("MoveZoneInstanceRaid", (void(*)(Client*, uint16, float, float, float, float))&Perl_Client_MoveZoneInstanceRaid);
package.add("MoveZoneRaid", (void(*)(Client*, const char*))&Perl_Client_MoveZoneRaid);
package.add("MoveZoneRaid", (void(*)(Client*, const char*, float, float, float))&Perl_Client_MoveZoneRaid);
package.add("MoveZoneRaid", (void(*)(Client*, const char*, float, float, float, float))&Perl_Client_MoveZoneRaid);
package.add("NPCSpawn", (void(*)(Client*, NPC*, const char*))&Perl_Client_NPCSpawn);
package.add("NPCSpawn", (void(*)(Client*, NPC*, const char*, uint32))&Perl_Client_NPCSpawn);
package.add("NotifyNewTitlesAvailable", &Perl_Client_NotifyNewTitlesAvailable);

View File

@ -512,68 +512,69 @@ void Client::MovePC(uint32 zoneID, uint32 instanceID, float x, float y, float z,
ProcessMovePC(zoneID, instanceID, x, y, z, heading, ignorerestrictions, zm);
}
void Client::MoveZone(const char *zone_short_name) {
ProcessMovePC(ZoneID(zone_short_name), 0, 0.0f, 0.0f, 0.0f, 0.0f, 3, ZoneToSafeCoords);
void Client::MoveZone(const char *zone_short_name, const glm::vec4 &location) {
ProcessMovePC(ZoneID(zone_short_name), 0, location.x, location.y, location.z, location.w, 3, ZoneToSafeCoords);
}
void Client::MoveZoneGroup(const char *zone_short_name) {
void Client::MoveZoneGroup(const char *zone_short_name, const glm::vec4 &location) {
if (!GetGroup()) {
MoveZone(zone_short_name);
MoveZone(zone_short_name, location);
} else {
auto client_group = 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();
group_member->MoveZone(zone_short_name);
group_member->MoveZone(zone_short_name, location);
}
}
}
}
void Client::MoveZoneRaid(const char *zone_short_name) {
void Client::MoveZoneRaid(const char *zone_short_name, const glm::vec4 &location) {
if (!GetRaid()) {
MoveZone(zone_short_name);
MoveZone(zone_short_name, location);
} else {
auto client_raid = 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();
raid_member->MoveZone(zone_short_name);
raid_member->MoveZone(zone_short_name, location);
}
}
}
}
void Client::MoveZoneInstance(uint16 instance_id) {
void Client::MoveZoneInstance(uint16 instance_id, const glm::vec4 &location) {
if (!database.CharacterInInstanceGroup(instance_id, CharacterID())) {
database.AddClientToInstance(instance_id, CharacterID());
}
ProcessMovePC(database.ZoneIDFromInstanceID(instance_id), instance_id, 0.0f, 0.0f, 0.0f, 0.0f, 3, ZoneToSafeCoords);
ProcessMovePC(database.ZoneIDFromInstanceID(instance_id), instance_id, location.x, location.y, location.z, location.w, 3, ZoneToSafeCoords);
}
void Client::MoveZoneInstanceGroup(uint16 instance_id) {
void Client::MoveZoneInstanceGroup(uint16 instance_id, const glm::vec4 &location) {
if (!GetGroup()) {
MoveZoneInstance(instance_id);
MoveZoneInstance(instance_id, location);
} else {
auto client_group = 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();
group_member->MoveZoneInstance(instance_id);
group_member->MoveZoneInstance(instance_id, location);
}
}
}
}
void Client::MoveZoneInstanceRaid(uint16 instance_id) {
void Client::MoveZoneInstanceRaid(uint16 instance_id, const glm::vec4 &location) {
if (!GetRaid()) {
MoveZoneInstance(instance_id);
MoveZoneInstance(instance_id, location);
} else {
auto client_raid = 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();
raid_member->MoveZoneInstance(instance_id);
raid_member->MoveZoneInstance(instance_id, location);
}
}
}