mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
*OLD AI: Swarm pet would lock on to target until target died, then depop as soon as target died. *NEW AI: Swarm pet will attack cast on target, NOT perma locked it can change targets if attacked by something else that generate more hate. When target dies swarm pet will follow owner, if owner is attacked by something else the swarm pet will attack it (until duration timer despawns the pet). Updated perl quest function: MakeTempPet(Tspell_id, name=nullptr, duration=0, target=nullptr, sticktarg=0) Implemented perl quest function: Mob::TypesTempPet(npctypesid, name=nullptr, duration=0, follow=0, target=nullptr, sticktarg=0) Note: 'sticktarg' field will cause the swarm pet to use the OLD AI Rule to use OLD AI only - default is disabled. Optional SQL: utils/sql/git/optional/2014_11_15_SwarmPetTargetLock.sql
8494 lines
201 KiB
C++
8494 lines
201 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 > 6)
|
|
Perl_croak(aTHX_ "Usage: Mob::MakeTempPet(THIS, spell_id, name=nullptr, duration=0, target=nullptr, sticktarg=0)");
|
|
{
|
|
Mob * THIS;
|
|
uint16 spell_id = (uint16)SvUV(ST(1));
|
|
char * name;
|
|
uint32 duration;
|
|
Mob * target;
|
|
bool sticktarg;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = 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");
|
|
|
|
if (items < 6)
|
|
sticktarg = false;
|
|
else {
|
|
sticktarg = (bool)SvTRUE(ST(5));
|
|
}
|
|
|
|
THIS->TemporaryPets(spell_id, target, name, duration, true, sticktarg);
|
|
}
|
|
XSRETURN_EMPTY;
|
|
}
|
|
|
|
XS(XS_Mob_TypesTempPet); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_TypesTempPet)
|
|
{
|
|
dXSARGS;
|
|
if (items < 2 || items > 7)
|
|
Perl_croak(aTHX_ "Usage: Mob::TypesTempPet(THIS, typesid, name=nullptr, duration=0, follow=0, sticktarg=0, target=nullptr)");
|
|
{
|
|
Mob * THIS;
|
|
uint32 typesid = (uint32)SvUV(ST(1));
|
|
char * name;
|
|
uint32 duration;
|
|
bool follow;
|
|
Mob * target;
|
|
bool sticktarg;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = 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)
|
|
follow = true;
|
|
else {
|
|
follow = (bool)SvTRUE(ST(4));
|
|
}
|
|
|
|
if (items < 6)
|
|
target = nullptr;
|
|
else if (sv_derived_from(ST(5), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(5)));
|
|
target = INT2PTR(Mob *,tmp);
|
|
}
|
|
else
|
|
Perl_croak(aTHX_ "target is not of type Mob");
|
|
|
|
|
|
if (items < 7)
|
|
sticktarg = false;
|
|
else {
|
|
sticktarg = (bool)SvTRUE(ST(6));
|
|
}
|
|
|
|
THIS->TypesTemporaryPets(typesid, target, name, duration, follow, sticktarg);
|
|
}
|
|
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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
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->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;
|
|
uint32 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;
|
|
uint32 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 > 9)
|
|
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;
|
|
char * IDFile = 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 (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));
|
|
}
|
|
|
|
if (items > 8) { IDFile = (char *)SvPV_nolen(ST(8)); }
|
|
|
|
THIS->ProjectileAnimation(mob, item_id, IsArrow, speed, angle, tilt, arc, IDFile);
|
|
|
|
}
|
|
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 = -1.0f;
|
|
|
|
if (sv_derived_from(ST(0), "Mob")) {
|
|
IV tmp = SvIV((SV*)SvRV(ST(0)));
|
|
THIS = 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;
|
|
int32 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; PUSHi((IV)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);
|
|
}
|
|
|
|
XS(XS_Mob_GetSpellStat); /* prototype to pass -Wmissing-prototypes */
|
|
XS(XS_Mob_GetSpellStat)
|
|
{
|
|
dXSARGS;
|
|
if (items < 3 || items > 4)
|
|
Perl_croak(aTHX_ "Usage: Mob::GetSpellStat(THIS, itemid, stat, slot)");
|
|
{
|
|
Mob * THIS;
|
|
int32 RETVAL;
|
|
uint32 spellid = (uint32)SvUV(ST(1));
|
|
Const_char * stat = (Const_char *)SvPV_nolen(ST(2));
|
|
uint8 slot = (uint8)SvUV(ST(3));
|
|
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.");
|
|
|
|
if (items > 4) { slot = 0; }
|
|
|
|
|
|
RETVAL = THIS->GetSpellStat(spellid, stat, slot);
|
|
XSprePUSH; PUSHi((IV)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, "TypesTempPet"), XS_Mob_TypesTempPet, 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, "$");
|
|
newXSproto(strcpy(buf, "GetSpellStat"), XS_Mob_GetSpellStat, file, "$$$$");
|
|
|
|
XSRETURN_YES;
|
|
}
|
|
|
|
#endif //EMBPERL_XS_CLASSES
|