mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
8441 lines
200 KiB
C++
8441 lines
200 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
|
|
|
|
typedef const char Const_char;
|
|
|
|
#include "mob.h"
|
|
#include "client.h"
|
|
#include "../common/spdat.h"
|
|
|
|
#ifdef THIS /* this macro seems to leak out on some systems */
|
|
#undef THIS
|
|
#endif
|
|
|
|
|
|
XS(XS_Mob_IsClient); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsClient)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsClient(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsClient();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsNPC); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsNPC)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsNPC(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsNPC();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsMob); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsMob)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsMob(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsMob();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsCorpse); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsCorpse)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsCorpse(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsCorpse();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsPlayerCorpse); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsPlayerCorpse)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsPlayerCorpse(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsPlayerCorpse();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsNPCCorpse); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsNPCCorpse)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsNPCCorpse(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsNPCCorpse();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsObject); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsObject)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsObject(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsObject();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsDoor); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsDoor)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsDoor(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsDoor();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsTrap); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsTrap)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsTrap(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsTrap();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsBeacon); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsBeacon)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsBeacon(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsBeacon();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CastToClient); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CastToClient)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CastToClient(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Client * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CastToClient();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Client", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CastToNPC); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CastToNPC)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CastToNPC(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
NPC * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CastToNPC();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "NPC", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CastToMob); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CastToMob)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CastToMob(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CastToMob();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Mob", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CastToCorpse); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CastToCorpse)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CastToCorpse(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Corpse * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CastToCorpse();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Corpse", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetID(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetName); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetName)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetName(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Const_char * RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetName();
|
|
sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_Depop); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Depop)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::Depop(THIS, StartSpawnTimer = true)");
|
|
{
|
|
Mob * THIS;
|
|
bool StartSpawnTimer;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
StartSpawnTimer = true;
|
|
else {
|
|
StartSpawnTimer = (bool)SvTRUE(ST(1));
|
|
}
|
|
|
|
THIS->Depop(StartSpawnTimer);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_RogueAssassinate); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_RogueAssassinate)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::RogueAssassinate(THIS, other)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* other;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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.");
|
|
|
|
THIS->RogueAssassinate(other);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_BehindMob); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_BehindMob)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::BehindMob(THIS, other= 0, playerx= 0.0f, playery= 0.0f)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
Mob* other;
|
|
float playerx;
|
|
float playery;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)
|
|
playerx = 0.0f;
|
|
else {
|
|
playerx = (float)SvNV(ST(2));
|
|
}
|
|
|
|
if (items < 4)
|
|
playery = 0.0f;
|
|
else {
|
|
playery = (float)SvNV(ST(3));
|
|
}
|
|
|
|
RETVAL = THIS->BehindMob(other, playerx, playery);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetLevel); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetLevel)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetLevel(THIS, in_level, command= false)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 in_level = (uint8)SvUV(ST(1));
|
|
bool command;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
command = false;
|
|
else {
|
|
command = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
THIS->SetLevel(in_level, command);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetSkill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetSkill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetSkill(THIS, skill_num)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
SkillUseTypes skill_num = (SkillUseTypes)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSkill(skill_num);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SendWearChange); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SendWearChange)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SendWearChange(THIS, material_slot)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 material_slot = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendWearChange(material_slot);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetEquipment); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetEquipment)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetEquipment(THIS, material_slot)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint8 material_slot = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEquipment(material_slot);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetEquipmentMaterial); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetEquipmentMaterial)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetEquipmentMaterial(THIS, material_slot)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint8 material_slot = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEquipmentMaterial(material_slot);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetEquipmentColor); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetEquipmentColor)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetEquipmentColor(THIS, material_slot)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint8 material_slot = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEquipmentColor(material_slot);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetArmorTint); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetArmorTint)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetArmorTint(THIS, material_slot)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint8 material_slot = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetArmorTint(material_slot);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsMoving); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsMoving)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsMoving(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsMoving();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GoToBind); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GoToBind)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GoToBind(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->GoToBind();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Gate); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Gate)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::Gate(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Gate();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Attack); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Attack)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::Attack(THIS, other, Hand= 13, FromRiposte= false)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
Mob* other;
|
|
int Hand;
|
|
bool FromRiposte;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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)
|
|
Hand = 13;
|
|
else {
|
|
Hand = (int)SvIV(ST(2));
|
|
}
|
|
|
|
if (items < 4)
|
|
FromRiposte = false;
|
|
else {
|
|
FromRiposte = (bool)SvTRUE(ST(3));
|
|
}
|
|
|
|
RETVAL = THIS->Attack(other, Hand, FromRiposte);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_Damage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Damage)
|
|
{
|
|
dXSARGS;
|
|
if (items < 5 || items > 8)
|
|
Perl_croak(aTHX_ "Usage: Mob::Damage(THIS, from, damage, spell_id, attack_skill, avoidable= true, buffslot= -1, iBuffTic= false)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* from;
|
|
int32 damage = (int32)SvIV(ST(2));
|
|
uint16 spell_id = (uint16)SvUV(ST(3));
|
|
SkillUseTypes attack_skill = (SkillUseTypes)SvUV(ST(4));
|
|
bool avoidable;
|
|
int8 buffslot;
|
|
bool iBuffTic;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
from = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "from is not of type Mob");
|
|
if(from == nullptr)
|
|
Perl_croak(aTHX_ "from is nullptr, avoiding crash.");
|
|
|
|
if (items < 6)
|
|
avoidable = true;
|
|
else {
|
|
avoidable = (bool)SvTRUE(ST(5));
|
|
}
|
|
|
|
if (items < 7)
|
|
buffslot = -1;
|
|
else {
|
|
buffslot = (int8)SvIV(ST(6));
|
|
}
|
|
|
|
if (items < 8)
|
|
iBuffTic = false;
|
|
else {
|
|
iBuffTic = (bool)SvTRUE(ST(7));
|
|
}
|
|
|
|
THIS->Damage(from, damage, spell_id, attack_skill, avoidable, buffslot, iBuffTic);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_RangedAttack); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_RangedAttack)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::RangedAttack(THIS, other)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* other;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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.");
|
|
|
|
THIS->RangedAttack(other);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_ThrowingAttack); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_ThrowingAttack)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::ThrowingAttack(THIS, other)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* other;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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.");
|
|
|
|
THIS->ThrowingAttack(other);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Heal); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Heal)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::Heal(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Heal();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
|
|
XS(XS_Mob_HealDamage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_HealDamage)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::HealDamage(THIS, amount, caster = 0)");
|
|
{
|
|
Mob * THIS;
|
|
int32 heal_amt = (int32)SvIV(ST(1));
|
|
Mob * caster = nullptr;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if(items == 3)
|
|
{
|
|
if (sv_derived_from(ST(2), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(2)));
|
|
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->HealDamage(heal_amt, caster);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetMaxHP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetMaxHP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetMaxHP(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetMaxHP();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetLevelCon); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetLevelCon)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetLevelCon(THIS, iOtherLevel)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
uint8 iOtherLevel = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLevelCon(iOtherLevel);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetHP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetHP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetHP(THIS, hp)");
|
|
{
|
|
Mob * THIS;
|
|
int32 hp = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetHP(hp);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_DoAnim); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DoAnim)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::DoAnim(THIS, animnum, type=0)");
|
|
{
|
|
Mob * THIS;
|
|
int animnum = (int)SvIV(ST(1));
|
|
int type;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
type = 0;
|
|
else {
|
|
type = (int)SvIV(ST(2));
|
|
}
|
|
|
|
THIS->DoAnim(animnum, type);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_ChangeSize); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_ChangeSize)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::ChangeSize(THIS, in_size, bNoRestriction= false)");
|
|
{
|
|
Mob * THIS;
|
|
float in_size = (float)SvNV(ST(1));
|
|
bool bNoRestriction;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
bNoRestriction = false;
|
|
else {
|
|
bNoRestriction = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
THIS->ChangeSize(in_size, bNoRestriction);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GMMove); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GMMove)
|
|
{
|
|
dXSARGS;
|
|
if (items < 4 || items > 5)
|
|
Perl_croak(aTHX_ "Usage: Mob::GMMove(THIS, x, y, z, heading= 0.01)");
|
|
{
|
|
Mob * THIS;
|
|
float x = (float)SvNV(ST(1));
|
|
float y = (float)SvNV(ST(2));
|
|
float z = (float)SvNV(ST(3));
|
|
float heading;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 5)
|
|
heading = 0.01;
|
|
else {
|
|
heading = (float)SvNV(ST(4));
|
|
}
|
|
|
|
THIS->GMMove(x, y, z, heading);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SendPosUpdate); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SendPosUpdate)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SendPosUpdate(THIS, iSendToSelf= 0)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 iSendToSelf;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
iSendToSelf = 0;
|
|
else {
|
|
iSendToSelf = (uint8)SvUV(ST(1));
|
|
}
|
|
|
|
THIS->SendPosUpdate(iSendToSelf);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SendPosition); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SendPosition)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::SendPosition(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendPosition();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_HasProcs); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_HasProcs)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::HasProcs(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->HasProcs();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsInvisible); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsInvisible)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsInvisible(THIS, other= 0)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
Mob * other;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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.");
|
|
}
|
|
|
|
RETVAL = THIS->IsInvisible(other);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetInvisible); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetInvisible)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetInvisible(THIS, state)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 state = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetInvisible(state);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_FindBuff); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_FindBuff)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::FindBuff(THIS, spellid)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
uint16 spellid = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->FindBuff(spellid);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_FindType); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_FindType)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::FindType(THIS, type, bOffensive= false, threshold= 100)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
uint8 type = (uint8)SvUV(ST(1));
|
|
bool bOffensive;
|
|
uint16 threshold;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
bOffensive = false;
|
|
else {
|
|
bOffensive = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
if (items < 4)
|
|
threshold = 100;
|
|
else {
|
|
threshold = (uint16)SvUV(ST(3));
|
|
}
|
|
|
|
RETVAL = THIS->FindType(type, bOffensive, threshold);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetBuffSlotFromType); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetBuffSlotFromType)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetBuffSlotFromType(THIS, type)");
|
|
{
|
|
Mob * THIS;
|
|
int8 RETVAL;
|
|
dXSTARG;
|
|
uint8 type = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBuffSlotFromType(type);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_MakePet); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_MakePet)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::MakePet(THIS, spell_id, pettype, name=nullptr)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
char* pettype = (char *)SvPV_nolen(ST(2));
|
|
char * name;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 4)
|
|
name = nullptr;
|
|
else {
|
|
name = (char *)SvPV_nolen(ST(3));
|
|
}
|
|
|
|
THIS->MakePet(spell_id, pettype, name);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_MakeTempPet); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_MakeTempPet)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 5)
|
|
Perl_croak(aTHX_ "Usage: Mob::MakeTempPet(THIS, spell_id, name=nullptr, duration=0, target=nullptr)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
char * name;
|
|
uint32 duration;
|
|
Mob * target;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
name = nullptr;
|
|
else
|
|
name = (char *)SvPV_nolen(ST(2));
|
|
|
|
if (items < 4)
|
|
duration = 0;
|
|
else
|
|
duration = (uint32)SvUV(ST(3));
|
|
|
|
if (items < 5)
|
|
target = nullptr;
|
|
else if (sv_derived_from(ST(4), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(4)));
|
|
target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "owner is not of type Mob");
|
|
|
|
THIS->TemporaryPets(spell_id, target, name, duration);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_TypesTempPet); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_TypesTempPet)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 6)
|
|
Perl_croak(aTHX_ "Usage: Mob::TypesTempPet(THIS, typesid, name=nullptr, duration=0, target=nullptr, follow=0)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 typesid = (uint32)SvUV(ST(1));
|
|
char * name;
|
|
uint32 duration;
|
|
Mob * target;
|
|
bool follow;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
name = nullptr;
|
|
else
|
|
name = (char *)SvPV_nolen(ST(2));
|
|
|
|
if (items < 4)
|
|
duration = 0;
|
|
else
|
|
duration = (uint32)SvUV(ST(3));
|
|
|
|
if (items < 5)
|
|
target = nullptr;
|
|
else if (sv_derived_from(ST(4), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(4)));
|
|
target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "target is not of type Mob");
|
|
|
|
if (items < 6)
|
|
follow = false;
|
|
else {
|
|
follow = (bool)SvTRUE(ST(5));
|
|
}
|
|
|
|
THIS->TypesTemporaryPets(typesid, target, name, duration, follow);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetBaseRace); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetBaseRace)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetBaseRace(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseRace();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetBaseGender); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetBaseGender)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetBaseGender(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBaseGender();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetDeity); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetDeity)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetDeity(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetDeity();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetRace); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetRace)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetRace(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetRace();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetGender); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetGender)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetGender(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetGender();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetTexture); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetTexture)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetTexture(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetTexture();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetHelmTexture); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHelmTexture)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHelmTexture(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHelmTexture();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetHairColor); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHairColor)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHairColor(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHairColor();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetBeardColor); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetBeardColor)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetBeardColor(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBeardColor();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetEyeColor1); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetEyeColor1)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetEyeColor1(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEyeColor1();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetEyeColor2); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetEyeColor2)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetEyeColor2(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEyeColor2();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetHairStyle); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHairStyle)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHairStyle(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHairStyle();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetLuclinFace); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetLuclinFace)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetLuclinFace(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLuclinFace();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetBeard); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetBeard)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetBeard(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBeard();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetDrakkinHeritage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetDrakkinHeritage)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetDrakkinHeritage(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetDrakkinHeritage();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetDrakkinTattoo); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetDrakkinTattoo)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetDrakkinTattoo(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetDrakkinTattoo();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetDrakkinDetails); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetDrakkinDetails)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetDrakkinDetails(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetDrakkinDetails();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetClass); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetClass)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetClass(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetClass();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetLevel); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetLevel)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetLevel(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLevel();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetCleanName); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetCleanName)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetCleanName(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Const_char * RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCleanName();
|
|
sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetTarget); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetTarget)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetTarget(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetTarget();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Mob", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetTarget); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetTarget)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetTarget(THIS, mob)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* mob;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
mob = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "mob is not of type Mob");
|
|
if(mob == nullptr)
|
|
Perl_croak(aTHX_ "mob is nullptr, avoiding crash.");
|
|
|
|
THIS->SetTarget(mob);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetHPRatio); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHPRatio)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHPRatio(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHPRatio();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsWarriorClass); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsWarriorClass)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsWarriorClass(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsWarriorClass();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetHP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHP(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHP();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMaxHP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMaxHP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMaxHP(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxHP();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetItemHPBonuses); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetItemHPBonuses)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetItemHPBonuses(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetItemHPBonuses();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetSpellHPBonuses); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetSpellHPBonuses)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetSpellHPBonuses(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSpellHPBonuses();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetWalkspeed); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetWalkspeed)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetWalkspeed(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetWalkspeed();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetRunspeed); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetRunspeed)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetRunspeed(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetRunspeed();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetCasterLevel); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetCasterLevel)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetCasterLevel(THIS, spell_id)");
|
|
{
|
|
Mob * THIS;
|
|
int RETVAL;
|
|
dXSTARG;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCasterLevel(spell_id);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMaxMana); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMaxMana)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMaxMana(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxMana();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMana); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMana)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMana(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMana();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetMana); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetMana)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetMana(THIS, amount)");
|
|
{
|
|
Mob * THIS;
|
|
int32 amount = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetMana(amount);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetManaRatio); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetManaRatio)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetManaRatio(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetManaRatio();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetAC); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetAC)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetAC(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAC();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetATK); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetATK)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetATK(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetATK();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetSTR); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetSTR)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetSTR(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSTR();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetSTA); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetSTA)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetSTA(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSTA();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetDEX); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetDEX)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetDEX(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetDEX();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetAGI); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetAGI)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetAGI(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAGI();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetINT); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetINT)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetINT(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetINT();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetWIS); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetWIS)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetWIS(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetWIS();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetCHA); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetCHA)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetCHA(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCHA();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMR); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMR)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMR(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMR();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetFR); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetFR)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetFR(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetFR();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetDR); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetDR)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetDR(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetDR();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetPR); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetPR)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetPR(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetPR();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetCR); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetCR)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetCR(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCR();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetCorruption); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetCorruption)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetCorruption(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCorrup();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMaxSTR); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMaxSTR)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMaxSTR(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxSTR();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMaxSTA); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMaxSTA)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMaxSTA(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxSTA();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMaxDEX); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMaxDEX)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMaxDEX(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxDEX();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMaxAGI); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMaxAGI)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMaxAGI(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxAGI();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMaxINT); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMaxINT)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMaxINT(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxINT();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMaxWIS); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMaxWIS)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMaxWIS(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxWIS();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMaxCHA); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMaxCHA)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMaxCHA(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMaxCHA();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetActSpellRange); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetActSpellRange)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetActSpellRange(THIS, spell_id, range)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
float range = (float)SvNV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetActSpellRange(spell_id, range);
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetActSpellDamage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetActSpellDamage)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetActSpellDamage(THIS, spell_id, value)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
int32 value = (int32)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetActSpellDamage(spell_id, value);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetActSpellHealing); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetActSpellHealing)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetActSpellHealing(THIS, spell_id, value)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
int32 value = (int32)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetActSpellHealing(spell_id, value);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetActSpellCost); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetActSpellCost)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetActSpellCost(THIS, spell_id, cost)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
int32 cost = (int32)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetActSpellCost(spell_id, cost);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetActSpellDuration); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetActSpellDuration)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetActSpellDuration(THIS, spell_id, duration)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
int32 duration = (int32)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetActSpellDuration(spell_id, duration);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetActSpellCasttime); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetActSpellCasttime)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetActSpellCasttime(THIS, spell_id, casttime)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
int32 casttime = (int32)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetActSpellCasttime(spell_id, casttime);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_ResistSpell); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_ResistSpell)
|
|
{
|
|
dXSARGS;
|
|
if (items != 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::ResistSpell(THIS, ressit_type, spell_id, caster)");
|
|
{
|
|
Mob * THIS;
|
|
double RETVAL;
|
|
dXSTARG;
|
|
uint8 ressit_type = (uint8)SvUV(ST(1));
|
|
uint16 spell_id = (uint16)SvUV(ST(2));
|
|
Mob * caster;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (sv_derived_from(ST(3), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(3)));
|
|
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.");
|
|
|
|
RETVAL = THIS->ResistSpell(ressit_type, spell_id, caster);
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetSpecializeSkillValue); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetSpecializeSkillValue)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetSpecializeSkillValue(THIS, spell_id)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSpecializeSkillValue(spell_id);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetNPCTypeID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetNPCTypeID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetNPCTypeID(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetNPCTypeID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsTargeted); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsTargeted)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsTargeted(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsTargeted();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetX); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetX)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetX(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetX();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetY); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetY)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetY(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetY();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetZ); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetZ)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetZ(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetZ();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetHeading); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHeading)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHeading(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHeading();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
|
|
XS(XS_Mob_GetWaypointX); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetWaypointX)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetWaypointX(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCWPX();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetWaypointY); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetWaypointY)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetWaypointY(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCWPY();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetWaypointZ); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetWaypointZ)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetWaypointZ(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCWPZ();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetWaypointH); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetWaypointH)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetWaypointH(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCWPH();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetWaypointPause); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetWaypointPause)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetWaypointPause(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCWPP();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetWaypointID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetWaypointID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetWaypointID(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetCWP();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetCurrentWP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetCurrentWP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetCurrentWP(THIS, waypoint)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 waypoint = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetCurrentWP(waypoint);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetSize); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetSize)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetSize(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSize();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetFollowID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetFollowID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetFollowID(THIS, id)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 id = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetFollowID(id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetFollowID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetFollowID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetFollowID(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetFollowID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_Message); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Message)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::Message(THIS, type, message, ...)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 type = (uint32)SvUV(ST(1));
|
|
char* message = (char *)SvPV_nolen(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Message(type, message);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Message_StringID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Message_StringID)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::Message_StringID(THIS, type, string_id, distance= 0)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 type = (uint32)SvUV(ST(1));
|
|
uint32 string_id = (uint32)SvUV(ST(2));
|
|
uint32 distance;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 4)
|
|
distance = 0;
|
|
else {
|
|
distance = (uint32)SvUV(ST(3));
|
|
}
|
|
|
|
THIS->Message_StringID(type, string_id, distance);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Say); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Say)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::Say(THIS, format, ...)");
|
|
{
|
|
Mob * THIS;
|
|
char * format = (char *)SvPV_nolen(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Say(format);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Shout); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Shout)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::Shout(THIS, format, ...)");
|
|
{
|
|
Mob * THIS;
|
|
char * format = (char *)SvPV_nolen(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Shout(format);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Emote); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Emote)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::Emote(THIS, format, ...)");
|
|
{
|
|
Mob * THIS;
|
|
char * format = (char *)SvPV_nolen(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Emote(format);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_InterruptSpell); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_InterruptSpell)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::InterruptSpell(THIS, spellid= 0xFFFF)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 spellid;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
spellid = 0xFFFF;
|
|
else {
|
|
spellid = (uint16)SvUV(ST(1));
|
|
}
|
|
|
|
THIS->InterruptSpell(spellid);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_CastSpell); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CastSpell)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 7)
|
|
Perl_croak(aTHX_ "Usage: Mob::CastSpell(THIS, spell_id, target_id, slot= 10, casttime= -1, mana_cost= -1, resist_adjust = 0)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
uint16 target_id = (uint16)SvUV(ST(2));
|
|
uint16 slot;
|
|
int32 casttime;
|
|
int32 mana_cost;
|
|
int16 resist_adjust;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 4)
|
|
slot = 10;
|
|
else {
|
|
slot = (uint16)SvUV(ST(3));
|
|
}
|
|
|
|
if (items < 5)
|
|
casttime = -1;
|
|
else {
|
|
casttime = (int32)SvIV(ST(4));
|
|
}
|
|
|
|
if (items < 6)
|
|
mana_cost = -1;
|
|
else {
|
|
mana_cost = (int32)SvIV(ST(5));
|
|
}
|
|
|
|
if(items < 7)
|
|
{
|
|
resist_adjust = 0;
|
|
}
|
|
else
|
|
{
|
|
resist_adjust = (int16)SvIV(ST(6));
|
|
}
|
|
|
|
THIS->CastSpell(spell_id, target_id, slot, casttime, mana_cost, 0, 0xFFFFFFFF, 0xFFFFFFFF, 0, 0, &resist_adjust);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SpellFinished); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SpellFinished)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 5)
|
|
Perl_croak(aTHX_ "Usage: Mob::SpellFinished(spell_id, spell_target = this, mana_cost = 0, resist_diff = 0)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
Mob * spell_target;
|
|
uint16 mana_cost = 0;
|
|
int16 resist_diff;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
spell_target = THIS;
|
|
|
|
if (items > 2)
|
|
{
|
|
if (sv_derived_from(ST(2), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(2)));
|
|
spell_target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "spell_target is not of type Mob");
|
|
if(spell_target == nullptr)
|
|
Perl_croak(aTHX_ "spell_target is nullptr, avoiding crash.");
|
|
|
|
}
|
|
|
|
if (items > 3)
|
|
mana_cost = (uint16)SvUV(ST(3));
|
|
|
|
if (items > 4)
|
|
{
|
|
resist_diff = (int16)SvUV(ST(4));
|
|
}
|
|
else
|
|
{
|
|
resist_diff = spells[spell_id].ResistDiff;
|
|
}
|
|
|
|
THIS->SpellFinished(spell_id, spell_target, 10, mana_cost, -1, resist_diff);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_IsImmuneToSpell); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsImmuneToSpell)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsImmuneToSpell(THIS, spell_id, caster)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
Mob * caster;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (sv_derived_from(ST(2), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(2)));
|
|
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.");
|
|
|
|
RETVAL = THIS->IsImmuneToSpell(spell_id, caster);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_BuffFadeBySpellID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_BuffFadeBySpellID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::BuffFadeBySpellID(THIS, spell_id)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->BuffFadeBySpellID(spell_id);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_BuffFadeByEffect); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_BuffFadeByEffect)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::BuffFadeByEffect(THIS, effectid, skipslot= -1)");
|
|
{
|
|
Mob * THIS;
|
|
int effectid = (int)SvIV(ST(1));
|
|
int skipslot;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
skipslot = -1;
|
|
else {
|
|
skipslot = (int)SvIV(ST(2));
|
|
}
|
|
|
|
THIS->BuffFadeByEffect(effectid, skipslot);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_BuffFadeAll); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_BuffFadeAll)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::BuffFadeAll(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->BuffFadeAll();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_BuffFadeBySlot); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_BuffFadeBySlot)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::BuffFadeBySlot(THIS, slot, iRecalcBonuses= true)");
|
|
{
|
|
Mob * THIS;
|
|
int slot = (int)SvIV(ST(1));
|
|
bool iRecalcBonuses;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
iRecalcBonuses = true;
|
|
else {
|
|
iRecalcBonuses = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
THIS->BuffFadeBySlot(slot, iRecalcBonuses);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_CanBuffStack); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CanBuffStack)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::CanBuffStack(THIS, spellid, caster_level, iFailIfOverwrite= false)");
|
|
{
|
|
Mob * THIS;
|
|
int RETVAL;
|
|
dXSTARG;
|
|
uint16 spellid = (uint16)SvUV(ST(1));
|
|
uint8 caster_level = (uint8)SvUV(ST(2));
|
|
bool iFailIfOverwrite;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 4)
|
|
iFailIfOverwrite = false;
|
|
else {
|
|
iFailIfOverwrite = (bool)SvTRUE(ST(3));
|
|
}
|
|
|
|
RETVAL = THIS->CanBuffStack(spellid, caster_level, iFailIfOverwrite);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsCasting); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsCasting)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsCasting(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsCasting();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CastingSpellID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CastingSpellID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CastingSpellID(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CastingSpellID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetAppearance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetAppearance)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetAppearance(THIS, app, iIgnoreSelf= true)");
|
|
{
|
|
Mob * THIS;
|
|
EmuAppearance app = (EmuAppearance)SvUV(ST(1));
|
|
bool iIgnoreSelf;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
iIgnoreSelf = true;
|
|
else {
|
|
iIgnoreSelf = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
THIS->SetAppearance(app, iIgnoreSelf);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetAppearance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetAppearance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetAppearance(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
EmuAppearance RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAppearance();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetRunAnimSpeed); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetRunAnimSpeed)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetRunAnimSpeed(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetRunAnimSpeed();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetRunAnimSpeed); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetRunAnimSpeed)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetRunAnimSpeed(THIS, in)");
|
|
{
|
|
Mob * THIS;
|
|
int8 in = (int8)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetRunAnimSpeed(in);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetPetID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetPetID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetPetID(THIS, NewPetID)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 NewPetID = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetPetID(NewPetID);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetPetID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetPetID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetPetID(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetPetID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetOwnerID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetOwnerID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetOwnerID(THIS, NewOwnerID)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 NewOwnerID = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetOwnerID(NewOwnerID);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetOwnerID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetOwnerID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetOwnerID(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetOwnerID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetPetType); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetPetType)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetPetType(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetPetType();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetBodyType); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetBodyType)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetBodyType(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetBodyType();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_Stun); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Stun)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::Stun(THIS, duration)");
|
|
{
|
|
Mob * THIS;
|
|
int duration = (int)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Stun(duration);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Spin); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Spin)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::Spin(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Spin();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Kill); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Kill)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::Kill(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Kill();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetInvul); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetInvul)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetInvul(THIS, invul)");
|
|
{
|
|
Mob * THIS;
|
|
bool invul = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetInvul(invul);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetInvul); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetInvul)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetInvul(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetInvul();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetExtraHaste); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetExtraHaste)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetExtraHaste(THIS, Haste)");
|
|
{
|
|
Mob * THIS;
|
|
int Haste = (int)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetExtraHaste(Haste);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetHaste); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHaste)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHaste(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHaste();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMonkHandToHandDamage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMonkHandToHandDamage)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMonkHandToHandDamage(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMonkHandToHandDamage();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CanThisClassDoubleAttack); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CanThisClassDoubleAttack)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CanThisClassDoubleAttack(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CanThisClassDoubleAttack();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CanThisClassDualWield); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CanThisClassDualWield)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CanThisClassDualWield(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CanThisClassDualWield();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CanThisClassRiposte); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CanThisClassRiposte)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CanThisClassRiposte(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CanThisClassRiposte();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CanThisClassDodge); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CanThisClassDodge)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CanThisClassDodge(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CanThisClassDodge();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CanThisClassParry); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CanThisClassParry)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::CanThisClassParry(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CanThisClassParry();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetMonkHandToHandDelay); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetMonkHandToHandDelay)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetMonkHandToHandDelay(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
int RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetMonkHandToHandDelay();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetClassLevelFactor); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetClassLevelFactor)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetClassLevelFactor(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetClassLevelFactor();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_Mesmerize); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Mesmerize)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::Mesmerize(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->Mesmerize();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_IsMezzed); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsMezzed)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsMezzed(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsMezzed();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsStunned); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsStunned)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsStunned(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsStunned();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
|
|
XS(XS_Mob_StartEnrage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_StartEnrage)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::StartEnrage(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->StartEnrage();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_IsEnraged); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsEnraged)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsEnraged(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsEnraged();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetReverseFactionCon); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetReverseFactionCon)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetReverseFactionCon(THIS, iOther)");
|
|
{
|
|
Mob * THIS;
|
|
FACTION_VALUE RETVAL;
|
|
dXSTARG;
|
|
Mob* iOther;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
iOther = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "iOther is not of type Mob");
|
|
if(iOther == nullptr)
|
|
Perl_croak(aTHX_ "iOther is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetReverseFactionCon(iOther);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsAIControlled); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsAIControlled)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsAIControlled(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsAIControlled();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetAggroRange); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetAggroRange)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetAggroRange(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAggroRange();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetAssistRange); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetAssistRange)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetAssistRange(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAssistRange();
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetPetOrder); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetPetOrder)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetPetOrder(THIS, i)");
|
|
{
|
|
Mob * THIS;
|
|
Mob::eStandingPetOrder i = (Mob::eStandingPetOrder)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetPetOrder(i);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetPetOrder); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetPetOrder)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetPetOrder(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Mob::eStandingPetOrder RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetPetOrder();
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsRoamer); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsRoamer)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsRoamer(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsRoamer();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsRooted); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsRooted)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsRooted(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsRooted();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_AddToHateList); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_AddToHateList)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 7)
|
|
Perl_croak(aTHX_ "Usage: Mob::AddToHateList(THIS, other, hate= 0, damage= 0, iYellForHelp= true, bFrenzy= false, iBuffTic= false)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* other;
|
|
int32 hate;
|
|
int32 damage;
|
|
bool iYellForHelp;
|
|
bool bFrenzy;
|
|
bool iBuffTic;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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)
|
|
hate = 0;
|
|
else {
|
|
hate = (int32)SvIV(ST(2));
|
|
}
|
|
|
|
if (items < 4)
|
|
damage = 0;
|
|
else {
|
|
damage = (int32)SvIV(ST(3));
|
|
}
|
|
|
|
if (items < 5)
|
|
iYellForHelp = true;
|
|
else {
|
|
iYellForHelp = (bool)SvTRUE(ST(4));
|
|
}
|
|
|
|
if (items < 6)
|
|
bFrenzy = false;
|
|
else {
|
|
bFrenzy = (bool)SvTRUE(ST(5));
|
|
}
|
|
|
|
if (items < 7)
|
|
iBuffTic = false;
|
|
else {
|
|
iBuffTic = (bool)SvTRUE(ST(6));
|
|
}
|
|
|
|
THIS->AddToHateList(other, hate, damage, iYellForHelp, bFrenzy, iBuffTic);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetHate); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetHate)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetHate(THIS, other, hate= 0, damage= 0)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* other;
|
|
int32 hate;
|
|
int32 damage;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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)
|
|
hate = 0;
|
|
else {
|
|
hate = (int32)SvIV(ST(2));
|
|
}
|
|
|
|
if (items < 4)
|
|
damage = 0;
|
|
else {
|
|
damage = (int32)SvIV(ST(3));
|
|
}
|
|
|
|
THIS->SetHate(other, hate, damage);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_HalveAggro);
|
|
XS(XS_Mob_HalveAggro)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::HalveAggro(THIS, other)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * other;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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.");
|
|
|
|
THIS->HalveAggro(other);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_DoubleAggro);
|
|
XS(XS_Mob_DoubleAggro)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::DoubleAggro(THIS, other)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * other;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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.");
|
|
|
|
THIS->DoubleAggro(other);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetHateAmount); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHateAmount)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHateAmount(THIS, tmob, is_dam= false)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
Mob* tmob;
|
|
bool is_dam;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
tmob = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "tmob is not of type Mob");
|
|
if(tmob == nullptr)
|
|
Perl_croak(aTHX_ "tmob is nullptr, avoiding crash.");
|
|
|
|
if (items < 3)
|
|
is_dam = false;
|
|
else {
|
|
is_dam = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
RETVAL = THIS->GetHateAmount(tmob, is_dam);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetDamageAmount); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetDamageAmount)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetDamageAmount(THIS, tmob)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
Mob* tmob;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
tmob = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "tmob is not of type Mob");
|
|
if(tmob == nullptr)
|
|
Perl_croak(aTHX_ "tmob is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetDamageAmount(tmob);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetHateTop); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHateTop)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHateTop(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHateTop();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Mob", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetHateDamageTop); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHateDamageTop)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHateDamageTop(THIS, other)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * RETVAL;
|
|
Mob* other;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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.");
|
|
|
|
RETVAL = THIS->GetHateDamageTop(other);
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Mob", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetHateRandom); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHateRandom)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHateRandom(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetHateRandom();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Mob", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsEngaged); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsEngaged)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsEngaged(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsEngaged();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_HateSummon); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_HateSummon)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::HateSummon(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->HateSummon();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_FaceTarget); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_FaceTarget)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::FaceTarget(THIS, MobToFace= 0)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* MobToFace;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 2)
|
|
MobToFace = 0;
|
|
else {
|
|
if (sv_derived_from(ST(1), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(1)));
|
|
MobToFace = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "MobToFace is not of type Mob");
|
|
if(MobToFace == nullptr)
|
|
Perl_croak(aTHX_ "MobToFace is nullptr, avoiding crash.");
|
|
}
|
|
|
|
THIS->FaceTarget(MobToFace);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetHeading); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetHeading)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetHeading(THIS, iHeading)");
|
|
{
|
|
Mob * THIS;
|
|
float iHeading = (float)SvNV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetHeading(iHeading);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_WipeHateList); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_WipeHateList)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::WipeHateList(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->WipeHateList();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_CheckAggro); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CheckAggro)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::CheckAggro(THIS, other)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
Mob* other;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
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.");
|
|
|
|
RETVAL = THIS->CheckAggro(other);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CalculateHeadingToTarget); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CalculateHeadingToTarget)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::CalculateHeadingToTarget(THIS, in_x, in_y)");
|
|
{
|
|
Mob * THIS;
|
|
int8 RETVAL;
|
|
dXSTARG;
|
|
float in_x = (float)SvNV(ST(1));
|
|
float in_y = (float)SvNV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CalculateHeadingToTarget(in_x, in_y);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CalculateNewPosition); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CalculateNewPosition)
|
|
{
|
|
dXSARGS;
|
|
if (items < 5 || items > 6)
|
|
Perl_croak(aTHX_ "Usage: Mob::CalculateNewPosition(THIS, x, y, z, speed, checkZ= false)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
float x = (float)SvNV(ST(1));
|
|
float y = (float)SvNV(ST(2));
|
|
float z = (float)SvNV(ST(3));
|
|
float speed = (float)SvNV(ST(4));
|
|
bool checkZ;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 6)
|
|
checkZ = false;
|
|
else {
|
|
checkZ = (bool)SvTRUE(ST(5));
|
|
}
|
|
|
|
RETVAL = THIS->CalculateNewPosition(x, y, z, speed, checkZ);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CalculateNewPosition2); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CalculateNewPosition2)
|
|
{
|
|
dXSARGS;
|
|
if (items < 5 || items > 6)
|
|
Perl_croak(aTHX_ "Usage: Mob::CalculateNewPosition2(THIS, x, y, z, speed, checkZ= false)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
float x = (float)SvNV(ST(1));
|
|
float y = (float)SvNV(ST(2));
|
|
float z = (float)SvNV(ST(3));
|
|
float speed = (float)SvNV(ST(4));
|
|
bool checkZ;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items < 6)
|
|
checkZ = false;
|
|
else {
|
|
checkZ = (bool)SvTRUE(ST(5));
|
|
}
|
|
|
|
RETVAL = THIS->CalculateNewPosition2(x, y, z, speed, checkZ);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CalculateDistance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CalculateDistance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::CalculateDistance(THIS, x, y, z)");
|
|
{
|
|
Mob * THIS;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
float x = (float)SvNV(ST(1));
|
|
float y = (float)SvNV(ST(2));
|
|
float z = (float)SvNV(ST(3));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CalculateDistance(x, y, z);
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SendTo); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SendTo)
|
|
{
|
|
dXSARGS;
|
|
if (items != 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::SendTo(THIS, new_x, new_y, new_z)");
|
|
{
|
|
Mob * THIS;
|
|
float new_x = (float)SvNV(ST(1));
|
|
float new_y = (float)SvNV(ST(2));
|
|
float new_z = (float)SvNV(ST(3));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendTo(new_x, new_y, new_z);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SendToFixZ); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SendToFixZ)
|
|
{
|
|
dXSARGS;
|
|
if (items != 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::SendToFixZ(THIS, new_x, new_y, new_z)");
|
|
{
|
|
Mob * THIS;
|
|
float new_x = (float)SvNV(ST(1));
|
|
float new_y = (float)SvNV(ST(2));
|
|
float new_z = (float)SvNV(ST(3));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendToFixZ(new_x, new_y, new_z);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_NPCSpecialAttacks); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_NPCSpecialAttacks)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 5)
|
|
Perl_croak(aTHX_ "Usage: Mob::NPCSpecialAttacks(THIS, parse, permtag, [reset], [remove])");
|
|
{
|
|
Mob * THIS;
|
|
char* parse = (char *)SvPV_nolen(ST(1));
|
|
int permtag = (int)SvIV(ST(2));
|
|
bool reset = items == 4 ? (bool)SvTRUE(ST(3)) : true;
|
|
bool remove = items == 5 ? (bool)SvTRUE(ST(4)) : false;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->NPCSpecialAttacks(parse, permtag, reset, remove);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_DontHealMeBefore); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DontHealMeBefore)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::DontHealMeBefore(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->DontHealMeBefore();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_DontBuffMeBefore); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DontBuffMeBefore)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::DontBuffMeBefore(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->DontBuffMeBefore();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_DontDotMeBefore); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DontDotMeBefore)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::DontDotMeBefore(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->DontDotMeBefore();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_DontRootMeBefore); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DontRootMeBefore)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::DontRootMeBefore(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->DontRootMeBefore();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_DontSnareMeBefore); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DontSnareMeBefore)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::DontSnareMeBefore(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->DontSnareMeBefore();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetResist); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetResist)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetResist(THIS, type)");
|
|
{
|
|
Mob * THIS;
|
|
int16 RETVAL;
|
|
dXSTARG;
|
|
uint8 type = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetResist(type);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetShieldTarget); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetShieldTarget)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetShieldTarget(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetShieldTarget();
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Mob", (void*)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetShieldTarget); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetShieldTarget)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetShieldTarget(THIS, mob)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* mob;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
mob = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "mob is not of type Mob");
|
|
if(mob == nullptr)
|
|
Perl_croak(aTHX_ "mob is nullptr, avoiding crash.");
|
|
|
|
THIS->SetShieldTarget(mob);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_Charmed); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_Charmed)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::Charmed(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->Charmed();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetLevelHP); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetLevelHP)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetLevelHP(THIS, tlevel)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
uint8 tlevel = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetLevelHP(tlevel);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetZoneID); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetZoneID)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetZoneID(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetZoneID();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CheckAggroAmount); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CheckAggroAmount)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::CheckAggroAmount(THIS, spellid)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
uint16 spellid = (uint16)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CheckAggroAmount(spellid);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CheckHealAggroAmount); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CheckHealAggroAmount)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2 && items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::CheckHealAggroAmount(THIS, spellid, possible_heal_amt)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 RETVAL;
|
|
dXSTARG;
|
|
uint16 spellid = (uint16)SvUV(ST(1));
|
|
uint32 possible = 0;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if(items == 3)
|
|
{
|
|
possible = (uint32)SvUV(ST(2));
|
|
}
|
|
|
|
RETVAL = THIS->CheckHealAggroAmount(spellid, possible);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetAA); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetAA)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetAA(THIS, aa_id)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
uint32 aa_id = (uint32)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAA(aa_id);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_DivineAura); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DivineAura)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::DivineAura(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->DivineAura();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_AddFeignMemory); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_AddFeignMemory)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::AddFeignMemory(THIS, attacker)");
|
|
{
|
|
Mob * THIS;
|
|
Client* attacker;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
attacker = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "attacker is not of type Client");
|
|
if(attacker == nullptr)
|
|
Perl_croak(aTHX_ "attacker is nullptr, avoiding crash.");
|
|
|
|
THIS->AddFeignMemory(attacker);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_RemoveFromFeignMemory); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_RemoveFromFeignMemory)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::RemoveFromFeignMemory(THIS, attacker)");
|
|
{
|
|
Mob * THIS;
|
|
Client* attacker;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
attacker = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "attacker is not of type Client");
|
|
if(attacker == nullptr)
|
|
Perl_croak(aTHX_ "attacker is nullptr, avoiding crash.");
|
|
|
|
THIS->RemoveFromFeignMemory(attacker);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_ClearFeignMemory); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_ClearFeignMemory)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::ClearFeignMemory(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->ClearFeignMemory();
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetOOCRegen); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetOOCRegen)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetOOCRegen(THIS, newoocregen)");
|
|
{
|
|
Mob * THIS;
|
|
int32 newoocregen = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetOOCRegen(newoocregen);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetEntityVariable); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetEntityVariable)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetEntityVariable(THIS, id)");
|
|
{
|
|
Mob * THIS;
|
|
Const_char * id = SvPV_nolen(ST(1));
|
|
Const_char * RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetEntityVariable(id);
|
|
sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG;
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_EntityVariableExists); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_EntityVariableExists)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::EntityVariableExists(THIS, id)");
|
|
{
|
|
Mob * THIS;
|
|
Const_char * id = SvPV_nolen(ST(1));
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->EntityVariableExists(id);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetEntityVariable); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetEntityVariable)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetEntityVariable(THIS, id, var)");
|
|
{
|
|
Mob * THIS;
|
|
Const_char * id = SvPV_nolen(ST(1));
|
|
const char * var = (const char *)SvPV_nolen(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetEntityVariable(id, var);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetHateList); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetHateList)
|
|
{
|
|
dXSARGS;
|
|
int num_entries = 0;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetHateList(THIS)");
|
|
{
|
|
Mob *THIS;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
auto hate_list = THIS->GetHateList();
|
|
auto iter = hate_list.begin();
|
|
|
|
while(iter != hate_list.end())
|
|
{
|
|
tHateEntry *entry = (*iter);
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "HateEntry", (void*)entry);
|
|
XPUSHs(ST(0));
|
|
num_entries++;
|
|
iter++;
|
|
}
|
|
}
|
|
XSRETURN(num_entries);
|
|
}
|
|
|
|
/*
|
|
dXSARGS;
|
|
int num_mobs = 0;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: EntityList::GetCorpseList(THIS)");
|
|
{
|
|
EntityList *THIS;
|
|
|
|
if (sv_derived_from(ST(0), "EntityList")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(EntityList *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type EntityList");
|
|
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
std::list<Corpse*> corpse_list = entity_list.GetCorpseList();
|
|
std::list<Corpse*>::iterator iter = corpse_list.begin();
|
|
|
|
while(iter != corpse_list.end())
|
|
{
|
|
Corpse *entry = (*iter);
|
|
ST(0) = sv_newmortal();
|
|
sv_setref_pv(ST(0), "Corpse", (void*)entry);
|
|
XPUSHs(ST(0));
|
|
num_mobs++;
|
|
iter++;
|
|
}
|
|
}
|
|
XSRETURN(num_mobs);
|
|
*/
|
|
|
|
XS(XS_Mob_SignalClient); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SignalClient)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::SignalClient(THIS, client, data)");
|
|
{
|
|
Mob * THIS;
|
|
Client* client = nullptr;
|
|
uint32 data = (uint32)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
client = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "client is not of type Client");
|
|
if(client == nullptr)
|
|
Perl_croak(aTHX_ "client is nullptr, avoiding crash.");
|
|
|
|
client->Signal(data);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_CombatRange); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CombatRange)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::CombatRange(THIS, target)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * target = nullptr;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "target is not of type Mob");
|
|
if(target == nullptr)
|
|
Perl_croak(aTHX_ "target is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CombatRange(target);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_DoSpecialAttackDamage); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DoSpecialAttackDamage)
|
|
{
|
|
dXSARGS;
|
|
if (items < 4 || items > 6)
|
|
Perl_croak(aTHX_ "Usage: Mob::DoSpecialAttackDamage(THIS, target, skill, max_damage, min_damage = 1, hate_override = -1)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* target;
|
|
SkillUseTypes attack_skill = (SkillUseTypes)SvUV(ST(2));
|
|
int32 max_damage = (int32)SvIV(ST(3));
|
|
int32 min_damage = 1;
|
|
int32 hate_override = -11;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "target is not of type Mob");
|
|
if(target == nullptr)
|
|
Perl_croak(aTHX_ "target is nullptr, avoiding crash.");
|
|
|
|
if (items > 4)
|
|
{
|
|
min_damage = (int32)SvIV(ST(4));
|
|
}
|
|
|
|
if (items == 6)
|
|
{
|
|
hate_override = (int32)SvIV(ST(5));
|
|
}
|
|
|
|
THIS->DoSpecialAttackDamage(target, attack_skill, max_damage, min_damage, hate_override);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_CheckLoS); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CheckLoS)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::CheckLoS(THIS, mob)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* mob;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
mob = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "mob is not of type Mob");
|
|
if(mob == nullptr)
|
|
Perl_croak(aTHX_ "mob is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CheckLosFN(mob);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_CheckLoSToLoc); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CheckLoSToLoc)
|
|
{
|
|
dXSARGS;
|
|
if (items != 4 && items != 5)
|
|
Perl_croak(aTHX_ "Usage: Mob::CheckLoSToLoc(THIS, loc_x, loc_y, loc_z, mob_size)");
|
|
{
|
|
Mob * THIS;
|
|
float loc_x = (float)SvNV(ST(1));
|
|
float loc_y = (float)SvNV(ST(2));
|
|
float loc_z = (float)SvNV(ST(3));
|
|
float mob_size;
|
|
bool RETVAL;
|
|
|
|
if (items == 5) {
|
|
mob_size = (float)SvNV(ST(4));
|
|
}
|
|
else {
|
|
mob_size = 6;
|
|
}
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->CheckLosFN(loc_x, loc_y, loc_z, mob_size);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_FindGroundZ); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_FindGroundZ)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3 && items != 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::FindGroundZ(THIS, new_x, new_y, z_offset)");
|
|
{
|
|
Mob * THIS;
|
|
float new_x = (float)SvNV(ST(1));
|
|
float new_y = (float)SvNV(ST(2));
|
|
float z_offset;
|
|
float RETVAL;
|
|
dXSTARG;
|
|
|
|
if (items == 4) {
|
|
z_offset = (float)SvNV(ST(3));
|
|
}
|
|
else {
|
|
z_offset = 10;
|
|
}
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetGroundZ(new_x, new_y, z_offset);
|
|
XSprePUSH; PUSHn((double)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_ProjectileAnim); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_ProjectileAnim)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 8)
|
|
Perl_croak(aTHX_ "Usage: Mob::ProjectileAnim(THIS, mob, item_id, IsArrow?, speed, angle, tilt, arc)");
|
|
|
|
{
|
|
Mob * THIS;
|
|
Mob* mob;
|
|
int item_id = SvUV(ST(2));
|
|
bool IsArrow = false;
|
|
float speed = 0;
|
|
float angle = 0;
|
|
float tilt = 0;
|
|
float arc = 0;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
mob = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "mob is not of type Mob");
|
|
if(mob == nullptr)
|
|
Perl_croak(aTHX_ "mob is nullptr, avoiding crash.");
|
|
|
|
if(items > 3){
|
|
IsArrow = (bool)SvTRUE(ST(3));
|
|
}
|
|
if(items > 4){
|
|
speed = (float)SvNV(ST(4));
|
|
}
|
|
if(items > 5){
|
|
angle = (float)SvNV(ST(5));
|
|
}
|
|
if(items > 6){
|
|
tilt = (float)SvNV(ST(6));
|
|
}
|
|
if(items > 7){
|
|
arc = (float)SvNV(ST(7));
|
|
}
|
|
|
|
THIS->ProjectileAnimation(mob, item_id, IsArrow, speed, angle, tilt, arc);
|
|
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_HasNPCSpecialAtk); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_HasNPCSpecialAtk)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::HasNPCSpecialAtk(THIS, parse)");
|
|
{
|
|
Mob * THIS;
|
|
char* parse = (char *)SvPV_nolen(ST(1));
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->HasNPCSpecialAtk(parse);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SendAppearanceEffect); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SendAppearanceEffect)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 7)
|
|
Perl_croak(aTHX_ "Usage: Mob::SendAppearanceEffect(THIS, parm1, parm2, parm3, parm4, parm5, singleclient)");
|
|
{
|
|
Mob * THIS;
|
|
int32 parm1 = (int32)SvIV(ST(1));
|
|
int32 parm2 = 0;
|
|
int32 parm3 = 0;
|
|
int32 parm4 = 0;
|
|
int32 parm5 = 0;
|
|
Client* client = nullptr;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 2) { parm2 = (int32)SvIV(ST(2)); }
|
|
if (items > 3) { parm3 = (int32)SvIV(ST(3)); }
|
|
if (items > 4) { parm4 = (int32)SvIV(ST(4)); }
|
|
if (items > 5) { parm5 = (int32)SvIV(ST(5)); }
|
|
if (items > 6) {
|
|
if (sv_derived_from(ST(6), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(6)));
|
|
client = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "client is not of type Client");
|
|
if(client == nullptr)
|
|
Perl_croak(aTHX_ "client is nullptr, avoiding crash.");
|
|
}
|
|
|
|
THIS->SendAppearanceEffect(parm1, parm2, parm3, parm4, parm5, client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_QuestReward); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_QuestReward)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 5)
|
|
Perl_croak(aTHX_ "Usage: Mob::QuestReward(THIS, client, silver, gold, platinum)");
|
|
{
|
|
Mob * THIS;
|
|
Client* client = nullptr;
|
|
int32 silver = 0;
|
|
int32 gold = 0;
|
|
int32 platinum = 0;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,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) {
|
|
if (sv_derived_from(ST(1), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(1)));
|
|
client = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "client is not of type Client");
|
|
if(client == nullptr)
|
|
Perl_croak(aTHX_ "client is nullptr, avoiding crash.");
|
|
}
|
|
if (items > 2) { silver = (int32)SvIV(ST(2)); }
|
|
if (items > 3) { gold = (int32)SvIV(ST(3)); }
|
|
if (items > 4) { platinum = (int32)SvIV(ST(4)); }
|
|
|
|
THIS->QuestReward(client, silver, gold, platinum);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetFlyMode); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetFlyMode)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetFlyMode(THIS, 0|1|2|3)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 flymode = (uint8)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetFlyMode(flymode);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetTexture); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetTexture)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetTexture(THIS, texture)");
|
|
{
|
|
Mob * THIS;
|
|
int32 texture = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendIllusionPacket(THIS->GetRace(), 0xFF, texture);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetRace); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetRace)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetRace(THIS, race)");
|
|
{
|
|
Mob * THIS;
|
|
int32 race = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendIllusionPacket(race);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetGender); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetGender)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetGender(THIS, gender)");
|
|
{
|
|
Mob * THIS;
|
|
int32 gender = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendIllusionPacket(THIS->GetRace(),gender);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SendIllusion); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SendIllusion)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 14)
|
|
Perl_croak(aTHX_ "Usage: Mob::SendIllusion(THIS,race,gender,texture,helmtexture,face,hairstyle,haircolor,beard,beardcolor,drakkin_heritage,drakkin_tattoo,drakkin_details,size)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 race = (uint16)SvIV(ST(1));
|
|
uint8 gender = 0xFF;
|
|
uint8 texture = 0xFF;
|
|
uint8 helmtexture = 0xFF;
|
|
uint8 face = 0xFF;
|
|
uint8 hairstyle = 0xFF;
|
|
uint8 haircolor = 0xFF;
|
|
uint8 beard = 0xFF;
|
|
uint8 beardcolor = 0xFF;
|
|
uint32 drakkin_heritage = 0xFFFFFFFF;
|
|
uint32 drakkin_tattoo = 0xFFFFFFFF;
|
|
uint32 drakkin_details = 0xFFFFFFFF;
|
|
float size = 0xFFFFFFFF;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if(items > 2) {gender = (uint8)SvIV(ST(2));}
|
|
if(items > 3) {texture = (uint8)SvIV(ST(3));}
|
|
if(items > 4) {helmtexture = (uint8)SvIV(ST(4));}
|
|
if(items > 5) {face = (uint8)SvIV(ST(5));}
|
|
if(items > 6) {hairstyle = (uint8)SvIV(ST(6));}
|
|
if(items > 7) {haircolor = (uint8)SvIV(ST(7));}
|
|
if(items > 8) {beard = (uint8)SvIV(ST(8));}
|
|
if(items > 9) {beardcolor = (uint8)SvIV(ST(9));}
|
|
if(items > 10) {drakkin_heritage = (uint32)SvIV(ST(10));}
|
|
if(items > 11) {drakkin_tattoo = (uint32)SvIV(ST(11));}
|
|
if(items > 12) {drakkin_details = (uint32)SvIV(ST(12));}
|
|
if(items > 13) {size = (float)SvNV(ST(13));}
|
|
|
|
THIS->SendIllusionPacket(race,gender,texture,helmtexture,haircolor,beardcolor,0xFF,0xFF,
|
|
hairstyle,face,beard,0xFF,drakkin_heritage,drakkin_tattoo,drakkin_details,size);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_CameraEffect); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_CameraEffect)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 5)
|
|
Perl_croak(aTHX_ "Usage: Mob::CameraEffect(THIS, duration, intensity, singleclient, global)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 duration = (uint32)SvUV(ST(1));
|
|
uint32 intensity = 0;
|
|
Client* client = nullptr;
|
|
bool global = false;
|
|
bool nullcli = false;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 2) { intensity = (uint32)SvUV(ST(2)); }
|
|
if (items > 3) {
|
|
if (sv_derived_from(ST(3), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(3)));
|
|
client = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
nullcli = true;
|
|
if(client == nullptr)
|
|
nullcli = true;
|
|
//Perl_croak(aTHX_ "client is nullptr, avoiding crash.");
|
|
}
|
|
if (items > 4) { global = (bool)SvTRUE(ST(4)); }
|
|
|
|
if(nullcli)
|
|
THIS->CameraEffect(duration, intensity, 0, global);
|
|
else
|
|
THIS->CameraEffect(duration, intensity, client, global);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SpellEffect); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SpellEffect)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 8)
|
|
Perl_croak(aTHX_ "Usage: Mob::SpellEffect(THIS, effect, [duration, finish_delay, zone_wide, unk20, perm_effect, client])");
|
|
{
|
|
Mob * THIS;
|
|
uint32 effect = (uint32)SvUV(ST(1));
|
|
uint32 duration = 5000;
|
|
uint32 finish_delay = 0;
|
|
bool zone_wide = true;
|
|
uint32 unk20 = 3000;
|
|
bool perm_effect = false;
|
|
Client* client = nullptr;
|
|
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 2) { duration = (uint32)SvUV(ST(2)); }
|
|
if (items > 3) { finish_delay = (uint32)SvUV(ST(3)); }
|
|
if (items > 4) { zone_wide = (bool)SvTRUE(ST(4)); }
|
|
if (items > 5) { unk20 = (uint32)SvUV(ST(5)); }
|
|
if (items > 6) { perm_effect = (bool)SvTRUE(ST(6)); }
|
|
if (items > 7) {
|
|
if (sv_derived_from(ST(7), "Client")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(7)));
|
|
client = INT2PTR(Client *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "client is not of type Client");
|
|
if(client == nullptr)
|
|
Perl_croak(aTHX_ "client is nullptr, avoiding crash.");
|
|
}
|
|
|
|
|
|
THIS->SendSpellEffect(effect, duration, finish_delay, zone_wide, unk20, perm_effect, client);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
|
|
XS(XS_Mob_TempName); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_TempName)
|
|
{
|
|
dXSARGS;
|
|
if (items < 1 || items > 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::TempName(THIS, name)");
|
|
{
|
|
Mob * THIS;
|
|
char * name = nullptr;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,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) { name = (char *)SvPV_nolen(ST(1)); }
|
|
|
|
THIS->TempName(name);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetItemStat); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetItemStat)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetItemStat(THIS, itemid, stat)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
uint32 itemid = (uint32)SvUV(ST(1));
|
|
Const_char * stat = (Const_char *)SvPV_nolen(ST(2));
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetItemStat(itemid, stat);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetGlobal);
|
|
XS(XS_Mob_SetGlobal)
|
|
{
|
|
dXSARGS;
|
|
if (items < 5 || items > 6)
|
|
Perl_croak(aTHX_ "Usage: SetGlobal(THIS, varname, newvalue, options, duration, other=nullptr)");
|
|
{
|
|
Mob * THIS;
|
|
char * varname = (char *)SvPV_nolen(ST(1));
|
|
char * newvalue = (char *)SvPV_nolen(ST(2));
|
|
int options = (int)SvIV(ST(3));
|
|
char * duration = (char *)SvPV_nolen(ST(4));
|
|
Mob * other = nullptr;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 5) {
|
|
if (sv_derived_from(ST(5), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(5)));
|
|
other = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(other == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
}
|
|
|
|
THIS->SetGlobal(varname, newvalue, options, duration, other);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_TarGlobal);
|
|
XS(XS_Mob_TarGlobal)
|
|
{
|
|
dXSARGS;
|
|
if (items != 7)
|
|
Perl_croak(aTHX_ "Usage: TarGlobal(THIS, varname, value, duration, npcid, charid, zoneid)");
|
|
{
|
|
Mob * THIS;
|
|
char * varname = (char *)SvPV_nolen(ST(1));
|
|
char * value = (char *)SvPV_nolen(ST(2));
|
|
char * duration = (char *)SvPV_nolen(ST(3));
|
|
int npcid = (int)SvIV(ST(4));
|
|
int charid = (int)SvIV(ST(5));
|
|
int zoneid = (int)SvIV(ST(6));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->TarGlobal(varname, value, duration, npcid, charid, zoneid);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_DelGlobal);
|
|
XS(XS_Mob_DelGlobal)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: DelGlobal(THIS, varname)");
|
|
{
|
|
Mob * THIS;
|
|
char * varname = (char *)SvPV_nolen(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->DelGlobal(varname);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetSlotTint); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetSlotTint)
|
|
{
|
|
dXSARGS;
|
|
if (items != 5)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetSlotTint(THIS, material_slot, red_tint, green_tint, blue_tint)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 material_slot = (uint8)SvIV(ST(1));
|
|
uint8 red_tint = (uint8)SvIV(ST(2));
|
|
uint8 green_tint = (uint8)SvIV(ST(3));
|
|
uint8 blue_tint = (uint8)SvIV(ST(4));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetSlotTint(material_slot, red_tint, green_tint, blue_tint);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_WearChange); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_WearChange)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::WearChange(THIS, material_slot, texture, color)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 material_slot = (uint8)SvIV(ST(1));
|
|
uint16 texture = (uint16)SvUV(ST(2));
|
|
uint32 color = 0;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if (items > 3) {
|
|
color = (uint32)SvUV(ST(3));
|
|
}
|
|
|
|
THIS->WearChange(material_slot, texture, color);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_DoKnockback); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DoKnockback)
|
|
{
|
|
dXSARGS;
|
|
if (items != 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::DoKnockback(THIS, caster, pushback, pushup)");
|
|
{
|
|
Mob * THIS;
|
|
Mob * caster;
|
|
uint32 pushback = (uint16)SvUV(ST(2));
|
|
uint32 pushup = (uint16)SvUV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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->DoKnockback(caster, pushback, pushup);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_RemoveNimbusEffect); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_RemoveNimbusEffect)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::RemoveNimbusEffect(THIS, effectid)");
|
|
{
|
|
Mob * THIS;
|
|
int32 effectid = (int32)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->RemoveNimbusEffect(effectid);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetRunning);
|
|
XS(XS_Mob_SetRunning)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetRunning(THIS, value)");
|
|
{
|
|
Mob * THIS;
|
|
bool value = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetRunning(value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_IsRunning); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsRunning)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob:::IsRunning(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsRunning();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetBodyType); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetBodyType)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetBodyType(THIS, type, overwrite_orig = false)");
|
|
{
|
|
Mob * THIS;
|
|
int32 type = (int32)SvIV(ST(1));
|
|
bool overwrite_orig = false;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
if(items == 3) {
|
|
overwrite_orig = (bool)SvTRUE(ST(2));
|
|
}
|
|
|
|
THIS->SetBodyType((bodyType)type, overwrite_orig);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetDeltas); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetDeltas)
|
|
{
|
|
dXSARGS;
|
|
if (items != 5)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetDeltas(THIS, delta_x, delta_y, delta_z, delta_h)");
|
|
{
|
|
Mob * THIS;
|
|
float delta_x = (float)SvNV(ST(1));
|
|
float delta_y = (float)SvNV(ST(2));
|
|
float delta_z = (float)SvNV(ST(3));
|
|
float delta_h = (float)SvNV(ST(4));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetDeltas(delta_x, delta_y, delta_z, delta_h);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetLD);
|
|
XS(XS_Mob_SetLD)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetLD(THIS, value)");
|
|
{
|
|
Mob * THIS;
|
|
bool value = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SendAppearancePacket(AT_Linkdead, value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetTargetDestSteps); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetTargetDestSteps)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetTargetDestSteps(THIS, target_steps)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 target_steps = (uint8)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetTargetDestSteps(target_steps);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetTargetable); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetTargetable)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetTargetable(THIS, on)");
|
|
{
|
|
Mob * THIS;
|
|
bool on = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetTargetable(on);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_ModSkillDmgTaken); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_ModSkillDmgTaken)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::ModSkillDmgTaken(THIS, skill, value)");
|
|
{
|
|
Mob * THIS;
|
|
SkillUseTypes skill_num = (SkillUseTypes)SvUV(ST(1));
|
|
int16 value = (int16)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->ModSkillDmgTaken(skill_num,value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetModSkillDmgTaken); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetModSkillDmgTaken)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetModSkillDmgTaken(THIS, skill_num)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 RETVAL;
|
|
dXSTARG;
|
|
SkillUseTypes skill_num = (SkillUseTypes)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetModSkillDmgTaken(skill_num);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_GetSkillDmgTaken); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetSkillDmgTaken)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetSkillDmgTaken(THIS, skill_num)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
SkillUseTypes skill_num = (SkillUseTypes)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetSkillDmgTaken(skill_num);
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetAllowBeneficial);
|
|
XS(XS_Mob_SetAllowBeneficial)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetAllowBeneficial(THIS, value)");
|
|
{
|
|
Mob * THIS;
|
|
bool value = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetAllowBeneficial(value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetAllowBeneficial); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetAllowBeneficial)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetAllowBeneficial(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetAllowBeneficial();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_IsBeneficialAllowed);
|
|
XS(XS_Mob_IsBeneficialAllowed)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsBeneficialAllowed(THIS, target)");
|
|
{
|
|
dXSTARG;
|
|
Mob * THIS;
|
|
Mob * target;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "target is not of type Mob");
|
|
if(target == nullptr)
|
|
Perl_croak(aTHX_ "target is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsBeneficialAllowed(target);
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_ModVulnerability); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_ModVulnerability)
|
|
{
|
|
dXSARGS;
|
|
if (items != 3)
|
|
Perl_croak(aTHX_ "Usage: Mob::ModVulnerability(THIS, resist, value)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 resist = (uint8)SvIV(ST(1));
|
|
int16 value = (int16)SvIV(ST(2));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->ModVulnerability(resist, value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetModVulnerability); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetModVulnerability)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetModVulnerability(THIS, resist)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
dXSTARG;
|
|
uint8 resist = (uint8)SvUV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetModVulnerability(resist);
|
|
XSprePUSH; PUSHi((IV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_DoMeleeSkillAttackDmg); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DoMeleeSkillAttackDmg)
|
|
{
|
|
dXSARGS;
|
|
if (items != 7)
|
|
Perl_croak(aTHX_ "Usage: Mob::DoMeleeSkillAttackDmg(THIS, target, weapon_damage, skill, chance_mod, focus, CanRiposte)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* target;
|
|
uint16 weapon_damage = (uint16)SvIV(ST(2));
|
|
SkillUseTypes skill = (SkillUseTypes)SvUV(ST(3));
|
|
int16 chance_mod = (int16)SvIV(ST(4));
|
|
int16 focus = (int16)SvIV(ST(5));
|
|
uint8 CanRiposte = (uint8)SvIV(ST(6));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "target is not of type Mob");
|
|
if(target == nullptr)
|
|
Perl_croak(aTHX_ "target is nullptr, avoiding crash.");
|
|
|
|
THIS->DoMeleeSkillAttackDmg(target, weapon_damage, skill, chance_mod, focus, CanRiposte);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_DoArcheryAttackDmg); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DoArcheryAttackDmg)
|
|
{
|
|
dXSARGS;
|
|
if (items != 7)
|
|
Perl_croak(aTHX_ "Usage: Mob::DoArcheryAttackDmg(THIS, target, RangeWeapon=nullptr, Ammo=nullptr, weapon_damage, chance_mod, focus)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* target;
|
|
ItemInst* RangeWeapon = nullptr;
|
|
ItemInst* Ammo = nullptr;
|
|
uint16 weapon_damage = (uint16)SvIV(ST(4));
|
|
int16 chance_mod = (int16)SvIV(ST(5));
|
|
int16 focus = (int16)SvIV(ST(6));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "target is not of type Mob");
|
|
if(target == nullptr)
|
|
Perl_croak(aTHX_ "target is nullptr, avoiding crash.");
|
|
|
|
THIS->DoArcheryAttackDmg(target, RangeWeapon, Ammo, weapon_damage, chance_mod, focus);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_DoThrowingAttackDmg); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_DoThrowingAttackDmg)
|
|
{
|
|
dXSARGS;
|
|
if (items != 7)
|
|
Perl_croak(aTHX_ "Usage: Mob::DoThrowingAttackDmg(THIS, target, RangeWeapon=nullptr,item=nullptr,weapon_damage, chance_mod, focus)");
|
|
{
|
|
Mob * THIS;
|
|
Mob* target;
|
|
ItemInst* RangeWeapon = nullptr;
|
|
Item_Struct* item = nullptr;
|
|
uint16 weapon_damage = (uint16)SvIV(ST(4));
|
|
int16 chance_mod = (int16)SvIV(ST(5));
|
|
int16 focus = (int16)SvIV(ST(6));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
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)));
|
|
target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "target is not of type Mob");
|
|
if(target == nullptr)
|
|
Perl_croak(aTHX_ "target is nullptr, avoiding crash.");
|
|
|
|
THIS->DoThrowingAttackDmg(target, RangeWeapon, item, weapon_damage, chance_mod, focus);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_SetDisableMelee);
|
|
XS(XS_Mob_SetDisableMelee)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetDisableMelee(THIS, value)");
|
|
{
|
|
Mob * THIS;
|
|
bool value = (bool)SvTRUE(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetDisableMelee(value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_IsMeleeDisabled); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_IsMeleeDisabled)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::IsMeleeDisabled(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
bool RETVAL;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->IsMeleeDisabled();
|
|
ST(0) = boolSV(RETVAL);
|
|
sv_2mortal(ST(0));
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
XS(XS_Mob_SetFlurryChance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_SetFlurryChance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 2)
|
|
Perl_croak(aTHX_ "Usage: Mob::SetFlurryChance(THIS, value)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 value = (uint8)SvIV(ST(1));
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
THIS->SetFlurryChance(value);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_GetFlurryChance); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetFlurryChance)
|
|
{
|
|
dXSARGS;
|
|
if (items != 1)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetFlurryChance(THIS)");
|
|
{
|
|
Mob * THIS;
|
|
uint8 RETVAL;
|
|
dXSTARG;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "THIS is not of type Mob");
|
|
if(THIS == nullptr)
|
|
Perl_croak(aTHX_ "THIS is nullptr, avoiding crash.");
|
|
|
|
RETVAL = THIS->GetFlurryChance();
|
|
XSprePUSH; PUSHu((UV)RETVAL);
|
|
}
|
|
XSRETURN(1);
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
#endif
|
|
XS(boot_Mob); /* prototype to pass -Wmissing-prototypes */
|
|
XS(boot_Mob)
|
|
{
|
|
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, "IsClient"), XS_Mob_IsClient, file, "$");
|
|
newXSproto(strcpy(buf, "IsNPC"), XS_Mob_IsNPC, file, "$");
|
|
newXSproto(strcpy(buf, "IsMob"), XS_Mob_IsMob, file, "$");
|
|
newXSproto(strcpy(buf, "IsCorpse"), XS_Mob_IsCorpse, file, "$");
|
|
newXSproto(strcpy(buf, "IsPlayerCorpse"), XS_Mob_IsPlayerCorpse, file, "$");
|
|
newXSproto(strcpy(buf, "IsNPCCorpse"), XS_Mob_IsNPCCorpse, file, "$");
|
|
newXSproto(strcpy(buf, "IsObject"), XS_Mob_IsObject, file, "$");
|
|
newXSproto(strcpy(buf, "IsDoor"), XS_Mob_IsDoor, file, "$");
|
|
newXSproto(strcpy(buf, "IsTrap"), XS_Mob_IsTrap, file, "$");
|
|
newXSproto(strcpy(buf, "IsBeacon"), XS_Mob_IsBeacon, file, "$");
|
|
newXSproto(strcpy(buf, "CastToClient"), XS_Mob_CastToClient, file, "$");
|
|
newXSproto(strcpy(buf, "CastToNPC"), XS_Mob_CastToNPC, file, "$");
|
|
newXSproto(strcpy(buf, "CastToMob"), XS_Mob_CastToMob, file, "$");
|
|
newXSproto(strcpy(buf, "CastToCorpse"), XS_Mob_CastToCorpse, file, "$");
|
|
newXSproto(strcpy(buf, "GetID"), XS_Mob_GetID, file, "$");
|
|
newXSproto(strcpy(buf, "GetName"), XS_Mob_GetName, file, "$");
|
|
newXSproto(strcpy(buf, "Depop"), XS_Mob_Depop, file, "$;$");
|
|
newXSproto(strcpy(buf, "RogueAssassinate"), XS_Mob_RogueAssassinate, file, "$$");
|
|
newXSproto(strcpy(buf, "BehindMob"), XS_Mob_BehindMob, file, "$;$$$");
|
|
newXSproto(strcpy(buf, "SetLevel"), XS_Mob_SetLevel, file, "$$;$");
|
|
newXSproto(strcpy(buf, "GetSkill"), XS_Mob_GetSkill, file, "$$");
|
|
newXSproto(strcpy(buf, "SendWearChange"), XS_Mob_SendWearChange, file, "$$");
|
|
newXSproto(strcpy(buf, "GetEquipment"), XS_Mob_GetEquipment, file, "$$");
|
|
newXSproto(strcpy(buf, "GetEquipmentMaterial"), XS_Mob_GetEquipmentMaterial, file, "$$");
|
|
newXSproto(strcpy(buf, "GetEquipmentColor"), XS_Mob_GetEquipmentColor, file, "$$");
|
|
newXSproto(strcpy(buf, "GetArmorTint"), XS_Mob_GetArmorTint, file, "$$");
|
|
newXSproto(strcpy(buf, "IsMoving"), XS_Mob_IsMoving, file, "$");
|
|
newXSproto(strcpy(buf, "GoToBind"), XS_Mob_GoToBind, file, "$");
|
|
newXSproto(strcpy(buf, "Gate"), XS_Mob_Gate, file, "$");
|
|
newXSproto(strcpy(buf, "Attack"), XS_Mob_Attack, file, "$$;$$");
|
|
newXSproto(strcpy(buf, "Damage"), XS_Mob_Damage, file, "$$$$$;$$$");
|
|
newXSproto(strcpy(buf, "RangedAttack"), XS_Mob_RangedAttack, file, "$$");
|
|
newXSproto(strcpy(buf, "ThrowingAttack"), XS_Mob_ThrowingAttack, file, "$$");
|
|
newXSproto(strcpy(buf, "Heal"), XS_Mob_Heal, file, "$");
|
|
newXSproto(strcpy(buf, "HealDamage"), XS_Mob_HealDamage, file, "$$;$");
|
|
newXSproto(strcpy(buf, "SetMaxHP"), XS_Mob_SetMaxHP, file, "$");
|
|
newXSproto(strcpy(buf, "GetLevelCon"), XS_Mob_GetLevelCon, file, "$$");
|
|
newXSproto(strcpy(buf, "SetHP"), XS_Mob_SetHP, file, "$$");
|
|
newXSproto(strcpy(buf, "DoAnim"), XS_Mob_DoAnim, file, "$$;$");
|
|
newXSproto(strcpy(buf, "ChangeSize"), XS_Mob_ChangeSize, file, "$$;$");
|
|
newXSproto(strcpy(buf, "GMMove"), XS_Mob_GMMove, file, "$$$$;$");
|
|
newXSproto(strcpy(buf, "SendPosUpdate"), XS_Mob_SendPosUpdate, file, "$;$");
|
|
newXSproto(strcpy(buf, "SendPosition"), XS_Mob_SendPosition, file, "$");
|
|
newXSproto(strcpy(buf, "HasProcs"), XS_Mob_HasProcs, file, "$");
|
|
newXSproto(strcpy(buf, "IsInvisible"), XS_Mob_IsInvisible, file, "$;$");
|
|
newXSproto(strcpy(buf, "SetInvisible"), XS_Mob_SetInvisible, file, "$$");
|
|
newXSproto(strcpy(buf, "FindBuff"), XS_Mob_FindBuff, file, "$$");
|
|
newXSproto(strcpy(buf, "FindType"), XS_Mob_FindType, file, "$$;$$");
|
|
newXSproto(strcpy(buf, "GetBuffSlotFromType"), XS_Mob_GetBuffSlotFromType, file, "$$");
|
|
newXSproto(strcpy(buf, "MakePet"), XS_Mob_MakePet, file, "$$$;$");
|
|
newXSproto(strcpy(buf, "GetBaseRace"), XS_Mob_GetBaseRace, file, "$");
|
|
newXSproto(strcpy(buf, "GetBaseGender"), XS_Mob_GetBaseGender, file, "$");
|
|
newXSproto(strcpy(buf, "GetDeity"), XS_Mob_GetDeity, file, "$");
|
|
newXSproto(strcpy(buf, "GetRace"), XS_Mob_GetRace, file, "$");
|
|
newXSproto(strcpy(buf, "GetGender"), XS_Mob_GetGender, file, "$");
|
|
newXSproto(strcpy(buf, "GetTexture"), XS_Mob_GetTexture, file, "$");
|
|
newXSproto(strcpy(buf, "GetHelmTexture"), XS_Mob_GetHelmTexture, file, "$");
|
|
newXSproto(strcpy(buf, "GetHairColor"), XS_Mob_GetHairColor, file, "$");
|
|
newXSproto(strcpy(buf, "GetBeardColor"), XS_Mob_GetBeardColor, file, "$");
|
|
newXSproto(strcpy(buf, "GetEyeColor1"), XS_Mob_GetEyeColor1, file, "$");
|
|
newXSproto(strcpy(buf, "GetEyeColor2"), XS_Mob_GetEyeColor2, file, "$");
|
|
newXSproto(strcpy(buf, "GetHairStyle"), XS_Mob_GetHairStyle, file, "$");
|
|
newXSproto(strcpy(buf, "GetLuclinFace"), XS_Mob_GetLuclinFace, file, "$");
|
|
newXSproto(strcpy(buf, "GetBeard"), XS_Mob_GetBeard, file, "$");
|
|
newXSproto(strcpy(buf, "GetDrakkinHeritage"), XS_Mob_GetDrakkinHeritage, file, "$");
|
|
newXSproto(strcpy(buf, "GetDrakkinTattoo"), XS_Mob_GetDrakkinTattoo, file, "$");
|
|
newXSproto(strcpy(buf, "GetDrakkinDetails"), XS_Mob_GetDrakkinDetails, file, "$");
|
|
newXSproto(strcpy(buf, "GetClass"), XS_Mob_GetClass, file, "$");
|
|
newXSproto(strcpy(buf, "GetLevel"), XS_Mob_GetLevel, file, "$");
|
|
newXSproto(strcpy(buf, "GetCleanName"), XS_Mob_GetCleanName, file, "$");
|
|
newXSproto(strcpy(buf, "GetTarget"), XS_Mob_GetTarget, file, "$");
|
|
newXSproto(strcpy(buf, "SetTarget"), XS_Mob_SetTarget, file, "$$");
|
|
newXSproto(strcpy(buf, "GetHPRatio"), XS_Mob_GetHPRatio, file, "$");
|
|
newXSproto(strcpy(buf, "IsWarriorClass"), XS_Mob_IsWarriorClass, file, "$");
|
|
newXSproto(strcpy(buf, "GetHP"), XS_Mob_GetHP, file, "$");
|
|
newXSproto(strcpy(buf, "GetMaxHP"), XS_Mob_GetMaxHP, file, "$");
|
|
newXSproto(strcpy(buf, "GetItemHPBonuses"), XS_Mob_GetItemHPBonuses, file, "$");
|
|
newXSproto(strcpy(buf, "GetSpellHPBonuses"), XS_Mob_GetSpellHPBonuses, file, "$");
|
|
newXSproto(strcpy(buf, "GetWalkspeed"), XS_Mob_GetWalkspeed, file, "$");
|
|
newXSproto(strcpy(buf, "GetRunspeed"), XS_Mob_GetRunspeed, file, "$");
|
|
newXSproto(strcpy(buf, "GetCasterLevel"), XS_Mob_GetCasterLevel, file, "$$");
|
|
newXSproto(strcpy(buf, "GetMaxMana"), XS_Mob_GetMaxMana, file, "$");
|
|
newXSproto(strcpy(buf, "GetMana"), XS_Mob_GetMana, file, "$");
|
|
newXSproto(strcpy(buf, "SetMana"), XS_Mob_SetMana, file, "$$");
|
|
newXSproto(strcpy(buf, "GetManaRatio"), XS_Mob_GetManaRatio, file, "$");
|
|
newXSproto(strcpy(buf, "GetAC"), XS_Mob_GetAC, file, "$");
|
|
newXSproto(strcpy(buf, "GetATK"), XS_Mob_GetATK, file, "$");
|
|
newXSproto(strcpy(buf, "GetSTR"), XS_Mob_GetSTR, file, "$");
|
|
newXSproto(strcpy(buf, "GetSTA"), XS_Mob_GetSTA, file, "$");
|
|
newXSproto(strcpy(buf, "GetDEX"), XS_Mob_GetDEX, file, "$");
|
|
newXSproto(strcpy(buf, "GetAGI"), XS_Mob_GetAGI, file, "$");
|
|
newXSproto(strcpy(buf, "GetINT"), XS_Mob_GetINT, file, "$");
|
|
newXSproto(strcpy(buf, "GetWIS"), XS_Mob_GetWIS, file, "$");
|
|
newXSproto(strcpy(buf, "GetCHA"), XS_Mob_GetCHA, file, "$");
|
|
newXSproto(strcpy(buf, "GetMR"), XS_Mob_GetMR, file, "$");
|
|
newXSproto(strcpy(buf, "GetFR"), XS_Mob_GetFR, file, "$");
|
|
newXSproto(strcpy(buf, "GetDR"), XS_Mob_GetDR, file, "$");
|
|
newXSproto(strcpy(buf, "GetPR"), XS_Mob_GetPR, file, "$");
|
|
newXSproto(strcpy(buf, "GetCR"), XS_Mob_GetCR, file, "$");
|
|
newXSproto(strcpy(buf, "GetCorruption"), XS_Mob_GetCR, file, "$");
|
|
newXSproto(strcpy(buf, "GetMaxSTR"), XS_Mob_GetMaxSTR, file, "$");
|
|
newXSproto(strcpy(buf, "GetMaxSTA"), XS_Mob_GetMaxSTA, file, "$");
|
|
newXSproto(strcpy(buf, "GetMaxDEX"), XS_Mob_GetMaxDEX, file, "$");
|
|
newXSproto(strcpy(buf, "GetMaxAGI"), XS_Mob_GetMaxAGI, file, "$");
|
|
newXSproto(strcpy(buf, "GetMaxINT"), XS_Mob_GetMaxINT, file, "$");
|
|
newXSproto(strcpy(buf, "GetMaxWIS"), XS_Mob_GetMaxWIS, file, "$");
|
|
newXSproto(strcpy(buf, "GetMaxCHA"), XS_Mob_GetMaxCHA, file, "$");
|
|
newXSproto(strcpy(buf, "GetActSpellRange"), XS_Mob_GetActSpellRange, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetActSpellDamage"), XS_Mob_GetActSpellDamage, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetActSpellHealing"), XS_Mob_GetActSpellHealing, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetActSpellCost"), XS_Mob_GetActSpellCost, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetActSpellDuration"), XS_Mob_GetActSpellDuration, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetActSpellCasttime"), XS_Mob_GetActSpellCasttime, file, "$$$");
|
|
newXSproto(strcpy(buf, "ResistSpell"), XS_Mob_ResistSpell, file, "$$$$");
|
|
newXSproto(strcpy(buf, "GetSpecializeSkillValue"), XS_Mob_GetSpecializeSkillValue, file, "$$");
|
|
newXSproto(strcpy(buf, "GetNPCTypeID"), XS_Mob_GetNPCTypeID, file, "$");
|
|
newXSproto(strcpy(buf, "IsTargeted"), XS_Mob_IsTargeted, file, "$");
|
|
newXSproto(strcpy(buf, "GetX"), XS_Mob_GetX, file, "$");
|
|
newXSproto(strcpy(buf, "GetY"), XS_Mob_GetY, file, "$");
|
|
newXSproto(strcpy(buf, "GetZ"), XS_Mob_GetZ, file, "$");
|
|
newXSproto(strcpy(buf, "GetHeading"), XS_Mob_GetHeading, file, "$");
|
|
newXSproto(strcpy(buf, "GetWaypointX"), XS_Mob_GetWaypointX, file, "$");
|
|
newXSproto(strcpy(buf, "GetWaypointY"), XS_Mob_GetWaypointY, file, "$");
|
|
newXSproto(strcpy(buf, "GetWaypointZ"), XS_Mob_GetWaypointZ, file, "$");
|
|
newXSproto(strcpy(buf, "GetWaypointH"), XS_Mob_GetWaypointH, file, "$");
|
|
newXSproto(strcpy(buf, "GetWaypointPause"), XS_Mob_GetWaypointPause, file, "$");
|
|
newXSproto(strcpy(buf, "GetWaypointID"), XS_Mob_GetWaypointID, file, "$");
|
|
newXSproto(strcpy(buf, "SetCurrentWP"), XS_Mob_SetCurrentWP, file, "$$");
|
|
newXSproto(strcpy(buf, "GetSize"), XS_Mob_GetSize, file, "$");
|
|
newXSproto(strcpy(buf, "SetFollowID"), XS_Mob_SetFollowID, file, "$$");
|
|
newXSproto(strcpy(buf, "GetFollowID"), XS_Mob_GetFollowID, file, "$");
|
|
newXSproto(strcpy(buf, "Message"), XS_Mob_Message, file, "$$$;@");
|
|
newXSproto(strcpy(buf, "Message_StringID"), XS_Mob_Message_StringID, file, "$$$;$");
|
|
newXSproto(strcpy(buf, "Say"), XS_Mob_Say, file, "$$;@");
|
|
newXSproto(strcpy(buf, "Shout"), XS_Mob_Shout, file, "$$;@");
|
|
newXSproto(strcpy(buf, "Emote"), XS_Mob_Emote, file, "$$;@");
|
|
newXSproto(strcpy(buf, "InterruptSpell"), XS_Mob_InterruptSpell, file, "$;$");
|
|
newXSproto(strcpy(buf, "CastSpell"), XS_Mob_CastSpell, file, "$$$;$$$");
|
|
newXSproto(strcpy(buf, "SpellFinished"), XS_Mob_SpellFinished, file, "$$;$$");
|
|
newXSproto(strcpy(buf, "IsImmuneToSpell"), XS_Mob_IsImmuneToSpell, file, "$$$");
|
|
newXSproto(strcpy(buf, "BuffFadeBySpellID"), XS_Mob_BuffFadeBySpellID, file, "$$");
|
|
newXSproto(strcpy(buf, "BuffFadeByEffect"), XS_Mob_BuffFadeByEffect, file, "$$;$");
|
|
newXSproto(strcpy(buf, "BuffFadeAll"), XS_Mob_BuffFadeAll, file, "$");
|
|
newXSproto(strcpy(buf, "BuffFadeBySlot"), XS_Mob_BuffFadeBySlot, file, "$$;$");
|
|
newXSproto(strcpy(buf, "CanBuffStack"), XS_Mob_CanBuffStack, file, "$$$;$");
|
|
newXSproto(strcpy(buf, "IsCasting"), XS_Mob_IsCasting, file, "$");
|
|
newXSproto(strcpy(buf, "CastingSpellID"), XS_Mob_CastingSpellID, file, "$");
|
|
newXSproto(strcpy(buf, "SetAppearance"), XS_Mob_SetAppearance, file, "$$;$");
|
|
newXSproto(strcpy(buf, "GetAppearance"), XS_Mob_GetAppearance, file, "$");
|
|
newXSproto(strcpy(buf, "GetRunAnimSpeed"), XS_Mob_GetRunAnimSpeed, file, "$");
|
|
newXSproto(strcpy(buf, "SetRunAnimSpeed"), XS_Mob_SetRunAnimSpeed, file, "$$");
|
|
newXSproto(strcpy(buf, "SetPetID"), XS_Mob_SetPetID, file, "$$");
|
|
newXSproto(strcpy(buf, "GetPetID"), XS_Mob_GetPetID, file, "$");
|
|
newXSproto(strcpy(buf, "SetOwnerID"), XS_Mob_SetOwnerID, file, "$$");
|
|
newXSproto(strcpy(buf, "GetOwnerID"), XS_Mob_GetOwnerID, file, "$");
|
|
newXSproto(strcpy(buf, "GetPetType"), XS_Mob_GetPetType, file, "$");
|
|
newXSproto(strcpy(buf, "GetBodyType"), XS_Mob_GetBodyType, file, "$");
|
|
newXSproto(strcpy(buf, "Stun"), XS_Mob_Stun, file, "$$");
|
|
newXSproto(strcpy(buf, "Spin"), XS_Mob_Spin, file, "$");
|
|
newXSproto(strcpy(buf, "Kill"), XS_Mob_Kill, file, "$");
|
|
newXSproto(strcpy(buf, "SetInvul"), XS_Mob_SetInvul, file, "$$");
|
|
newXSproto(strcpy(buf, "GetInvul"), XS_Mob_GetInvul, file, "$");
|
|
newXSproto(strcpy(buf, "SetExtraHaste"), XS_Mob_SetExtraHaste, file, "$$");
|
|
newXSproto(strcpy(buf, "GetHaste"), XS_Mob_GetHaste, file, "$");
|
|
newXSproto(strcpy(buf, "GetMonkHandToHandDamage"), XS_Mob_GetMonkHandToHandDamage, file, "$");
|
|
newXSproto(strcpy(buf, "CanThisClassDoubleAttack"), XS_Mob_CanThisClassDoubleAttack, file, "$");
|
|
newXSproto(strcpy(buf, "CanThisClassDualWield"), XS_Mob_CanThisClassDualWield, file, "$");
|
|
newXSproto(strcpy(buf, "CanThisClassRiposte"), XS_Mob_CanThisClassRiposte, file, "$");
|
|
newXSproto(strcpy(buf, "CanThisClassDodge"), XS_Mob_CanThisClassDodge, file, "$");
|
|
newXSproto(strcpy(buf, "CanThisClassParry"), XS_Mob_CanThisClassParry, file, "$");
|
|
newXSproto(strcpy(buf, "GetMonkHandToHandDelay"), XS_Mob_GetMonkHandToHandDelay, file, "$");
|
|
newXSproto(strcpy(buf, "GetClassLevelFactor"), XS_Mob_GetClassLevelFactor, file, "$");
|
|
newXSproto(strcpy(buf, "Mesmerize"), XS_Mob_Mesmerize, file, "$");
|
|
newXSproto(strcpy(buf, "IsMezzed"), XS_Mob_IsMezzed, file, "$");
|
|
newXSproto(strcpy(buf, "IsStunned"), XS_Mob_IsStunned, file, "$");
|
|
newXSproto(strcpy(buf, "StartEnrage"), XS_Mob_StartEnrage, file, "$");
|
|
newXSproto(strcpy(buf, "IsEnraged"), XS_Mob_IsEnraged, file, "$");
|
|
newXSproto(strcpy(buf, "GetReverseFactionCon"), XS_Mob_GetReverseFactionCon, file, "$$");
|
|
newXSproto(strcpy(buf, "IsAIControlled"), XS_Mob_IsAIControlled, file, "$");
|
|
newXSproto(strcpy(buf, "GetAggroRange"), XS_Mob_GetAggroRange, file, "$");
|
|
newXSproto(strcpy(buf, "GetAssistRange"), XS_Mob_GetAssistRange, file, "$");
|
|
newXSproto(strcpy(buf, "SetPetOrder"), XS_Mob_SetPetOrder, file, "$$");
|
|
newXSproto(strcpy(buf, "GetPetOrder"), XS_Mob_GetPetOrder, file, "$");
|
|
newXSproto(strcpy(buf, "IsRoamer"), XS_Mob_IsRoamer, file, "$");
|
|
newXSproto(strcpy(buf, "IsRooted"), XS_Mob_IsRooted, file, "$");
|
|
newXSproto(strcpy(buf, "AddToHateList"), XS_Mob_AddToHateList, file, "$$;$$$$$");
|
|
newXSproto(strcpy(buf, "SetHate"), XS_Mob_SetHate, file, "$$;$$");
|
|
newXSproto(strcpy(buf, "HalveAggro"), XS_Mob_HalveAggro, file, "$$");
|
|
newXSproto(strcpy(buf, "DoubleAggro"), XS_Mob_DoubleAggro, file, "$$");
|
|
newXSproto(strcpy(buf, "GetHateAmount"), XS_Mob_GetHateAmount, file, "$$;$");
|
|
newXSproto(strcpy(buf, "GetDamageAmount"), XS_Mob_GetDamageAmount, file, "$$");
|
|
newXSproto(strcpy(buf, "GetHateTop"), XS_Mob_GetHateTop, file, "$");
|
|
newXSproto(strcpy(buf, "GetHateDamageTop"), XS_Mob_GetHateDamageTop, file, "$$");
|
|
newXSproto(strcpy(buf, "GetHateRandom"), XS_Mob_GetHateRandom, file, "$");
|
|
newXSproto(strcpy(buf, "IsEngaged"), XS_Mob_IsEngaged, file, "$");
|
|
newXSproto(strcpy(buf, "HateSummon"), XS_Mob_HateSummon, file, "$");
|
|
newXSproto(strcpy(buf, "FaceTarget"), XS_Mob_FaceTarget, file, "$;$$");
|
|
newXSproto(strcpy(buf, "SetHeading"), XS_Mob_SetHeading, file, "$$");
|
|
newXSproto(strcpy(buf, "WipeHateList"), XS_Mob_WipeHateList, file, "$");
|
|
newXSproto(strcpy(buf, "CheckAggro"), XS_Mob_CheckAggro, file, "$$");
|
|
newXSproto(strcpy(buf, "CalculateHeadingToTarget"), XS_Mob_CalculateHeadingToTarget, file, "$$$");
|
|
newXSproto(strcpy(buf, "CalculateNewPosition"), XS_Mob_CalculateNewPosition, file, "$$$$$;$");
|
|
newXSproto(strcpy(buf, "CalculateNewPosition2"), XS_Mob_CalculateNewPosition2, file, "$$$$$;$");
|
|
newXSproto(strcpy(buf, "CalculateDistance"), XS_Mob_CalculateDistance, file, "$$$$");
|
|
newXSproto(strcpy(buf, "SendTo"), XS_Mob_SendTo, file, "$$$$");
|
|
newXSproto(strcpy(buf, "SendToFixZ"), XS_Mob_SendToFixZ, file, "$$$$");
|
|
newXSproto(strcpy(buf, "NPCSpecialAttacks"), XS_Mob_NPCSpecialAttacks, file, "$$$;$$");
|
|
newXSproto(strcpy(buf, "DontHealMeBefore"), XS_Mob_DontHealMeBefore, file, "$");
|
|
newXSproto(strcpy(buf, "DontBuffMeBefore"), XS_Mob_DontBuffMeBefore, file, "$");
|
|
newXSproto(strcpy(buf, "DontDotMeBefore"), XS_Mob_DontDotMeBefore, file, "$");
|
|
newXSproto(strcpy(buf, "DontRootMeBefore"), XS_Mob_DontRootMeBefore, file, "$");
|
|
newXSproto(strcpy(buf, "DontSnareMeBefore"), XS_Mob_DontSnareMeBefore, file, "$");
|
|
newXSproto(strcpy(buf, "GetResist"), XS_Mob_GetResist, file, "$$");
|
|
newXSproto(strcpy(buf, "GetShieldTarget"), XS_Mob_GetShieldTarget, file, "$");
|
|
newXSproto(strcpy(buf, "SetShieldTarget"), XS_Mob_SetShieldTarget, file, "$$");
|
|
newXSproto(strcpy(buf, "Charmed"), XS_Mob_Charmed, file, "$");
|
|
newXSproto(strcpy(buf, "GetLevelHP"), XS_Mob_GetLevelHP, file, "$$");
|
|
newXSproto(strcpy(buf, "GetZoneID"), XS_Mob_GetZoneID, file, "$");
|
|
newXSproto(strcpy(buf, "CheckAggroAmount"), XS_Mob_CheckAggroAmount, file, "$$");
|
|
newXSproto(strcpy(buf, "CheckHealAggroAmount"), XS_Mob_CheckHealAggroAmount, file, "$$");
|
|
newXSproto(strcpy(buf, "GetAA"), XS_Mob_GetAA, file, "$$");
|
|
newXSproto(strcpy(buf, "DivineAura"), XS_Mob_DivineAura, file, "$");
|
|
newXSproto(strcpy(buf, "AddFeignMemory"), XS_Mob_AddFeignMemory, file, "$$");
|
|
newXSproto(strcpy(buf, "RemoveFromFeignMemory"), XS_Mob_RemoveFromFeignMemory, file, "$$");
|
|
newXSproto(strcpy(buf, "ClearFeignMemory"), XS_Mob_ClearFeignMemory, file, "$");
|
|
newXSproto(strcpy(buf, "SetOOCRegen"), XS_Mob_SetOOCRegen, file, "$$");
|
|
newXSproto(strcpy(buf, "GetEntityVariable"), XS_Mob_GetEntityVariable, file, "$$");
|
|
newXSproto(strcpy(buf, "SetEntityVariable"), XS_Mob_SetEntityVariable, file, "$$$");
|
|
newXSproto(strcpy(buf, "EntityVariableExists"), XS_Mob_EntityVariableExists, file, "$$");
|
|
newXSproto(strcpy(buf, "GetHateList"), XS_Mob_GetHateList, file, "$");
|
|
newXSproto(strcpy(buf, "SignalClient"), XS_Mob_SignalClient, file, "$$$");
|
|
newXSproto(strcpy(buf, "CombatRange"), XS_Mob_CombatRange, file, "$$");
|
|
newXSproto(strcpy(buf, "DoSpecialAttackDamage"), XS_Mob_DoSpecialAttackDamage, file, "$$$$;$$");
|
|
newXSproto(strcpy(buf, "CheckLoS"), XS_Mob_CheckLoS, file, "$$");
|
|
newXSproto(strcpy(buf, "CheckLoSToLoc"), XS_Mob_CheckLoSToLoc, file, "$$$$;$");
|
|
newXSproto(strcpy(buf, "FindGroundZ"), XS_Mob_FindGroundZ, file, "$$$;$");
|
|
newXSproto(strcpy(buf, "ProjectileAnim"), XS_Mob_ProjectileAnim, file, "$$$;$$$$$");
|
|
newXSproto(strcpy(buf, "HasNPCSpecialAtk"), XS_Mob_HasNPCSpecialAtk, file, "$$");
|
|
newXSproto(strcpy(buf, "SendAppearanceEffect"), XS_Mob_SendAppearanceEffect, file, "$$;$$$$");
|
|
newXSproto(strcpy(buf, "SetFlyMode"), XS_Mob_SetFlyMode, file, "$$");
|
|
newXSproto(strcpy(buf, "SetTexture"), XS_Mob_SetTexture, file, "$$");
|
|
newXSproto(strcpy(buf, "SetRace"), XS_Mob_SetRace, file, "$$");
|
|
newXSproto(strcpy(buf, "SetGender"), XS_Mob_SetGender, file, "$$");
|
|
newXSproto(strcpy(buf, "SendIllusion"), XS_Mob_SendIllusion, file, "$$;$$$$$$$$$$$$");
|
|
newXSproto(strcpy(buf, "MakeTempPet"), XS_Mob_MakeTempPet, file, "$$;$$$");
|
|
newXSproto(strcpy(buf, "QuestReward"), XS_Mob_QuestReward, file, "$$;$$$");
|
|
newXSproto(strcpy(buf, "CameraEffect"), XS_Mob_CameraEffect, file, "$$;$$$");
|
|
newXSproto(strcpy(buf, "SpellEffect"), XS_Mob_SpellEffect, file, "$$;$$$$$$");
|
|
newXSproto(strcpy(buf, "TempName"), XS_Mob_TempName, file, "$:$");
|
|
newXSproto(strcpy(buf, "GetItemStat"), XS_Mob_GetItemStat, file, "$$$");
|
|
newXSproto(strcpy(buf, "SetGlobal"), XS_Mob_SetGlobal, file, "$$$$$;$");
|
|
newXSproto(strcpy(buf, "TarGlobal"), XS_Mob_TarGlobal, file, "$$$$$$$");
|
|
newXSproto(strcpy(buf, "DelGlobal"), XS_Mob_DelGlobal, file, "$$");
|
|
newXSproto(strcpy(buf, "SetSlotTint"), XS_Mob_SetSlotTint, file, "$$$$$");
|
|
newXSproto(strcpy(buf, "WearChange"), XS_Mob_WearChange, file, "$$$;$");
|
|
newXSproto(strcpy(buf, "DoKnockback"), XS_Mob_DoKnockback, file, "$$$$");
|
|
newXSproto(strcpy(buf, "RemoveNimbusEffect"), XS_Mob_RemoveNimbusEffect, file, "$$");
|
|
newXSproto(strcpy(buf, "IsRunning"), XS_Mob_IsRunning, file, "$");
|
|
newXSproto(strcpy(buf, "SetRunning"), XS_Mob_SetRunning, file, "$$");
|
|
newXSproto(strcpy(buf, "SetBodyType"), XS_Mob_SetBodyType, file, "$$;$");
|
|
newXSproto(strcpy(buf, "SetDeltas"), XS_Mob_SetDeltas, file, "$$$$$");
|
|
newXSproto(strcpy(buf, "SetLD"), XS_Mob_SetLD, file, "$$");
|
|
newXSproto(strcpy(buf, "SetTargetDestSteps"), XS_Mob_SetTargetDestSteps, file, "$$");
|
|
newXSproto(strcpy(buf, "SetTargetable"), XS_Mob_SetTargetable, file, "$$");
|
|
newXSproto(strcpy(buf, "MakeTempPet"), XS_Mob_MakeTempPet, file, "$$;$$$$");
|
|
newXSproto(strcpy(buf, "ModSkillDmgTaken"), XS_Mob_ModSkillDmgTaken, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetModSkillDmgTaken"), XS_Mob_GetModSkillDmgTaken, file, "$$");
|
|
newXSproto(strcpy(buf, "GetSkillDmgTaken"), XS_Mob_GetSkillDmgTaken, file, "$$");
|
|
newXSproto(strcpy(buf, "SetAllowBeneficial"), XS_Mob_SetAllowBeneficial, file, "$$");
|
|
newXSproto(strcpy(buf, "GetAllowBeneficial"), XS_Mob_GetAllowBeneficial, file, "$$");
|
|
newXSproto(strcpy(buf, "IsBeneficialAllowed"), XS_Mob_IsBeneficialAllowed, file, "$$");
|
|
newXSproto(strcpy(buf, "ModVulnerability"), XS_Mob_ModVulnerability, file, "$$$");
|
|
newXSproto(strcpy(buf, "GetModVulnerability"), XS_Mob_GetModVulnerability, file, "$$");
|
|
newXSproto(strcpy(buf, "DoMeleeSkillAttackDmg"), XS_Mob_DoMeleeSkillAttackDmg, file, "$$$$$$$");
|
|
newXSproto(strcpy(buf, "DoArcheryAttackDmg"), XS_Mob_DoArcheryAttackDmg, file, "$$$$$$$");
|
|
newXSproto(strcpy(buf, "DoThrowingAttackDmg"), XS_Mob_DoThrowingAttackDmg, file, "$$$$$$$");
|
|
newXSproto(strcpy(buf, "SetDisableMelee"), XS_Mob_SetDisableMelee, file, "$$");
|
|
newXSproto(strcpy(buf, "IsMeleeDisabled"), XS_Mob_IsMeleeDisabled, file, "$$");
|
|
newXSproto(strcpy(buf, "SetFlurryChance"), XS_Mob_SetFlurryChance, file, "$$");
|
|
newXSproto(strcpy(buf, "GetFlurryChance"), XS_Mob_GetFlurryChance, file, "$");
|
|
|
|
XSRETURN_YES;
|
|
}
|
|
|
|
#endif //EMBPERL_XS_CLASSES
|