mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
Change QuestManager RemoveAllFromInstance function to use existing function to remove all clients from instance.
6345 lines
157 KiB
C++
6345 lines
157 KiB
C++
/*
|
|
* This file was generated automatically by xsubpp version 1.9508 from the
|
|
* contents of tmp. Do not edit this file, edit tmp instead.
|
|
*
|
|
* ANY CHANGES MADE HERE WILL BE LOST!
|
|
*
|
|
*/
|
|
|
|
|
|
/* EQEMu: Everquest Server Emulator
|
|
Copyright (C) 2001-2004 EQEMu Development Team (http://eqemulator.net)
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY except by those people which sell it, which
|
|
are required to give you total support for your newly bought product;
|
|
without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#include "../common/features.h"
|
|
#ifdef EMBPERL_XS_CLASSES
|
|
#include "../common/debug.h"
|
|
#include "embperl.h"
|
|
|
|
#ifdef seed
|
|
#undef seed
|
|
#endif
|
|
|
|
#include "client.h"
|
|
#include "titles.h"
|
|
|
|
#ifdef THIS /* this macro seems to leak out on some systems */
|
|
#undef THIS
|
|
#endif
|
|
|
|
XS(XS_Client_SendSound); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SendSound)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::SendSound(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendSound();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_Save); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Save)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::Save(THIS, iCommitNow)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
uint8 iCommitNow = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->Save(iCommitNow);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SaveBackup); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SaveBackup)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::SaveBackup(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SaveBackup();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_Connected); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Connected)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Connected(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->Connected();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_InZone); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_InZone)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::InZone(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->InZone();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_Kick); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Kick)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Kick(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Kick();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_Disconnect); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Disconnect)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Disconnect(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Disconnect();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_IsLD); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsLD)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::IsLD(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsLD();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_WorldKick); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_WorldKick)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::WorldKick(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->WorldKick();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetAnon); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetAnon)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetAnon(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAnon();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_Duck); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Duck)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Duck(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Duck();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_Stand); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Stand)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Stand(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Stand();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetGM); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetGM)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetGM(THIS, toggle)");
|
|
{
|
|
Client * THIS;
|
|
bool toggle = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetGM(toggle);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetPVP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetPVP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetPVP(THIS, toggle)");
|
|
{
|
|
Client * THIS;
|
|
bool toggle = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetPVP(toggle);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetPVP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetPVP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetPVP(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetPVP();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetGM); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetGM)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetGM(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetGM();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetBaseClass); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetBaseClass)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetBaseClass(THIS, i)");
|
|
{
|
|
Client * THIS;
|
|
uint32 i = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetBaseClass(i);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetBaseRace); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetBaseRace)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetBaseRace(THIS, i)");
|
|
{
|
|
Client * THIS;
|
|
uint32 i = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetBaseRace(i);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetBaseGender); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetBaseGender)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetBaseGender(THIS, i)");
|
|
{
|
|
Client * THIS;
|
|
uint32 i = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetBaseGender(i);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetBaseFace); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBaseFace)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBaseFace(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseFace();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetLanguageSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetLanguageSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetLanguageSkill(THIS, n)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
uint16 n = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLanguageSkill(n);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetLastName); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetLastName)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetLastName(THIS)");
|
|
{
|
|
Client * THIS;
|
|
Const_char * RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLastName();
|
|
sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetLDoNPointsTheme); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetLDoNPointsTheme)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetLDoNPointsTheme(THIS, theme)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
int32 theme_out = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLDoNPointsTheme(theme_out);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBaseSTR); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBaseSTR)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBaseSTR(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseSTR();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBaseSTA); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBaseSTA)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBaseSTA(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseSTA();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBaseCHA); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBaseCHA)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBaseCHA(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseCHA();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBaseDEX); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBaseDEX)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBaseDEX(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseDEX();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBaseINT); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBaseINT)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBaseINT(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseINT();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBaseAGI); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBaseAGI)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBaseAGI(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseAGI();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBaseWIS); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBaseWIS)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBaseWIS(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseWIS();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetWeight); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetWeight)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetWeight(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetWeight();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetEXP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetEXP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetEXP(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEXP();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetAAExp); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetAAExp)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetAAExp(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAAXP();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetTotalSecondsPlayed); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetTotalSecondsPlayed)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetTotalSecondsPlayed(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetTotalSecondsPlayed();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_UpdateLDoNPoints); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UpdateLDoNPoints)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::UpdateLDoNPoints(THIS, points, theme)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
int32 points = (int32)SvIV(ST(1));
|
|
uint32 theme = (uint32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->UpdateLDoNPoints(points, theme);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetDeity); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetDeity)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetDeity(THIS, i)");
|
|
{
|
|
Client * THIS;
|
|
uint32 i = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetDeity(i);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_AddEXP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_AddEXP)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Client::AddEXP(THIS, add_exp, conlevel= 0xFF, resexp= false)");
|
|
{
|
|
Client * THIS;
|
|
uint32 add_exp = (uint32)SvUV(ST(1));
|
|
uint8 conlevel;
|
|
bool resexp;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
conlevel = 0xFF;
|
|
else {
|
|
conlevel = (uint8)SvUV(ST(2));
|
|
}
|
|
|
|
if (items < 4)
|
|
resexp = false;
|
|
else {
|
|
resexp = (bool)SvTRUE(ST(3));
|
|
}
|
|
|
|
THIS->AddEXP(add_exp, conlevel, resexp);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetEXP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetEXP)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Client::SetEXP(THIS, set_exp, set_aaxp, resexp=false)");
|
|
{
|
|
Client * THIS;
|
|
uint32 set_exp = (uint32)SvUV(ST(1));
|
|
uint32 set_aaxp = (uint32)SvUV(ST(2));
|
|
bool resexp;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 4)
|
|
resexp = false;
|
|
else {
|
|
resexp = (bool)SvTRUE(ST(3));
|
|
}
|
|
|
|
THIS->SetEXP(set_exp, set_aaxp, resexp);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetBindPoint); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetBindPoint)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 5)
|
|
Perl_croak(aTHX_ "Usage: Client::SetBindPoint(THIS, to_zone= -1, new_x= 0.0f, new_y= 0.0f, new_z= 0.0f)");
|
|
{
|
|
Client * THIS;
|
|
int to_zone;
|
|
float new_x;
|
|
float new_y;
|
|
float new_z;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
to_zone = -1;
|
|
else {
|
|
to_zone = (int)SvIV(ST(1));
|
|
}
|
|
|
|
if (items < 3)
|
|
new_x = 0.0f;
|
|
else {
|
|
new_x = (float)SvNV(ST(2));
|
|
}
|
|
|
|
if (items < 4)
|
|
new_y = 0.0f;
|
|
else {
|
|
new_y = (float)SvNV(ST(3));
|
|
}
|
|
|
|
if (items < 5)
|
|
new_z = 0.0f;
|
|
else {
|
|
new_z = (float)SvNV(ST(4));
|
|
}
|
|
|
|
THIS->SetBindPoint(to_zone, new_x, new_y, new_z);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetBindX); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBindX)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBindX(index)");
|
|
{
|
|
Client * THIS;
|
|
int index = 0;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items == 1)
|
|
index = 0;
|
|
else if (items == 2) {
|
|
index = (uint32)SvUV(ST(1));
|
|
}
|
|
|
|
RETVAL = THIS->GetBindX(index);
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBindY); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBindY)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBindY(index)");
|
|
{
|
|
Client * THIS;
|
|
int index = 0;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items == 1)
|
|
index = 0;
|
|
else if (items == 2) {
|
|
index = (uint32)SvUV(ST(1));;
|
|
}
|
|
|
|
RETVAL = THIS->GetBindY(index);
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBindZ); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBindZ)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBindZ(index)");
|
|
{
|
|
Client * THIS;
|
|
int index = 0;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items == 1)
|
|
index = 0;
|
|
else if (items == 2) {
|
|
index = (uint32)SvUV(ST(1));
|
|
}
|
|
|
|
RETVAL = THIS->GetBindZ(index);
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBindHeading); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBindHeading)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBindHeading(index)");
|
|
{
|
|
Client * THIS;
|
|
int index = 0;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items == 1)
|
|
index = 0;
|
|
else if (items == 2) {
|
|
index = (uint32)SvUV(ST(1));
|
|
}
|
|
|
|
RETVAL = THIS->GetBindHeading(index);
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBindZoneID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBindZoneID)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBindZoneID(index)");
|
|
{
|
|
Client * THIS;
|
|
uint32 index = 0;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items == 1)
|
|
index = 0;
|
|
else if (items == 2) {
|
|
index = (uint32)SvUV(ST(1));
|
|
}
|
|
|
|
RETVAL = THIS->GetBindZoneID(index);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
|
|
XS(XS_Client_MovePC); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_MovePC)
|
|
{
|
|
dXSARGS;
|
|
if (items != 6)
|
|
Perl_croak(aTHX_ "Usage: Client::MovePC(THIS, zoneID, x, y, z, heading)");
|
|
{
|
|
Client * THIS;
|
|
uint32 zoneID = (uint32)SvUV(ST(1));
|
|
float x = (float)SvNV(ST(2));
|
|
float y = (float)SvNV(ST(3));
|
|
float z = (float)SvNV(ST(4));
|
|
float heading = (float)SvNV(ST(5));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (THIS->IsClient()) {
|
|
THIS->MovePC(zoneID, x, y, z, heading);
|
|
}
|
|
else {
|
|
if (THIS->IsMerc())
|
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePC) attempted to process a type Merc reference");
|
|
else if (THIS->IsNPC())
|
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePC) attempted to process a type NPC reference");
|
|
#ifdef BOTS
|
|
else if (THIS->IsBot())
|
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePC) attempted to process a type Bot reference");
|
|
#endif
|
|
else
|
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePC) attempted to process an Unknown type reference");
|
|
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
}
|
|
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_MovePCInstance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_MovePCInstance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 7)
|
|
Perl_croak(aTHX_ "Usage: Client::MovePCInstance(THIS, zoneID, instanceID, x, y, z, heading)");
|
|
{
|
|
Client * THIS;
|
|
uint32 zoneID = (uint32)SvUV(ST(1));
|
|
uint32 instanceID = (uint32)SvUV(ST(2));
|
|
float x = (float)SvNV(ST(3));
|
|
float y = (float)SvNV(ST(4));
|
|
float z = (float)SvNV(ST(5));
|
|
float heading = (float)SvNV(ST(6));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (THIS->IsClient()) {
|
|
THIS->MovePC(zoneID, instanceID, x, y, z, heading);
|
|
}
|
|
else {
|
|
if (THIS->IsMerc())
|
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePCInstance) attempted to process a type Merc reference");
|
|
else if (THIS->IsNPC())
|
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePCInstance) attempted to process a type NPC reference");
|
|
#ifdef BOTS
|
|
else if (THIS->IsBot())
|
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePCInstance) attempted to process a type Bot reference");
|
|
#endif
|
|
else
|
|
_log(CLIENT__ERROR, "Perl(XS_Client_MovePCInstance) attempted to process an Unknown type reference");
|
|
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
}
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_ChangeLastName); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_ChangeLastName)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::ChangeLastName(THIS, in_lastname)");
|
|
{
|
|
Client * THIS;
|
|
char* in_lastname = (char *)SvPV_nolen(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->ChangeLastName(in_lastname);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetFactionLevel); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetFactionLevel)
|
|
{
|
|
dXSARGS;
|
|
if (items != 8)
|
|
Perl_croak(aTHX_ "Usage: Client::GetFactionLevel(THIS, char_id, npc_id, p_race, p_class, p_deity, pFaction, tnpc)");
|
|
{
|
|
Client * THIS;
|
|
FACTION_VALUE RETVAL;
|
|
dXSTARG;
|
|
uint32 char_id = (uint32)SvUV(ST(1));
|
|
uint32 npc_id = (uint32)SvUV(ST(2));
|
|
uint32 p_race = (uint32)SvUV(ST(3));
|
|
uint32 p_class = (uint32)SvUV(ST(4));
|
|
uint32 p_deity = (uint32)SvUV(ST(5));
|
|
int32 pFaction = (int32)SvIV(ST(6));
|
|
Mob* tnpc;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (sv_derived_from(ST(7), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(7)));
|
|
tnpc = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "tnpc is not of type Mob");
|
|
if(tnpc == nullptr)
|
|
Perl_croak(aTHX_ "tnpc is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetFactionLevel(char_id, npc_id, p_race, p_class, p_deity, pFaction, tnpc);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetFactionLevel); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetFactionLevel)
|
|
{
|
|
dXSARGS;
|
|
if (items != 6)
|
|
Perl_croak(aTHX_ "Usage: Client::SetFactionLevel(THIS, char_id, npc_id, char_class, char_race, char_deity)");
|
|
{
|
|
Client * THIS;
|
|
uint32 char_id = (uint32)SvUV(ST(1));
|
|
uint32 npc_id = (uint32)SvUV(ST(2));
|
|
uint8 char_class = (uint8)SvUV(ST(3));
|
|
uint8 char_race = (uint8)SvUV(ST(4));
|
|
uint8 char_deity = (uint8)SvUV(ST(5));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetFactionLevel(char_id, npc_id, char_class, char_race, char_deity);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetFactionLevel2); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetFactionLevel2)
|
|
{
|
|
dXSARGS;
|
|
if (items < 7 || items > 8)
|
|
Perl_croak(aTHX_ "Usage: Client::SetFactionLevel2(THIS, char_id, faction_id, char_class, char_race, char_deity, value, temp)");
|
|
{
|
|
Client * THIS;
|
|
uint32 char_id = (uint32)SvUV(ST(1));
|
|
int32 faction_id = (int32)SvIV(ST(2));
|
|
uint8 char_class = (uint8)SvUV(ST(3));
|
|
uint8 char_race = (uint8)SvUV(ST(4));
|
|
uint8 char_deity = (uint8)SvUV(ST(5));
|
|
int32 value = (int32)SvIV(ST(6));
|
|
uint8 temp;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items == 7)
|
|
temp = 0;
|
|
else {
|
|
temp = (uint8)SvUV(ST(7));
|
|
}
|
|
|
|
THIS->SetFactionLevel2(char_id, faction_id, char_class, char_race, char_deity, value, temp);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetRawItemAC); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetRawItemAC)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetRawItemAC(THIS)");
|
|
{
|
|
Client * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetRawItemAC();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_AccountID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_AccountID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::AccountID(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->AccountID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_AccountName); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_AccountName)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::AccountName(THIS)");
|
|
{
|
|
Client * THIS;
|
|
Const_char * RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->AccountName();
|
|
sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_Admin); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Admin)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Admin(THIS)");
|
|
{
|
|
Client * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->Admin();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_CharacterID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_CharacterID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::CharacterID(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CharacterID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_UpdateAdmin); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UpdateAdmin)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::UpdateAdmin(THIS, iFromDB= true)");
|
|
{
|
|
Client * THIS;
|
|
bool iFromDB;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
iFromDB = true;
|
|
else {
|
|
iFromDB = (bool)SvTRUE(ST(1));
|
|
}
|
|
|
|
THIS->UpdateAdmin(iFromDB);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UpdateWho); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UpdateWho)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::UpdateWho(THIS, remove= 0)");
|
|
{
|
|
Client * THIS;
|
|
uint8 remove;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
remove = 0;
|
|
else {
|
|
remove = (uint8)SvUV(ST(1));
|
|
}
|
|
|
|
THIS->UpdateWho(remove);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GuildRank); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GuildRank)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GuildRank(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GuildRank();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GuildID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GuildID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GuildID(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GuildID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetFace); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetFace)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetFace(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetFace();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_TakeMoneyFromPP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_TakeMoneyFromPP)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Client::TakeMoneyFromPP(THIS, copper, updateclient=false)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
bool updateclient = false;
|
|
uint32 copper = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 2)
|
|
updateclient = (bool)SvTRUE(ST(2));
|
|
|
|
RETVAL = THIS->TakeMoneyFromPP(copper, updateclient);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_AddMoneyToPP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_AddMoneyToPP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 6)
|
|
Perl_croak(aTHX_ "Usage: Client::AddMoneyToPP(THIS, copper, silver, gold, platinum, updateclient)");
|
|
{
|
|
Client * THIS;
|
|
uint32 copper = (uint32)SvUV(ST(1));
|
|
uint32 silver = (uint32)SvUV(ST(2));
|
|
uint32 gold = (uint32)SvUV(ST(3));
|
|
uint32 platinum = (uint32)SvUV(ST(4));
|
|
bool updateclient = (bool)SvTRUE(ST(5));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->AddMoneyToPP(copper, silver, gold, platinum, updateclient);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_TGB); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_TGB)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::TGB(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->TGB();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetSkillPoints); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetSkillPoints)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetSkillPoints(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSkillPoints();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetSkillPoints); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetSkillPoints)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetSkillPoints(THIS, inp)");
|
|
{
|
|
Client * THIS;
|
|
int inp = (int)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetSkillPoints(inp);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_IncreaseSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IncreaseSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Client::IncreaseSkill(THIS, skill_id, value= 1)");
|
|
{
|
|
Client * THIS;
|
|
int skill_id = (int)SvIV(ST(1));
|
|
int value;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
value = 1;
|
|
else {
|
|
value = (int)SvIV(ST(2));
|
|
}
|
|
|
|
THIS->IncreaseSkill(skill_id, value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_IncreaseLanguageSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IncreaseLanguageSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Client::IncreaseLanguageSkill(THIS, skill_id, value= 1)");
|
|
{
|
|
Client * THIS;
|
|
int skill_id = (int)SvIV(ST(1));
|
|
int value;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
value = 1;
|
|
else {
|
|
value = (int)SvIV(ST(2));
|
|
}
|
|
|
|
THIS->IncreaseLanguageSkill(skill_id, value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetSkill(THIS, skill_id)");
|
|
{
|
|
Client * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
SkillUseTypes skill_id = (SkillUseTypes)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSkill(skill_id);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetRawSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetRawSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetRawSkill(THIS, skill_id)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
SkillUseTypes skill_id = (SkillUseTypes)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetRawSkill(skill_id);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_HasSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_HasSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::HasSkill(THIS, skill_id)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
SkillUseTypes skill_id = (SkillUseTypes)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->HasSkill(skill_id);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_CanHaveSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_CanHaveSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::CanHaveSkill(THIS, skill_id)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
SkillUseTypes skill_id = (SkillUseTypes)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CanHaveSkill(skill_id);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::SetSkill(THIS, skill_num, value)");
|
|
{
|
|
Client * THIS;
|
|
SkillUseTypes skill_num = (SkillUseTypes)SvUV(ST(1));
|
|
uint16 value = (uint16)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetSkill(skill_num, value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_AddSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_AddSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::AddSkill(THIS, skillid, value)");
|
|
{
|
|
Client * THIS;
|
|
SkillUseTypes skillid = (SkillUseTypes)SvUV(ST(1));
|
|
uint16 value = (uint16)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->AddSkill(skillid, value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_CheckSpecializeIncrease); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_CheckSpecializeIncrease)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::CheckSpecializeIncrease(THIS, spell_id)");
|
|
{
|
|
Client * THIS;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->CheckSpecializeIncrease(spell_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_CheckIncreaseSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_CheckIncreaseSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Client::CheckIncreaseSkill(THIS, skillid, chancemodi= 0)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
SkillUseTypes skillid = (SkillUseTypes)SvUV(ST(1));
|
|
int chancemodi;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
chancemodi = 0;
|
|
else {
|
|
chancemodi = (int)SvIV(ST(2));
|
|
}
|
|
|
|
RETVAL = THIS->CheckIncreaseSkill(skillid, nullptr, chancemodi);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetLanguageSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetLanguageSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::SetLanguageSkill(THIS, langid, value)");
|
|
{
|
|
Client * THIS;
|
|
int langid = (int)SvIV(ST(1));
|
|
int value = (int)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetLanguageSkill(langid, value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_MaxSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_MaxSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Client::MaxSkill(THIS, skillid, class, level)");
|
|
{
|
|
Client * THIS;
|
|
uint16 RETVAL;
|
|
SkillUseTypes skillid = (SkillUseTypes)SvUV(ST(1));
|
|
uint16 class_ = 0;
|
|
uint16 level = 0;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if(items > 2)
|
|
class_ = (uint16)SvUV(ST(2));
|
|
else
|
|
class_ = THIS->GetClass();
|
|
|
|
if(items > 3)
|
|
level = (uint16)SvUV(ST(3));
|
|
else
|
|
level = THIS->GetLevel();
|
|
|
|
RETVAL = THIS->MaxSkill(skillid, class_, level);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GMKill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GMKill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GMKill(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->GMKill();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_IsMedding); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsMedding)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::IsMedding(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsMedding();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetDuelTarget); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetDuelTarget)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetDuelTarget(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetDuelTarget();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_IsDueling); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsDueling)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::IsDueling(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsDueling();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetDuelTarget); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetDuelTarget)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetDuelTarget(THIS, set_id)");
|
|
{
|
|
Client * THIS;
|
|
uint16 set_id = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetDuelTarget(set_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetDueling); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetDueling)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetDueling(THIS, duel)");
|
|
{
|
|
Client * THIS;
|
|
bool duel = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetDueling(duel);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_ResetAA); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_ResetAA)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::ResetAA(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->ResetAA();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_MemSpell); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_MemSpell)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Client::MemSpell(THIS, spell_id, slot, update_client= true)");
|
|
{
|
|
Client * THIS;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
int slot = (int)SvIV(ST(2));
|
|
bool update_client;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 4)
|
|
update_client = true;
|
|
else {
|
|
update_client = (bool)SvTRUE(ST(3));
|
|
}
|
|
|
|
THIS->MemSpell(spell_id, slot, update_client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UnmemSpell); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UnmemSpell)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Client::UnmemSpell(THIS, slot, update_client= true)");
|
|
{
|
|
Client * THIS;
|
|
int slot = (int)SvIV(ST(1));
|
|
bool update_client;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
update_client = true;
|
|
else {
|
|
update_client = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
THIS->UnmemSpell(slot, update_client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UnmemSpellAll); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UnmemSpellAll)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::UnmemSpellAll(THIS, update_client= true)");
|
|
{
|
|
Client * THIS;
|
|
bool update_client;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
update_client = true;
|
|
else {
|
|
update_client = (bool)SvTRUE(ST(1));
|
|
}
|
|
|
|
THIS->UnmemSpellAll(update_client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_ScribeSpell); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_ScribeSpell)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Client::ScribeSpell(THIS, spell_id, slot, update_client= true)");
|
|
{
|
|
Client * THIS;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
int slot = (int)SvIV(ST(2));
|
|
bool update_client;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 4)
|
|
update_client = true;
|
|
else {
|
|
update_client = (bool)SvTRUE(ST(3));
|
|
}
|
|
|
|
THIS->ScribeSpell(spell_id, slot, update_client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UnscribeSpell); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UnscribeSpell)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Client::UnscribeSpell(THIS, slot, update_client= true)");
|
|
{
|
|
Client * THIS;
|
|
int slot = (int)SvIV(ST(1));
|
|
bool update_client;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
update_client = true;
|
|
else {
|
|
update_client = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
THIS->UnscribeSpell(slot, update_client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UnscribeSpellAll); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UnscribeSpellAll)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::UnscribeSpellAll(THIS, update_client= true)");
|
|
{
|
|
Client * THIS;
|
|
bool update_client;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
update_client = true;
|
|
else {
|
|
update_client = (bool)SvTRUE(ST(1));
|
|
}
|
|
|
|
THIS->UnscribeSpellAll(update_client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UntrainDisc); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UntrainDisc)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Client::UntrainDisc(THIS, slot, update_client= true)");
|
|
{
|
|
Client * THIS;
|
|
int slot = (int)SvIV(ST(1));
|
|
bool update_client;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
update_client = true;
|
|
else {
|
|
update_client = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
THIS->UntrainDisc(slot, update_client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UntrainDiscAll); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UntrainDiscAll)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::UntrainDiscAll(THIS, update_client= true)");
|
|
{
|
|
Client * THIS;
|
|
bool update_client;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
update_client = true;
|
|
else {
|
|
update_client = (bool)SvTRUE(ST(1));
|
|
}
|
|
|
|
THIS->UntrainDiscAll(update_client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_IsSitting); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsSitting)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::IsSitting(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsSitting();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_IsBecomeNPC); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsBecomeNPC)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::IsBecomeNPC(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsBecomeNPC();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetBecomeNPCLevel); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetBecomeNPCLevel)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetBecomeNPCLevel(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBecomeNPCLevel();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetBecomeNPC); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetBecomeNPC)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetBecomeNPC(THIS, flag)");
|
|
{
|
|
Client * THIS;
|
|
bool flag = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetBecomeNPC(flag);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetBecomeNPCLevel); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetBecomeNPCLevel)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetBecomeNPCLevel(THIS, level)");
|
|
{
|
|
Client * THIS;
|
|
uint8 level = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetBecomeNPCLevel(level);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetFeigned); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetFeigned)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetFeigned(THIS, in_feigned)");
|
|
{
|
|
Client * THIS;
|
|
bool in_feigned = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetFeigned(in_feigned);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetFeigned); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetFeigned)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetFeigned(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetFeigned();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_AutoSplitEnabled); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_AutoSplitEnabled)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::AutoSplitEnabled(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->AutoSplitEnabled();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetHorseId); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetHorseId)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetHorseId(THIS, horseid_in)");
|
|
{
|
|
Client * THIS;
|
|
uint16 horseid_in = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetHorseId(horseid_in);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetHorseId); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetHorseId)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetHorseId(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHorseId();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_NukeItem); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_NukeItem)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3 && items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::NukeItem(THIS, itemnum, [where_to_check])");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
uint32 itemnum = (uint32)SvUV(ST(1));
|
|
uint8 where_to_check;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if(items < 3){
|
|
where_to_check = 0xFF;
|
|
}
|
|
if(items == 3){
|
|
where_to_check = (uint8)SvUV(ST(2));
|
|
}
|
|
|
|
RETVAL = THIS->NukeItem(itemnum, where_to_check);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetTint); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetTint)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::SetTint(THIS, slot_id, color)");
|
|
{
|
|
Client * THIS;
|
|
int16 slot_id = (int16)SvIV(ST(1));
|
|
uint32 color = (uint32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetTint(slot_id, color);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetMaterial); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetMaterial)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::SetMaterial(THIS, slot_id, item_id)");
|
|
{
|
|
Client * THIS;
|
|
int16 slot_id = (int16)SvIV(ST(1));
|
|
uint32 item_id = (uint32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetMaterial(slot_id, item_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_Undye); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Undye)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Undye(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Undye();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetItemIDAt); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetItemIDAt)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetItemIDAt(THIS, slot_id)");
|
|
{
|
|
Client * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
int16 slot_id = (int16)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetItemIDAt(slot_id);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetAugmentIDAt); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetAugmentIDAt)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::GetAugmentIDAt(THIS, slot_id, augslot)");
|
|
{
|
|
Client * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
int16 slot_id = (int16)SvIV(ST(1));
|
|
int16 augslot = (uint8)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAugmentIDAt(slot_id, augslot);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_DeleteItemInInventory); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_DeleteItemInInventory)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Client::DeleteItemInInventory(THIS, slot_id, quantity= 0, client_update= false)");
|
|
{
|
|
Client * THIS;
|
|
int16 slot_id = (int16)SvIV(ST(1));
|
|
int8 quantity;
|
|
bool client_update;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
quantity = 0;
|
|
else {
|
|
quantity = (int8)SvIV(ST(2));
|
|
}
|
|
|
|
if (items < 4)
|
|
client_update = false;
|
|
else {
|
|
client_update = (bool)SvTRUE(ST(3));
|
|
}
|
|
|
|
THIS->DeleteItemInInventory(slot_id, quantity, client_update);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SummonItem); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SummonItem)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 10)
|
|
Perl_croak(aTHX_ "Usage: Client::SummonItem(THIS, item_id, charges=0, attune=0, aug1=0, aug2=0, aug3=0, aug4=0, aug5=0, slot_id=30)");
|
|
{
|
|
Client * THIS;
|
|
uint32 item_id = (uint32)SvUV(ST(1));
|
|
int16 charges = -1;
|
|
bool attune = false;
|
|
uint32 aug1 = 0;
|
|
uint32 aug2 = 0;
|
|
uint32 aug3 = 0;
|
|
uint32 aug4 = 0;
|
|
uint32 aug5 = 0;
|
|
uint16 slot_id = 30;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 2) {
|
|
charges = (int16)SvIV(ST(2));
|
|
}
|
|
if (items > 3) {
|
|
attune = (bool)SvTRUE(ST(3));
|
|
}
|
|
if (items > 4) {
|
|
aug1 = (uint32)SvUV(ST(4));
|
|
}
|
|
if (items > 5) {
|
|
aug2 = (uint32)SvUV(ST(5));
|
|
}
|
|
if (items > 6) {
|
|
aug3 = (uint32)SvUV(ST(6));
|
|
}
|
|
if (items > 7) {
|
|
aug4 = (uint32)SvUV(ST(7));
|
|
}
|
|
if (items > 8) {
|
|
aug5 = (uint32)SvUV(ST(8));
|
|
}
|
|
if (items > 9) {
|
|
slot_id = (uint16)SvUV(ST(9));
|
|
}
|
|
|
|
THIS->SummonItem(item_id, charges, aug1, aug2, aug3, aug4, aug5, attune, slot_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetStats); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetStats)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::SetStats(THIS, type, increase_val)");
|
|
{
|
|
Client * THIS;
|
|
uint8 type = (uint8)SvUV(ST(1));
|
|
int16 increase_val = (int16)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetStats(type, increase_val);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_IncStats); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IncStats)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::IncStats(THIS, type, increase_val)");
|
|
{
|
|
Client * THIS;
|
|
uint8 type = (uint8)SvUV(ST(1));
|
|
int16 increase_val = (int16)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->IncStats(type, increase_val);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_DropItem); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_DropItem)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::DropItem(THIS, slot_id)");
|
|
{
|
|
Client * THIS;
|
|
int16 slot_id = (int16)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->DropItem(slot_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_BreakInvis); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_BreakInvis)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::BreakInvis(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->BreakInvis();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetGroup); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetGroup)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetGroup(THIS)");
|
|
{
|
|
Client * THIS;
|
|
Group * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetGroup();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Group", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_LeaveGroup); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_LeaveGroup)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::LeaveGroup(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->LeaveGroup();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetRaid); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetRaid)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetRaid(THIS)");
|
|
{
|
|
Client * THIS;
|
|
Raid * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetRaid();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Raid", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_IsGrouped); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsGrouped)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::IsGrouped(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsGrouped();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_IsRaidGrouped); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsRaidGrouped)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::IsRaidGrouped(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsRaidGrouped();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_Hungry); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Hungry)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Hungry(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->Hungry();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_Thirsty); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Thirsty)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Thirsty(THIS)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->Thirsty();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetInstrumentMod); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetInstrumentMod)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetInstrumentMod(THIS, spell_id)");
|
|
{
|
|
Client * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetInstrumentMod(spell_id);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_DecreaseByID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_DecreaseByID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::DecreaseByID(THIS, type, amt)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
uint32 type = (uint32)SvUV(ST(1));
|
|
uint8 amt = (uint8)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->DecreaseByID(type, amt);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SlotConvert2); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SlotConvert2)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SlotConvert2(THIS, slot)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
uint8 slot = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->SlotConvert2(slot);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_Escape); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_Escape)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::Escape(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Escape();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_RemoveNoRent); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_RemoveNoRent)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::RemoveNoRent(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->RemoveNoRent();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GoFish); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GoFish)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GoFish(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->GoFish();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_ForageItem); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_ForageItem)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::ForageItem(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->ForageItem();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_CalcPriceMod); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_CalcPriceMod)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Client::CalcPriceMod(THIS, other= 0, reverse= false)");
|
|
{
|
|
Client * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
Mob* other;
|
|
bool reverse;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
other = 0;
|
|
else {
|
|
if (sv_derived_from(ST(1), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(1)));
|
|
other = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "other is not of type Mob");
|
|
if(other == nullptr)
|
|
Perl_croak(aTHX_ "other is nullptr, avoiding crash.");
|
|
}
|
|
|
|
if (items < 3)
|
|
reverse = false;
|
|
else {
|
|
reverse = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
RETVAL = THIS->CalcPriceMod(other, reverse);
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_ResetTrade); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_ResetTrade)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::ResetTrade(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->ResetTrade();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UseDiscipline); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UseDiscipline)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::UseDiscipline(THIS, spell_id, target)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
uint32 spell_id = (uint32)SvUV(ST(1));
|
|
uint32 target = (uint32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->UseDiscipline(spell_id, target);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetCharacterFactionLevel); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetCharacterFactionLevel)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetCharacterFactionLevel(THIS, faction_id)");
|
|
{
|
|
Client * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
int32 faction_id = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCharacterFactionLevel(faction_id);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetZoneFlag); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetZoneFlag)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetZoneFlag(THIS, zone_id)");
|
|
{
|
|
Client * THIS;
|
|
uint32 zone_id = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetZoneFlag(zone_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_ClearZoneFlag); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_ClearZoneFlag)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::ClearZoneFlag(THIS, zone_id)");
|
|
{
|
|
Client * THIS;
|
|
uint32 zone_id = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->ClearZoneFlag(zone_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_HasZoneFlag); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_HasZoneFlag)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::HasZoneFlag(THIS, zone_id)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
uint32 zone_id = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->HasZoneFlag(zone_id);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SendZoneFlagInfo); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SendZoneFlagInfo)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SendZoneFlagInfo(THIS, to)");
|
|
{
|
|
Client * THIS;
|
|
Client * to;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (sv_derived_from(ST(1), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(1)));
|
|
to = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "to is not of type Client");
|
|
if(to == nullptr)
|
|
Perl_croak(aTHX_ "to is nullptr, avoiding crash.");
|
|
|
|
THIS->SendZoneFlagInfo(to);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_LoadZoneFlags); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_LoadZoneFlags)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::LoadZoneFlags(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->LoadZoneFlags();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetAATitle); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetAATitle)
|
|
{
|
|
dXSARGS;
|
|
if ((items < 2) || (items > 3))
|
|
Perl_croak(aTHX_ "Usage: Client::SetAATitle(THIS, txt, [save])");
|
|
{
|
|
Client * THIS;
|
|
char * txt = (char *)SvPV_nolen(ST(1));
|
|
bool SaveTitle = false;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if(strlen(txt) > 31)
|
|
Perl_croak(aTHX_ "Title must be 31 characters or less");
|
|
|
|
if(items == 3)
|
|
SaveTitle = (SvIV(ST(2)) != 0);
|
|
|
|
if(!SaveTitle)
|
|
THIS->SetAATitle(txt);
|
|
else
|
|
title_manager.CreateNewPlayerTitle(THIS, txt);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetClientVersion); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetClientVersion)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetClientVersion(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetClientVersion();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetClientVersionBit); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetClientVersionBit)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetClientVersionBit(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetClientVersionBit();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetTitleSuffix);
|
|
XS(XS_Client_SetTitleSuffix) {
|
|
dXSARGS;
|
|
if ((items < 2) || (items > 3))
|
|
Perl_croak(aTHX_ "Usage: Client::SetTitleSuffix(THIS, txt, [save])");
|
|
{
|
|
Client * THIS;
|
|
char * txt = (char *)SvPV_nolen(ST(1));
|
|
bool SaveSuffix = false;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if(strlen(txt) > 31)
|
|
Perl_croak(aTHX_ "Title must be 31 characters or less");
|
|
|
|
if(items == 3)
|
|
SaveSuffix = (SvIV(ST(2)) != 0);
|
|
|
|
if(!SaveSuffix)
|
|
THIS->SetTitleSuffix(txt);
|
|
else
|
|
title_manager.CreateNewPlayerSuffix(THIS, txt);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetAAPoints);
|
|
XS(XS_Client_SetAAPoints) {
|
|
dXSARGS;
|
|
if(items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetAAPoints(THIS, points)");
|
|
{
|
|
Client * THIS;
|
|
uint32 points = SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetAAPoints(points);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetAAPoints);
|
|
XS(XS_Client_GetAAPoints) {
|
|
dXSARGS;
|
|
if(items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetAAPoints(THIS)");
|
|
dXSTARG;
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAAPoints();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetSpentAA);
|
|
XS(XS_Client_GetSpentAA) {
|
|
dXSARGS;
|
|
if(items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetSpentAA(THIS)");
|
|
dXSTARG;
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSpentAA();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_AddAAPoints);
|
|
XS(XS_Client_AddAAPoints) {
|
|
dXSARGS;
|
|
if(items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::AddAAPoints(THIS, number)");
|
|
{
|
|
Client * THIS;
|
|
uint32 points = SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->AddAAPoints(points);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_RefundAA);
|
|
XS(XS_Client_RefundAA) {
|
|
dXSARGS;
|
|
if(items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::RefundAA(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
int curpt = 0;
|
|
bool refunded = false;
|
|
|
|
for(int x1=0;x1<aaHighestID;x1++){
|
|
curpt = THIS->GetAA(x1);
|
|
if(curpt > 0){
|
|
SendAA_Struct* curaa = zone->FindAA(x1);
|
|
if(curaa){
|
|
THIS->SetAA(x1, 0);
|
|
for(int x2=0;x2<curpt;x2++){ //add up all the AA points pt by pt to get the correct cost
|
|
THIS->GetPP().aapoints += curaa->cost + (curaa->cost_inc * x2);
|
|
refunded = true;
|
|
}
|
|
}
|
|
else //aa doesn't exist.. but if they bought it then it had at least a cost of 1 point each
|
|
{ //so give back what we can
|
|
THIS->GetPP().aapoints += curpt;
|
|
THIS->SetAA(x1, 0);
|
|
refunded = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(refunded){
|
|
THIS->Save(); //save of course
|
|
THIS->Kick(); //client gets all buggy if we don't immediatly relog so just force it on them
|
|
}
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetModCharacterFactionLevel); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetModCharacterFactionLevel)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetModCharacterFactionLevel(THIS, faction_id)");
|
|
{
|
|
Client * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
int32 faction_id = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetModCharacterFactionLevel(faction_id);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetLDoNWins); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetLDoNWins)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetLDoNWins(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLDoNWins();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetLDoNLosses); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetLDoNLosses)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetLDoNLosses(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLDoNLosses();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetLDoNWinsTheme); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetLDoNWinsTheme)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetLDoNWinsTheme(THIS, theme)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
int32 theme_out = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLDoNWinsTheme(theme_out);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetLDoNLossesTheme); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetLDoNLossesTheme)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetLDoNLossesTheme(THIS, theme)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
int32 theme_out = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLDoNLossesTheme(theme_out);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetItemAt); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetItemAt)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetItemAt(THIS, slot)");
|
|
{
|
|
Client * THIS;
|
|
ItemInst * RETVAL;
|
|
uint32 slot = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetInv().GetItem(slot);
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "QuestItem", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetAugmentAt); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetAugmentAt)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::GetAugmentAt(THIS, slot, aug_slot)");
|
|
{
|
|
Client * THIS;
|
|
ItemInst * RETVAL;
|
|
uint32 slot = (int32)SvIV(ST(1));
|
|
uint32 aug_slot = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
ItemInst * inst = THIS->GetInv().GetItem(slot);
|
|
if(inst)
|
|
{
|
|
RETVAL = inst->GetAugment(aug_slot);
|
|
}
|
|
else
|
|
{
|
|
RETVAL = nullptr;
|
|
}
|
|
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "QuestItem", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetStartZone);
|
|
XS(XS_Client_GetStartZone)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetStartZone(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetStartZone();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetStartZone);
|
|
XS(XS_Client_SetStartZone)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2 && items != 5)
|
|
Perl_croak(aTHX_ "Usage: Client::SetStartZone(THIS, zoneid [, x, y, z])");
|
|
{
|
|
Client * THIS;
|
|
uint32 zoneid = (uint32)SvUV(ST(1));
|
|
float x = 0;
|
|
float y = 0;
|
|
float z = 0;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if(items == 5) {
|
|
x = SvNV(ST(2));
|
|
y = SvNV(ST(3));
|
|
z = SvNV(ST(4));
|
|
}
|
|
|
|
THIS->SetStartZone(zoneid,x,y,z);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_KeyRingAdd);
|
|
XS(XS_Client_KeyRingAdd)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::KeyRingAdd(THIS, item_id)");
|
|
{
|
|
Client * THIS;
|
|
uint32 item_id = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->KeyRingAdd(item_id);;
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_KeyRingCheck);
|
|
XS(XS_Client_KeyRingCheck)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::KeyRingCheck(THIS, item_id)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
uint32 item_id = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->KeyRingCheck(item_id);;
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_AddPVPPoints);
|
|
XS(XS_Client_AddPVPPoints)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::AddPVPPoints(THIS, Points)");
|
|
{
|
|
Client * THIS;
|
|
uint32 Points = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->AddPVPPoints(Points);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_AddCrystals);
|
|
XS(XS_Client_AddCrystals)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::AddCrystals(THIS, RadiantCount, EbonCount)");
|
|
{
|
|
Client * THIS;
|
|
uint32 Radiant = (uint32)SvUV(ST(1));
|
|
uint32 Ebon = (uint32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->AddCrystals(Radiant, Ebon);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetPVPPoints); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetPVPPoints)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetPVPPoints(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetPVPPoints();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetRadiantCrystals); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetRadiantCrystals)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetRadiantCrystals(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetRadiantCrystals();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetEbonCrystals); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetEbonCrystals)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetEbonCrystals(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEbonCrystals();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_ReadBook); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_ReadBook)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::ReadBook(THIS, Book Text, Type)");
|
|
{
|
|
Client * THIS;
|
|
char* in_txt = (char *)SvPV_nolen(ST(1));
|
|
uint8 type = (uint8)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->QuestReadBook(in_txt, type);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UpdateGroupAAs); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UpdateGroupAAs)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::UpdateGroupAAs(THIS, points, type)");
|
|
{
|
|
Client * THIS;
|
|
int32 points = (int32)SvIV(ST(1));
|
|
uint32 type = (uint32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->UpdateGroupAAs(points, type);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetGroupPoints); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetGroupPoints)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetGroupPoints(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetGroupPoints();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetRaidPoints); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetRaidPoints)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetRaidPoints(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetRaidPoints();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_LearnRecipe);
|
|
XS(XS_Client_LearnRecipe)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::LearnRecipe(THIS, recipe_id)");
|
|
{
|
|
Client * THIS;
|
|
uint32 recipe_id = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->LearnRecipe(recipe_id);;
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetEndurance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetEndurance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetEndurance(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEndurance();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetMaxEndurance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetMaxEndurance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetMaxEndurance(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxEndurance();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetEnduranceRatio); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetEnduranceRatio)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetEnduranceRatio(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEndurancePercent();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetEndurance);
|
|
XS(XS_Client_SetEndurance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetEndurance(THIS, Endurance)");
|
|
{
|
|
Client * THIS;
|
|
int32 Endurance = (int32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetEndurance(Endurance);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SendOPTranslocateConfirm);
|
|
XS(XS_Client_SendOPTranslocateConfirm)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::SendOPTranslocateConfirm(THIS, Caster, SpellID)");
|
|
{
|
|
Client * THIS;
|
|
Mob * caster = nullptr;
|
|
int32 spell_id = (int32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (sv_derived_from(ST(1), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(1)));
|
|
caster = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "caster is not of type Mob");
|
|
if(caster == nullptr)
|
|
Perl_croak(aTHX_ "caster is nullptr, avoiding crash.");
|
|
|
|
THIS->SendOPTranslocateConfirm(caster, spell_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_NPCSpawn); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_NPCSpawn)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Client::NPCSpawn(THIS, target_npc, option, respawntime=1200)");
|
|
{
|
|
Client * THIS;
|
|
NPC * target_npc = nullptr;
|
|
Const_char * option = (Const_char *)SvPV_nolen(ST(2));
|
|
uint32 respawntime = 1200;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (sv_derived_from(ST(1), "NPC")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(1)));
|
|
target_npc = INT2PTR(NPC *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type NPC");
|
|
if(target_npc == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 3)
|
|
respawntime = (uint32)SvUV(ST(3));
|
|
|
|
THIS->NPCSpawn(target_npc, option, respawntime);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetIP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetIP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetIP(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetIP();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_AddLevelBasedExp);
|
|
XS(XS_Client_AddLevelBasedExp)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3 )
|
|
Perl_croak(aTHX_ "Usage: Client::AddLevelBasedExp(THIS, exp_percentage, max_level=0)");
|
|
{
|
|
Client * THIS;
|
|
uint8 exp_percentage = (uint8)SvUV(ST(1));
|
|
uint8 max_level = 0;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 2)
|
|
max_level = (uint8)SvUV(ST(2));
|
|
|
|
THIS->AddLevelBasedExp(exp_percentage, max_level);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_IncrementAA);
|
|
XS(XS_Client_IncrementAA)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::IncrementAA(THIS, aaskillid)");
|
|
{
|
|
Client * THIS;
|
|
uint32 aaskillid = SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->IncrementAA(aaskillid);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetAALevel);
|
|
XS(XS_Client_GetAALevel)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetAALevel(THIS, aaskillid)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
uint32 aaskillid = SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAA(aaskillid);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_MarkCompassLoc);
|
|
XS(XS_Client_MarkCompassLoc)
|
|
{
|
|
dXSARGS;
|
|
if (items != 4)
|
|
Perl_croak(aTHX_ "Usage: Client::MarkCompassLoc(THIS, x, y, z)");
|
|
{
|
|
Client * THIS;
|
|
float x = SvNV(ST(1));
|
|
float y = SvNV(ST(2));
|
|
float z = SvNV(ST(3));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->MarkSingleCompassLoc(x,y,z);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_ClearCompassMark);
|
|
XS(XS_Client_ClearCompassMark)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::ClearCompassMark(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->MarkSingleCompassLoc(0,0,0,0);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetFreeSpellBookSlot); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetFreeSpellBookSlot)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetFreeSpellBookSlot(THIS, start_slot=0)");
|
|
{
|
|
Client * THIS;
|
|
int RETVAL;
|
|
uint32 start_slot = 0;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 1)
|
|
start_slot = SvUV(ST(1));
|
|
|
|
RETVAL = THIS->GetNextAvailableSpellBookSlot(start_slot);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetSpellBookSlotBySpellID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetSpellBookSlotBySpellID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetSpellBookSlotBySpellID(THIS, spell_id)");
|
|
{
|
|
Client * THIS;
|
|
int RETVAL;
|
|
uint32 spell_id = SvUV(ST(1));
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->FindSpellBookSlotBySpellID(spell_id);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_UpdateTaskActivity); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_UpdateTaskActivity)
|
|
{
|
|
dXSARGS;
|
|
if (items != 4)
|
|
Perl_croak(aTHX_ "Usage: Client::UpdateTaskActivity(THIS, TaskID, ActivityID, Count)");
|
|
{
|
|
Client * THIS;
|
|
int TaskID = (int)SvIV(ST(1));
|
|
int ActivityID = (int)SvIV(ST(2));
|
|
int Count = (int)SvUV(ST(3));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->UpdateTaskActivity(TaskID, ActivityID, Count);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetTaskActivityDoneCount); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetTaskActivityDoneCount)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::GetTaskActivityDoneCount(THIS, TaskID, ActivityID)");
|
|
{
|
|
Client * THIS;
|
|
int RETVAL;
|
|
int TaskID = (int)SvIV(ST(1));
|
|
int ActivityID = (int)SvIV(ST(2));
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *, tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if (THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
|
|
RETVAL = THIS->GetTaskActivityDoneCountFromTaskID(TaskID, ActivityID);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_AssignTask); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_AssignTask)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::AssignTask(THIS, TaskID, NPCID)");
|
|
{
|
|
Client * THIS;
|
|
int TaskID = (int)SvIV(ST(1));
|
|
int NPCID = (int)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->AssignTask(TaskID, NPCID);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_FailTask); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_FailTask)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::FailTask(THIS, TaskID)");
|
|
{
|
|
Client * THIS;
|
|
int TaskID = (int)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->FailTask(TaskID);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_IsTaskCompleted); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsTaskCompleted)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::IsTaskCompleted(THIS, TaskID)");
|
|
{
|
|
Client * THIS;
|
|
int RETVAL;
|
|
int TaskID = (int)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsTaskCompleted(TaskID);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_IsTaskActive); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsTaskActive)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::IsTaskActive(THIS, TaskID)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
int TaskID = (int)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsTaskActive(TaskID);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_IsTaskActivityActive); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_IsTaskActivityActive)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::IsTaskActivityActive(THIS, TaskID, ActivityID)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
int TaskID = (int)SvIV(ST(1));
|
|
int ActivityID = (int)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsTaskActivityActive(TaskID, ActivityID);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetCorpseCount); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetCorpseCount)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetCorpseCount(THIS)");
|
|
{
|
|
Client * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCorpseCount();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetCorpseID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetCorpseID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetCorpseID(THIS, corpse)");
|
|
{
|
|
Client * THIS;
|
|
uint8 corpse = (uint8)SvIV(ST(1));
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCorpseID(corpse);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetCorpseItemAt); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetCorpseItemAt)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::GetCorpseItemAt(THIS, corpse_id, slotid)");
|
|
{
|
|
Client * THIS;
|
|
uint32 corpse_id = (uint32)SvIV(ST(1));
|
|
uint16 slotid = (uint16)SvIV(ST(2));
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCorpseItemAt(corpse_id, slotid);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_AssignToInstance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_AssignToInstance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::AssignToInstance(THIS, instance_id)");
|
|
{
|
|
Client * THIS;
|
|
uint16 instance_id = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->AssignToInstance(instance_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_RemoveFromInstance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_RemoveFromInstance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::RemoveFromInstance(THIS, instance_id)");
|
|
{
|
|
Client * THIS;
|
|
uint16 instance_id = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *, tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if (THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->RemoveFromInstance(instance_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_Freeze);
|
|
XS(XS_Client_Freeze)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client:Freeze(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendAppearancePacket(AT_Anim, ANIM_FREEZE);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_UnFreeze);
|
|
XS(XS_Client_UnFreeze)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client:UnFreeze(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendAppearancePacket(AT_Anim, ANIM_STAND);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
|
|
XS(XS_Client_GetAggroCount); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetAggroCount)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetAggroCount(THIS)");
|
|
{
|
|
Client * THIS;
|
|
int RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAggroCount();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
|
|
XS(XS_Client_GetCarriedMoney); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetCarriedMoney)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetCarriedMoney(THIS)");
|
|
{
|
|
Client * THIS;
|
|
int RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCarriedMoney();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
|
|
XS(XS_Client_GetAllMoney); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetAllMoney)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetAllMoney(THIS)");
|
|
{
|
|
Client * THIS;
|
|
int RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAllMoney();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
|
|
XS(XS_Client_GetItemInInventory); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetItemInInventory)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetItemInInventory(THIS, slot_id)");
|
|
{
|
|
Client * THIS;
|
|
int16 slot_id = (int16)SvIV(ST(1));
|
|
ItemInst *RETVAL = nullptr;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetInv().GetItem(slot_id);
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "QuestItem", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetCustomItemData); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetCustomItemData)
|
|
{
|
|
dXSARGS;
|
|
if (items != 4)
|
|
Perl_croak(aTHX_ "Usage: Client::SetCustomItemData(THIS, slot_id, identifier, value)");
|
|
{
|
|
Client * THIS;
|
|
int16 slot_id = (int16)SvIV(ST(1));
|
|
Const_char* identifier = SvPV_nolen(ST(2));
|
|
Const_char* value = SvPV_nolen(ST(3));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->GetInv().SetCustomItemData(THIS->CharacterID(), slot_id, std::string(identifier), std::string(value));
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetCustomItemData); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetCustomItemData)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::GetCustomItemData(THIS, slot_id, identifier)");
|
|
{
|
|
Client * THIS;
|
|
int16 slot_id = (int16)SvIV(ST(1));
|
|
Const_char* identifier = SvPV_nolen(ST(2));
|
|
Const_char * RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
std::string ret_val = THIS->GetInv().GetCustomItemData(slot_id, std::string(identifier));
|
|
RETVAL = ret_val.c_str();
|
|
sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_OpenLFGuildWindow); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_OpenLFGuildWindow)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::OpenLFGuildWindow(THIS)");
|
|
{
|
|
Client * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->OpenLFGuildWindow();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SignalClient); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SignalClient)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SignalClient(THIS, data)");
|
|
{
|
|
Client * THIS;
|
|
uint32 data = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Signal(data);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_AddAlternateCurrencyValue); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_AddAlternateCurrencyValue)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::AddAlternateCurrencyValue(THIS, uint32 currency_id, int32 amount)");
|
|
{
|
|
Client * THIS;
|
|
uint32 currency_id = (uint32)SvUV(ST(1));
|
|
int32 amount = (int32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->AddAlternateCurrencyValue(currency_id, amount);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SendWebLink); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SendWebLink)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SendWebLink(THIS, website)");
|
|
{
|
|
Client * THIS;
|
|
char * website = nullptr;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 1) { website = (char *)SvPV_nolen(ST(1)); }
|
|
|
|
THIS->SendWebLink(website);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetInstanceID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetInstanceID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetInstanceID(THIS)");
|
|
{
|
|
Client * THIS;
|
|
int8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetInstanceID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_HasSpellScribed); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_HasSpellScribed)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::HasSpellScribed(THIS, spell_id)");
|
|
{
|
|
Client * THIS;
|
|
bool RETVAL;
|
|
int spell_id = (int)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == NULL)
|
|
Perl_croak(aTHX_ "THIS is NULL, avoiding crash.");
|
|
|
|
RETVAL = THIS->HasSpellScribed(spell_id);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetAccountFlag); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetAccountFlag)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::SetAccountFlag(THIS, flag, value)");
|
|
{
|
|
Client * THIS;
|
|
//char* flag = (char *)SvPV_nolen(ST(1));
|
|
//char* value = (char *)SvTRUE(ST(2));
|
|
|
|
std::string flag( (char *)SvPV_nolen(ST(1)) );
|
|
std::string value( (char *)SvTRUE(ST(2)) );
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == NULL)
|
|
Perl_croak(aTHX_ "THIS is NULL, avoiding crash.");
|
|
|
|
THIS->SetAccountFlag(flag, value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_GetAccountFlag); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetAccountFlag)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::GetAccountFlag(THIS, flag)");
|
|
{
|
|
Client * THIS;
|
|
//char* flag = (char *)SvPV_nolen(ST(1));
|
|
//char* value = (char *)SvTRUE(ST(2));
|
|
|
|
std::string flag( (char *)SvPV_nolen(ST(1)) );
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == NULL)
|
|
Perl_croak(aTHX_ "THIS is NULL, avoiding crash.");
|
|
|
|
std::string value = THIS->GetAccountFlag(flag);
|
|
|
|
sv_setpv(TARG, value.c_str()); XSprePUSH; PUSHTARG;
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetHunger); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetHunger)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetHunger(THIS)");
|
|
{
|
|
Client * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHunger();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_GetThirst); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_GetThirst)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Client::GetThirst(THIS)");
|
|
{
|
|
Client * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetThirst();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Client_SetHunger); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetHunger)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetHunger(THIS, in_hunger)");
|
|
{
|
|
Client * THIS;
|
|
int32 in_hunger = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetHunger(in_hunger);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetThirst); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetThirst)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SetThirst(THIS, in_thirst)");
|
|
{
|
|
Client * THIS;
|
|
int32 in_thirst = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetThirst(in_thirst);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SendTargetCommand); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SendTargetCommand)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SendTargetCommand(THIS, in_entid)");
|
|
{
|
|
Client * THIS;
|
|
int32 in_entid = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendTargetCommand(in_entid);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SetConsumption); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SetConsumption)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::SetHunger(THIS, in_hunger, in_thirst)");
|
|
{
|
|
Client * THIS;
|
|
int32 in_hunger = (uint32)SvUV(ST(1));
|
|
int32 in_thirst = (uint32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetConsumption(in_hunger, in_thirst);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SilentMessage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SilentMessage)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Client::SilentMessage(THIS, Message)");
|
|
{
|
|
Client * THIS;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == NULL)
|
|
Perl_croak(aTHX_ "THIS is NULL, avoiding crash.");
|
|
if(THIS->GetTarget() != NULL){
|
|
if(THIS->GetTarget()->IsNPC()){
|
|
if (THIS->DistNoRootNoZ(*THIS->GetTarget()) <= 200) {
|
|
if(THIS->GetTarget()->CastToNPC()->IsMoving() && !THIS->GetTarget()->CastToNPC()->IsOnHatelist(THIS->GetTarget()))
|
|
THIS->GetTarget()->CastToNPC()->PauseWandering(RuleI(NPC, SayPauseTimeInSec));
|
|
THIS->ChannelMessageReceived(8, 0, 100, SvPV_nolen(ST(1)));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_PlayMP3); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_PlayMP3)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Client::PlayMP3(THIS, fname)");
|
|
{
|
|
Client * THIS;
|
|
char * fname = nullptr;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 1) { fname = (char *)SvPV_nolen(ST(1)); }
|
|
|
|
THIS->PlayMP3(fname);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_ExpeditionMessage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_ExpeditionMessage)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::ExpeditionMessage(THIS, ExpdID, Message)");
|
|
{
|
|
Client * THIS;
|
|
int ExpdID = (int)SvUV(ST(1));
|
|
const char * Message = (const char *)SvPV_nolen(ST(2));
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == NULL)
|
|
Perl_croak(aTHX_ "THIS is NULL, avoiding crash.");
|
|
|
|
THIS->ExpeditionSay(Message, ExpdID);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
//Client::SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string msg)
|
|
|
|
XS(XS_Client_SendMarqueeMessage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SendMarqueeMessage)
|
|
{
|
|
dXSARGS;
|
|
if (items != 7)
|
|
Perl_croak(aTHX_ "Usage: Client::SendMarqueeMessage(THIS, type, priority, fade_in, fade_out, duration, msg)");
|
|
{
|
|
Client * THIS;
|
|
uint32 type = (uint32)SvUV(ST(1));
|
|
uint32 priority = (uint32)SvUV(ST(2));
|
|
uint32 fade_in = (uint32)SvUV(ST(3));
|
|
uint32 fade_out = (uint32)SvUV(ST(4));
|
|
uint32 duration = (uint32)SvUV(ST(5));
|
|
std::string msg = (std::string)SvPV_nolen(ST(6));
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == NULL)
|
|
Perl_croak(aTHX_ "THIS is NULL, avoiding crash.");
|
|
|
|
THIS->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, msg);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SendColoredText); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SendColoredText)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Client::SendColoredText(color, message)");
|
|
{
|
|
Client * THIS;
|
|
uint32 color = (uint32)SvUV(ST(1));
|
|
std::string msg = (std::string)SvPV_nolen(ST(2));
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == NULL)
|
|
Perl_croak(aTHX_ "THIS is NULL, avoiding crash.");
|
|
|
|
THIS->SendColoredText(color, msg);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Client_SendSpellAnim); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Client_SendSpellAnim)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: SendSpellAnim(uint16 spell_id, uint32 seq)");
|
|
{
|
|
Client * THIS;
|
|
uint16 targetid = (uint16)SvUV(ST(1));
|
|
uint16 spell_id = (uint16)SvUV(ST(2));
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Client");
|
|
if(THIS == NULL)
|
|
Perl_croak(aTHX_ "THIS is NULL, avoiding crash.");
|
|
|
|
THIS->SendSpellAnim(targetid,spell_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
#endif
|
|
XS(boot_Client); /* prototype to pass -Wmissing-prototypes */
|
|
XS(boot_Client)
|
|
{
|
|
dXSARGS;
|
|
char file[256];
|
|
strncpy(file, __FILE__, 256);
|
|
file[255] = 0;
|
|
|
|
if(items != 1)
|
|
fprintf(stderr, "boot_quest does not take any arguments.");
|
|
char buf[128];
|
|
|
|
//add the strcpy stuff to get rid of const warnings....
|
|
|
|
|
|
|
|
XS_VERSION_BOOTCHECK ;
|
|
|
|
newXSproto(strcpy(buf, "SendSound"), XS_Client_SendSound, file, "$");
|
|
newXSproto(strcpy(buf, "Save"), XS_Client_Save, file, "$$");
|
|
newXSproto(strcpy(buf, "SaveBackup"), XS_Client_SaveBackup, file, "$");
|
|
newXSproto(strcpy(buf, "Connected"), XS_Client_Connected, file, "$");
|
|
newXSproto(strcpy(buf, "InZone"), XS_Client_InZone, file, "$");
|
|
newXSproto(strcpy(buf, "Kick"), XS_Client_Kick, file, "$");
|
|
newXSproto(strcpy(buf, "Disconnect"), XS_Client_Disconnect, file, "$");
|
|
newXSproto(strcpy(buf, "IsLD"), XS_Client_IsLD, file, "$");
|
|
newXSproto(strcpy(buf, "WorldKick"), XS_Client_WorldKick, file, "$");
|
|
newXSproto(strcpy(buf, "GetAnon"), XS_Client_GetAnon, file, "$");
|
|
newXSproto(strcpy(buf, "Duck"), XS_Client_Duck, file, "$");
|
|
newXSproto(strcpy(buf, "Stand"), XS_Client_Stand, file, "$");
|
|
newXSproto(strcpy(buf, "SetGM"), XS_Client_SetGM, file, "$$");
|
|
newXSproto(strcpy(buf, "SetPVP"), XS_Client_SetPVP, file, "$$");
|
|
newXSproto(strcpy(buf, "GetPVP"), XS_Client_GetPVP, file, "$");
|
|
newXSproto(strcpy(buf, "GetGM"), XS_Client_GetGM, file, "$");
|
|
newXSproto(strcpy(buf, "SetBaseClass"), XS_Client_SetBaseClass, file, "$$");
|
|
newXSproto(strcpy(buf, "SetBaseRace"), XS_Client_SetBaseRace, file, "$$");
|
|
newXSproto(strcpy(buf, "SetBaseGender"), XS_Client_SetBaseGender, file, "$$");
|
|
newXSproto(strcpy(buf, "GetBaseFace"), XS_Client_GetBaseFace, file, "$");
|
|
newXSproto(strcpy(buf, "GetLanguageSkill"), XS_Client_GetLanguageSkill, file, "$$");
|
|
newXSproto(strcpy(buf, "GetLastName"), XS_Client_GetLastName, file, "$");
|
|
newXSproto(strcpy(buf, "GetLDoNPointsTheme"), XS_Client_GetLDoNPointsTheme, file, "$");
|
|
newXSproto(strcpy(buf, "GetBaseSTR"), XS_Client_GetBaseSTR, file, "$");
|
|
newXSproto(strcpy(buf, "GetBaseSTA"), XS_Client_GetBaseSTA, file, "$");
|
|
newXSproto(strcpy(buf, "GetBaseCHA"), XS_Client_GetBaseCHA, file, "$");
|
|
newXSproto(strcpy(buf, "GetBaseDEX"), XS_Client_GetBaseDEX, file, "$");
|
|
newXSproto(strcpy(buf, "GetBaseINT"), XS_Client_GetBaseINT, file, "$");
|
|
newXSproto(strcpy(buf, "GetBaseAGI"), XS_Client_GetBaseAGI, file, "$");
|
|
newXSproto(strcpy(buf, "GetBaseWIS"), XS_Client_GetBaseWIS, file, "$");
|
|
newXSproto(strcpy(buf, "GetWeight"), XS_Client_GetWeight, file, "$");
|
|
newXSproto(strcpy(buf, "GetEXP"), XS_Client_GetEXP, file, "$");
|
|
newXSproto(strcpy(buf, "GetAAExp"), XS_Client_GetAAExp, file, "$");
|
|
newXSproto(strcpy(buf, "GetTotalSecondsPlayed"), XS_Client_GetTotalSecondsPlayed, file, "$");
|
|
newXSproto(strcpy(buf, "UpdateLDoNPoints"), XS_Client_UpdateLDoNPoints, file, "$$$");
|
|
newXSproto(strcpy(buf, "SetDeity"), XS_Client_SetDeity, file, "$$");
|
|
newXSproto(strcpy(buf, "AddEXP"), XS_Client_AddEXP, file, "$$;$$");
|
|
newXSproto(strcpy(buf, "SetEXP"), XS_Client_SetEXP, file, "$$$;$");
|
|
newXSproto(strcpy(buf, "SetBindPoint"), XS_Client_SetBindPoint, file, "$;$$$$");
|
|
newXSproto(strcpy(buf, "GetBindX"), XS_Client_GetBindX, file, "$$");
|
|
newXSproto(strcpy(buf, "GetBindY"), XS_Client_GetBindY, file, "$$");
|
|
newXSproto(strcpy(buf, "GetBindZ"), XS_Client_GetBindZ, file, "$$");
|
|
newXSproto(strcpy(buf, "GetBindHeading"), XS_Client_GetBindHeading, file, "$$");
|
|
newXSproto(strcpy(buf, "GetBindZoneID"), XS_Client_GetBindZoneID, file, "$$");
|
|
newXSproto(strcpy(buf, "MovePC"), XS_Client_MovePC, file, "$$$$$$");
|
|
newXSproto(strcpy(buf, "MovePCInstance"), XS_Client_MovePCInstance, file, "$$$$$$$");
|
|
newXSproto(strcpy(buf, "ChangeLastName"), XS_Client_ChangeLastName, file, "$$");
|
|
newXSproto(strcpy(buf, "GetFactionLevel"), XS_Client_GetFactionLevel, file, "$$$$$$$$");
|
|
newXSproto(strcpy(buf, "SetFactionLevel"), XS_Client_SetFactionLevel, file, "$$$$$$");
|
|
newXSproto(strcpy(buf, "SetFactionLevel2"), XS_Client_SetFactionLevel2, file, "$$$$$$$");
|
|
newXSproto(strcpy(buf, "GetRawItemAC"), XS_Client_GetRawItemAC, file, "$");
|
|
newXSproto(strcpy(buf, "AccountID"), XS_Client_AccountID, file, "$");
|
|
newXSproto(strcpy(buf, "AccountName"), XS_Client_AccountName, file, "$");
|
|
newXSproto(strcpy(buf, "Admin"), XS_Client_Admin, file, "$");
|
|
newXSproto(strcpy(buf, "CharacterID"), XS_Client_CharacterID, file, "$");
|
|
newXSproto(strcpy(buf, "UpdateAdmin"), XS_Client_UpdateAdmin, file, "$;$");
|
|
newXSproto(strcpy(buf, "UpdateWho"), XS_Client_UpdateWho, file, "$;$");
|
|
newXSproto(strcpy(buf, "GuildRank"), XS_Client_GuildRank, file, "$");
|
|
newXSproto(strcpy(buf, "GuildID"), XS_Client_GuildID, file, "$");
|
|
newXSproto(strcpy(buf, "GetFace"), XS_Client_GetFace, file, "$");
|
|
newXSproto(strcpy(buf, "TakeMoneyFromPP"), XS_Client_TakeMoneyFromPP, file, "$$;$");
|
|
newXSproto(strcpy(buf, "AddMoneyToPP"), XS_Client_AddMoneyToPP, file, "$$$$$$");
|
|
newXSproto(strcpy(buf, "TGB"), XS_Client_TGB, file, "$");
|
|
newXSproto(strcpy(buf, "GetSkillPoints"), XS_Client_GetSkillPoints, file, "$");
|
|
newXSproto(strcpy(buf, "SetSkillPoints"), XS_Client_SetSkillPoints, file, "$$");
|
|
newXSproto(strcpy(buf, "IncreaseSkill"), XS_Client_IncreaseSkill, file, "$$;$");
|
|
newXSproto(strcpy(buf, "IncreaseLanguageSkill"), XS_Client_IncreaseLanguageSkill, file, "$$;$");
|
|
newXSproto(strcpy(buf, "GetSkill"), XS_Client_GetSkill, file, "$$");
|
|
newXSproto(strcpy(buf, "GetRawSkill"), XS_Client_GetRawSkill, file, "$$");
|
|
newXSproto(strcpy(buf, "HasSkill"), XS_Client_HasSkill, file, "$$");
|
|
newXSproto(strcpy(buf, "CanHaveSkill"), XS_Client_CanHaveSkill, file, "$$");
|
|
newXSproto(strcpy(buf, "SetSkill"), XS_Client_SetSkill, file, "$$$");
|
|
newXSproto(strcpy(buf, "AddSkill"), XS_Client_AddSkill, file, "$$$");
|
|
newXSproto(strcpy(buf, "CheckSpecializeIncrease"), XS_Client_CheckSpecializeIncrease, file, "$$");
|
|
newXSproto(strcpy(buf, "CheckIncreaseSkill"), XS_Client_CheckIncreaseSkill, file, "$$;$");
|
|
newXSproto(strcpy(buf, "SetLanguageSkill"), XS_Client_SetLanguageSkill, file, "$$$");
|
|
newXSproto(strcpy(buf, "MaxSkill"), XS_Client_MaxSkill, file, "$$;$$");
|
|
newXSproto(strcpy(buf, "GMKill"), XS_Client_GMKill, file, "$");
|
|
newXSproto(strcpy(buf, "IsMedding"), XS_Client_IsMedding, file, "$");
|
|
newXSproto(strcpy(buf, "GetDuelTarget"), XS_Client_GetDuelTarget, file, "$");
|
|
newXSproto(strcpy(buf, "IsDueling"), XS_Client_IsDueling, file, "$");
|
|
newXSproto(strcpy(buf, "SetDuelTarget"), XS_Client_SetDuelTarget, file, "$$");
|
|
newXSproto(strcpy(buf, "SetDueling"), XS_Client_SetDueling, file, "$$");
|
|
newXSproto(strcpy(buf, "ResetAA"), XS_Client_ResetAA, file, "$");
|
|
newXSproto(strcpy(buf, "MemSpell"), XS_Client_MemSpell, file, "$$$;$");
|
|
newXSproto(strcpy(buf, "UnmemSpell"), XS_Client_UnmemSpell, file, "$$;$");
|
|
newXSproto(strcpy(buf, "UnmemSpellAll"), XS_Client_UnmemSpellAll, file, "$;$");
|
|
newXSproto(strcpy(buf, "ScribeSpell"), XS_Client_ScribeSpell, file, "$$$;$");
|
|
newXSproto(strcpy(buf, "UnscribeSpell"), XS_Client_UnscribeSpell, file, "$$;$");
|
|
newXSproto(strcpy(buf, "UnscribeSpellAll"), XS_Client_UnscribeSpellAll, file, "$;$");
|
|
newXSproto(strcpy(buf, "UntrainDisc"), XS_Client_UntrainDisc, file, "$$;$");
|
|
newXSproto(strcpy(buf, "UntrainDiscAll"), XS_Client_UntrainDiscAll, file, "$;$");
|
|
newXSproto(strcpy(buf, "IsSitting"), XS_Client_IsSitting, file, "$");
|
|
newXSproto(strcpy(buf, "IsBecomeNPC"), XS_Client_IsBecomeNPC, file, "$");
|
|
newXSproto(strcpy(buf, "GetBecomeNPCLevel"), XS_Client_GetBecomeNPCLevel, file, "$");
|
|
newXSproto(strcpy(buf, "SetBecomeNPC"), XS_Client_SetBecomeNPC, file, "$$");
|
|
newXSproto(strcpy(buf, "SetBecomeNPCLevel"), XS_Client_SetBecomeNPCLevel, file, "$$");
|
|
newXSproto(strcpy(buf, "SetFeigned"), XS_Client_SetFeigned, file, "$$");
|
|
newXSproto(strcpy(buf, "GetFeigned"), XS_Client_GetFeigned, file, "$");
|
|
newXSproto(strcpy(buf, "AutoSplitEnabled"), XS_Client_AutoSplitEnabled, file, "$");
|
|
newXSproto(strcpy(buf, "SetHorseId"), XS_Client_SetHorseId, file, "$$");
|
|
newXSproto(strcpy(buf, "GetHorseId"), XS_Client_GetHorseId, file, "$");
|
|
newXSproto(strcpy(buf, "NukeItem"), XS_Client_NukeItem, file, "$$;$");
|
|
newXSproto(strcpy(buf, "SetTint"), XS_Client_SetTint, file, "$$$");
|
|
newXSproto(strcpy(buf, "SetMaterial"), XS_Client_SetMaterial, file, "$$$");
|
|
newXSproto(strcpy(buf, "Undye"), XS_Client_Undye, file, "$");
|
|
newXSproto(strcpy(buf, "GetItemIDAt"), XS_Client_GetItemIDAt, file, "$$");
|
|
newXSproto(strcpy(buf, "GetAugmentIDAt"), XS_Client_GetAugmentIDAt, file, "$$$");
|
|
newXSproto(strcpy(buf, "DeleteItemInInventory"), XS_Client_DeleteItemInInventory, file, "$$;$$");
|
|
newXSproto(strcpy(buf, "SummonItem"), XS_Client_SummonItem, file, "$$;$$$$$$$$");
|
|
newXSproto(strcpy(buf, "SetStats"), XS_Client_SetStats, file, "$$$");
|
|
newXSproto(strcpy(buf, "IncStats"), XS_Client_IncStats, file, "$$$");
|
|
newXSproto(strcpy(buf, "DropItem"), XS_Client_DropItem, file, "$$");
|
|
newXSproto(strcpy(buf, "BreakInvis"), XS_Client_BreakInvis, file, "$");
|
|
newXSproto(strcpy(buf, "GetGroup"), XS_Client_GetGroup, file, "$");
|
|
newXSproto(strcpy(buf, "LeaveGroup"), XS_Client_LeaveGroup, file, "$");
|
|
newXSproto(strcpy(buf, "GetRaid"), XS_Client_GetRaid, file, "$");
|
|
newXSproto(strcpy(buf, "IsGrouped"), XS_Client_IsGrouped, file, "$");
|
|
newXSproto(strcpy(buf, "IsRaidGrouped"), XS_Client_IsRaidGrouped, file, "$");
|
|
newXSproto(strcpy(buf, "Hungry"), XS_Client_Hungry, file, "$");
|
|
newXSproto(strcpy(buf, "Thirsty"), XS_Client_Thirsty, file, "$");
|
|
newXSproto(strcpy(buf, "GetInstrumentMod"), XS_Client_GetInstrumentMod, file, "$$");
|
|
newXSproto(strcpy(buf, "DecreaseByID"), XS_Client_DecreaseByID, file, "$$$");
|
|
newXSproto(strcpy(buf, "SlotConvert2"), XS_Client_SlotConvert2, file, "$$");
|
|
newXSproto(strcpy(buf, "Escape"), XS_Client_Escape, file, "$");
|
|
newXSproto(strcpy(buf, "RemoveNoRent"), XS_Client_RemoveNoRent, file, "$");
|
|
newXSproto(strcpy(buf, "GoFish"), XS_Client_GoFish, file, "$");
|
|
newXSproto(strcpy(buf, "ForageItem"), XS_Client_ForageItem, file, "$");
|
|
newXSproto(strcpy(buf, "CalcPriceMod"), XS_Client_CalcPriceMod, file, "$;$$");
|
|
newXSproto(strcpy(buf, "ResetTrade"), XS_Client_ResetTrade, file, "$");
|
|
newXSproto(strcpy(buf, "UseDiscipline"), XS_Client_UseDiscipline, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetCharacterFactionLevel"), XS_Client_GetCharacterFactionLevel, file, "$$");
|
|
newXSproto(strcpy(buf, "SetZoneFlag"), XS_Client_SetZoneFlag, file, "$$");
|
|
newXSproto(strcpy(buf, "ClearZoneFlag"), XS_Client_ClearZoneFlag, file, "$$");
|
|
newXSproto(strcpy(buf, "HasZoneFlag"), XS_Client_HasZoneFlag, file, "$$");
|
|
newXSproto(strcpy(buf, "SendZoneFlagInfo"), XS_Client_SendZoneFlagInfo, file, "$$");
|
|
newXSproto(strcpy(buf, "LoadZoneFlags"), XS_Client_LoadZoneFlags, file, "$");
|
|
newXSproto(strcpy(buf, "SetAATitle"), XS_Client_SetAATitle, file, "$$;$");
|
|
newXSproto(strcpy(buf, "GetClientVersion"), XS_Client_GetClientVersion, file, "$");
|
|
newXSproto(strcpy(buf, "GetClientVersionBit"), XS_Client_GetClientVersionBit, file, "$");
|
|
newXSproto(strcpy(buf, "SetTitleSuffix"), XS_Client_SetTitleSuffix, file, "$$;$");
|
|
newXSproto(strcpy(buf, "SetAAPoints"), XS_Client_SetAAPoints, file, "$$");
|
|
newXSproto(strcpy(buf, "GetAAPoints"), XS_Client_GetAAPoints, file, "$$");
|
|
newXSproto(strcpy(buf, "GetSpentAA"), XS_Client_GetSpentAA, file, "$$");
|
|
newXSproto(strcpy(buf, "AddAAPoints"), XS_Client_AddAAPoints, file, "$$");
|
|
newXSproto(strcpy(buf, "RefundAA"), XS_Client_RefundAA, file, "$$");
|
|
newXSproto(strcpy(buf, "GetModCharacterFactionLevel"), XS_Client_GetModCharacterFactionLevel, file, "$$");
|
|
newXSproto(strcpy(buf, "GetLDoNWins"), XS_Client_GetLDoNWins, file, "$");
|
|
newXSproto(strcpy(buf, "GetLDoNLosses"), XS_Client_GetLDoNLosses, file, "$");
|
|
newXSproto(strcpy(buf, "GetLDoNWinsTheme"), XS_Client_GetLDoNWinsTheme, file, "$$");
|
|
newXSproto(strcpy(buf, "GetLDoNLossesTheme"), XS_Client_GetLDoNLossesTheme, file, "$$");
|
|
newXSproto(strcpy(buf, "GetItemAt"), XS_Client_GetItemAt, file, "$$");
|
|
newXSproto(strcpy(buf, "GetAugmentAt"), XS_Client_GetAugmentAt, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetStartZone"), XS_Client_GetStartZone, file, "$");
|
|
newXSproto(strcpy(buf, "SetStartZone"), XS_Client_SetStartZone, file, "$$");
|
|
newXSproto(strcpy(buf, "KeyRingAdd"), XS_Client_KeyRingAdd, file, "$$");
|
|
newXSproto(strcpy(buf, "KeyRingCheck"), XS_Client_KeyRingCheck, file, "$$");
|
|
newXSproto(strcpy(buf, "AddPVPPoints"), XS_Client_AddPVPPoints, file, "$$");
|
|
newXSproto(strcpy(buf, "AddCrystals"), XS_Client_AddCrystals, file, "$$");
|
|
newXSproto(strcpy(buf, "GetPVPPoints"), XS_Client_GetPVPPoints, file, "$");
|
|
newXSproto(strcpy(buf, "GetRadiantCrystals"), XS_Client_GetRadiantCrystals, file, "$");
|
|
newXSproto(strcpy(buf, "GetEbonCrystals"), XS_Client_GetEbonCrystals, file, "$");
|
|
newXSproto(strcpy(buf, "ReadBook"), XS_Client_ReadBook, file, "$$$");
|
|
newXSproto(strcpy(buf, "UpdateGroupAAs"), XS_Client_UpdateGroupAAs, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetGroupPoints"), XS_Client_GetGroupPoints, file, "$");
|
|
newXSproto(strcpy(buf, "GetRaidPoints"), XS_Client_GetRaidPoints, file, "$");
|
|
newXSproto(strcpy(buf, "LearnRecipe"), XS_Client_LearnRecipe, file, "$$");
|
|
newXSproto(strcpy(buf, "GetEndurance"), XS_Client_GetEndurance, file, "$");
|
|
newXSproto(strcpy(buf, "GetMaxEndurance"), XS_Client_GetMaxEndurance, file, "$");
|
|
newXSproto(strcpy(buf, "GetEnduranceRatio"), XS_Client_GetEnduranceRatio, file, "$");
|
|
newXSproto(strcpy(buf, "SetEndurance"), XS_Client_SetEndurance, file, "$$");
|
|
newXSproto(strcpy(buf, "SendOPTranslocateConfirm"), XS_Client_SendOPTranslocateConfirm, file, "$$$");
|
|
newXSproto(strcpy(buf, "NPCSpawn"), XS_Client_NPCSpawn, file, "$$$;$");
|
|
newXSproto(strcpy(buf, "GetIP"), XS_Client_GetIP, file, "$");
|
|
newXSproto(strcpy(buf, "AddLevelBasedExp"), XS_Client_AddLevelBasedExp, file, "$$;$");
|
|
newXSproto(strcpy(buf, "IncrementAA"), XS_Client_IncrementAA, file, "$$");
|
|
newXSproto(strcpy(buf, "GetAALevel"), XS_Client_GetAALevel, file, "$$");
|
|
newXSproto(strcpy(buf, "MarkCompassLoc"), XS_Client_MarkCompassLoc, file, "$$$$");
|
|
newXSproto(strcpy(buf, "ClearCompassMark"), XS_Client_ClearCompassMark, file, "$");
|
|
newXSproto(strcpy(buf, "GetFreeSpellBookSlot"), XS_Client_GetFreeSpellBookSlot, file, "$;$");
|
|
newXSproto(strcpy(buf, "GetSpellBookSlotBySpellID"), XS_Client_GetSpellBookSlotBySpellID, file, "$$");
|
|
newXSproto(strcpy(buf, "UpdateTaskActivity"), XS_Client_UpdateTaskActivity, file, "$$$$");
|
|
newXSproto(strcpy(buf, "AssignTask"), XS_Client_AssignTask, file, "$$$");
|
|
newXSproto(strcpy(buf, "FailTask"), XS_Client_FailTask, file, "$$");
|
|
newXSproto(strcpy(buf, "IsTaskCompleted"), XS_Client_IsTaskCompleted, file, "$$");
|
|
newXSproto(strcpy(buf, "IsTaskActive"), XS_Client_IsTaskActive, file, "$$");
|
|
newXSproto(strcpy(buf, "IsTaskActivityActive"), XS_Client_IsTaskActivityActive, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetTaskActivityDoneCount"), XS_Client_GetTaskActivityDoneCount, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetCorpseCount"), XS_Client_GetCorpseCount, file, "$");
|
|
newXSproto(strcpy(buf, "GetCorpseID"), XS_Client_GetCorpseID, file, "$$");
|
|
newXSproto(strcpy(buf, "GetCorpseItemAt"), XS_Client_GetCorpseItemAt, file, "$$$");
|
|
newXSproto(strcpy(buf, "AssignToInstance"), XS_Client_AssignToInstance, file, "$$");
|
|
newXSproto(strcpy(buf, "Freeze"), XS_Client_Freeze, file, "$");
|
|
newXSproto(strcpy(buf, "UnFreeze"), XS_Client_UnFreeze, file, "$");
|
|
newXSproto(strcpy(buf, "GetAggroCount"), XS_Client_GetAggroCount, file, "$");
|
|
newXSproto(strcpy(buf, "GetCarriedMoney"), XS_Client_GetCarriedMoney, file, "$");
|
|
newXSproto(strcpy(buf, "GetAllMoney"), XS_Client_GetAllMoney, file, "$");
|
|
newXSproto(strcpy(buf, "GetItemInInventory"), XS_Client_GetItemInInventory, file, "$$");
|
|
newXSproto(strcpy(buf, "SetCustomItemData"), XS_Client_SetCustomItemData, file, "$$$$");
|
|
newXSproto(strcpy(buf, "GetCustomItemData"), XS_Client_GetCustomItemData, file, "$$$");
|
|
newXSproto(strcpy(buf, "OpenLFGuildWindow"), XS_Client_OpenLFGuildWindow, file, "$");
|
|
newXSproto(strcpy(buf, "SignalClient"), XS_Client_SignalClient, file, "$");
|
|
newXSproto(strcpy(buf, "AddAlternateCurrencyValue"), XS_Client_AddAlternateCurrencyValue, file, "$$$");
|
|
newXSproto(strcpy(buf, "SendWebLink"), XS_Client_SendWebLink, file, "$:$");
|
|
newXSproto(strcpy(buf, "GetInstanceID"), XS_Client_GetInstanceID, file, "$$");
|
|
newXSproto(strcpy(buf, "HasSpellScribed"), XS_Client_HasSkill, file, "$$");
|
|
newXSproto(strcpy(buf, "SetAccountFlag"), XS_Client_SetAccountFlag, file, "$$");
|
|
newXSproto(strcpy(buf, "GetAccountFlag"), XS_Client_GetAccountFlag, file, "$$");
|
|
newXSproto(strcpy(buf, "GetHunger"), XS_Client_GetHunger, file, "$$");
|
|
newXSproto(strcpy(buf, "GetThirst"), XS_Client_GetThirst, file, "$$");
|
|
newXSproto(strcpy(buf, "SetHunger"), XS_Client_SetHunger, file, "$$");
|
|
newXSproto(strcpy(buf, "SetThirst"), XS_Client_SetThirst, file, "$$");
|
|
newXSproto(strcpy(buf, "SetConsumption"), XS_Client_SetConsumption, file, "$$$");
|
|
newXSproto(strcpy(buf, "SilentMessage"), XS_Client_SilentMessage, file, "$$");
|
|
newXSproto(strcpy(buf, "PlayMP3"), XS_Client_PlayMP3, file, "$;$");
|
|
newXSproto(strcpy(buf, "SendTargetCommand"), XS_Client_SendTargetCommand, file, "$$");
|
|
newXSproto(strcpy(buf, "ExpeditionMessage"), XS_Client_ExpeditionMessage, file, "$$$");
|
|
newXSproto(strcpy(buf, "SendMarqueeMessage"), XS_Client_SendMarqueeMessage, file, "$$$$$$$");
|
|
newXSproto(strcpy(buf, "SendColoredText"), XS_Client_SendColoredText, file, "$$$");
|
|
newXSproto(strcpy(buf, "SendSpellAnim"), XS_Client_SendSpellAnim, file, "$$$");
|
|
|
|
XSRETURN_YES;
|
|
}
|
|
|
|
#endif //EMBPERL_XS_CLASSES
|