diff --git a/zone/embparser_api.cpp b/zone/embparser_api.cpp index 4faae7c8c..0e65240d4 100644 --- a/zone/embparser_api.cpp +++ b/zone/embparser_api.cpp @@ -1321,11 +1321,9 @@ XS(XS__rebind) Perl_croak(aTHX_ "Usage: rebind(zoneid, x, y, z)"); int zoneid = (int)SvIV(ST(0)); - float x = (float)SvNV(ST(1)); - float y = (float)SvNV(ST(2)); - float z = (float)SvNV(ST(3)); + auto location = xyz_location((float)SvNV(ST(1)),(float)SvNV(ST(2)),(float)SvNV(ST(3))); - quest_manager.rebind(zoneid, x, y, z); + quest_manager.rebind(zoneid, location); XSRETURN_EMPTY; } diff --git a/zone/questmgr.cpp b/zone/questmgr.cpp index a1a6a419f..425175e43 100644 --- a/zone/questmgr.cpp +++ b/zone/questmgr.cpp @@ -1522,10 +1522,10 @@ void QuestManager::ding() { } -void QuestManager::rebind(int zoneid, float x, float y, float z) { +void QuestManager::rebind(int zoneid, const xyz_location& location) { QuestManagerCurrentQuestVars(); if(initiator && initiator->IsClient()) { - initiator->SetBindPoint(zoneid, 0, xyz_location(x, y, z)); + initiator->SetBindPoint(zoneid, 0, location); } } diff --git a/zone/questmgr.h b/zone/questmgr.h index 6e8c6f4b5..de824c8a2 100644 --- a/zone/questmgr.h +++ b/zone/questmgr.h @@ -131,7 +131,7 @@ public: void targlobal(const char *varname, const char *value, const char *duration, int npcid, int charid, int zoneid); void delglobal(const char *varname); void ding(); - void rebind(int zoneid, float x, float y, float z); + void rebind(int zoneid, const xyz_location& location); void start(int wp); void stop(); void pause(int duration);