[Cleanup] Delete deprecated/perlxs folder (#3110)

# Notes
- This entire folder is unused.
This commit is contained in:
Alex King 2023-03-17 06:23:30 -04:00 committed by GitHub
parent 4491bb9a70
commit 97e50ced93
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 0 additions and 1689 deletions

View File

@ -1,9 +0,0 @@
//NOTE: you must have a space after the * of a return value
unsigned int field_count();
unsigned long affected_rows();
unsigned long insert_id();
unsigned int get_errno();
Const_char * error();
EQDBRes * query(Const_char *q);
Const_char * escape_string(Const_char *from); //NOT THREAD SAFE! (m_escapeBuffer)

View File

@ -1,37 +0,0 @@
/* 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
*/
typedef const char Const_char;
#ifdef EMBPERL
#include "../common/debug.h"
#include "../common/useperl.h"
#include "EQDB.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = EQDB PACKAGE = EQDB
PROTOTYPES: ENABLE

View File

@ -1,7 +0,0 @@
unsigned long num_rows() { return (res) ? mysql_num_rows(res) : 0; }
unsigned long num_fields() { return (res) ? mysql_num_fields(res) : 0; }
void DESTROY() { }
void finish() { if (res) mysql_free_result(res); res=NULL; };
vector<string> fetch_row_array();
map<string,string> fetch_row_hash();
unsigned long * fetch_lengths() { return (res) ? mysql_fetch_lengths(res) : 0; }

View File

@ -1,33 +0,0 @@
/* 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
*/
typedef const char Const_char;
#ifdef EMBPERL
#include "../common/debug.h"
#include "../common/useperl.h"
#include "EQDBRes.h"
MODULE = EQDBRes PACKAGE = EQDBRes
PROTOTYPES: ENABLE

View File

@ -1,19 +0,0 @@
Const_char * GetName() const { return(m_name.c_str()); }
int GetStaticCount() const { return(m_zones.size()); }
bool IsConnected() const; //is this launcher connected to world
void DeleteLauncher(); //kill this launcher and all its zones.
void RestartZone(Const_char *zone_ref);
void StopZone(Const_char *zone_ref);
void StartZone(Const_char *zone_ref);
bool BootStaticZone(Const_char *short_name, uint16 port);
bool ChangeStaticZone(Const_char *short_name, uint16 port);
bool DeleteStaticZone(Const_char *short_name);
bool SetDynamicCount(int count);
int GetDynamicCount() const;
vector<string> ListZones(); //returns an array of zone refs
map<string,string> GetZoneDetails(Const_char *zone_ref);

View File

@ -1,37 +0,0 @@
/* 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
*/
typedef const char Const_char;
#ifdef EMBPERL
#include "../common/debug.h"
#include "EQWParser.h"
#include "EQLConfig.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = EQLConfig PACKAGE = EQLConfig
PROTOTYPES: ENABLE

View File

@ -1,36 +0,0 @@
//NOTE: you must have a space after the * of a return value
Const_char * GetConfig(Const_char *var_name);
void LockWorld();
void UnlockWorld();
bool LSConnected();
void LSReconnect();
int CountZones();
vector<string> ListBootedZones(); //returns an array of zone_refs (opaque)
map<string,string> GetZoneDetails(Const_char *zone_ref); //returns a hash ref of details
int CountPlayers();
vector<string> ListPlayers(Const_char *zone_name = ""); //returns an array of player refs (opaque)
map<string,string> GetPlayerDetails(Const_char *player_ref); //returns a hash ref of details
int CountLaunchers(bool active_only);
// vector<string> ListActiveLaunchers(); //returns an array of launcher names
vector<string> ListLaunchers(); //returns an array of launcher names
EQLConfig * GetLauncher(Const_char *launcher_name); //returns the EQLConfig object for the specified launcher.
void CreateLauncher(Const_char *launcher_name, int dynamic_count);
// EQLConfig * FindLauncher(Const_char *zone_ref);
//Guild routines, mostly wrappers around guild_mgr
int32 CreateGuild(const char* name, int32 leader_char_id);
bool DeleteGuild(int32 guild_id);
bool RenameGuild(int32 guild_id, const char* name);
bool SetGuildMOTD(int32 guild_id, const char* motd, const char *setter);
bool SetGuildLeader(int32 guild_id, int32 leader_char_id);
bool SetGuild(int32 charid, int32 guild_id, int8 rank);
bool SetGuildRank(int32 charid, int8 rank);
bool SetBankerFlag(int32 charid, bool is_banker);
bool SetTributeFlag(int32 charid, bool enabled);
bool SetPublicNote(int32 charid, const char *note);

View File

@ -1,37 +0,0 @@
/* 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
*/
typedef const char Const_char;
#ifdef EMBPERL
#include "../common/debug.h"
#include "EQWParser.h"
#include "EQW.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = EQW PACKAGE = EQW
PROTOTYPES: ENABLE

View File

@ -1,14 +0,0 @@
Const_char * get(Const_char *name, Const_char *default_value = "") const;
int getInt(Const_char *name, int default_value = 0) const;
float getFloat(Const_char *name, float default_value = 0.0) const;
//returns a database-safe string
Const_char * getEscaped(Const_char *name, Const_char *default_value = "") const;
map<string,string> get_all() const;
void redirect(Const_char *URL);
void SetResponseCode(Const_char *code);
void header(Const_char *name, Const_char *value);

View File

@ -1,37 +0,0 @@
/* 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
*/
typedef const char Const_char;
#ifdef EMBPERL
#include "../common/debug.h"
#include "EQWParser.h"
#include "HTTPRequest.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = HTTPRequest PACKAGE = HTTPRequest
PROTOTYPES: ENABLE

View File

@ -1,28 +0,0 @@
int32 GetCharID() { return charid; }
int32 GetDecayTime() { if (!corpse_decay_timer.Enabled()) return 0xFFFFFFFF; else return corpse_decay_timer.GetRemainingTime(); }
inline void Lock() { pLocked = true; }
inline void UnLock() { pLocked = false; }
inline bool IsLocked() { return pLocked; }
inline void ResetLooter() { BeingLootedBy = 0xFFFFFFFF; }
inline int32 GetDBID() { return dbid; }
inline char* GetOwnerName() { return orgname;}
void SetDecayTimer(int32 decaytime);
bool IsEmpty();
void AddItem(uint32 itemnum, int8 charges, sint16 slot = 0);
uint32 GetWornItem(sint16 equipSlot) const;
void RemoveItem(int16 lootslot);
void SetCash(int16 in_copper, int16 in_silver, int16 in_gold, int16 in_platinum);
void RemoveCash();
int32 CountItems();
void Delete();
uint32 GetCopper() { return copper; }
uint32 GetSilver() { return silver; }
uint32 GetGold() { return gold; }
uint32 GetPlatinum() { return platinum; }
void Summon(Client* client, bool spell);
void CastRezz(int16 spellid, Mob* Caster);
void CompleteRezz();
bool CanMobLoot(int charid);
void AllowMobLoot(Mob *them, int8 slot);
void AddLooter(Mob *who);
bool IsRezzed() { return isrezzed; }

View File

@ -1,37 +0,0 @@
/* 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 "features.h"
#ifdef EMBPERL_XS_CLASSES
#include "../common/debug.h"
#include "embperl.h"
#include "PlayerCorpse.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = Corpse PACKAGE = Corpse
PROTOTYPES: ENABLE

View File

@ -1,27 +0,0 @@
#!/bin/sh
if [ ! -h ./miniperl ]; then
echo "You must have a link in this dir to perl named ./miniperl"
exit 1
fi
./convert client.h Client
./convert entity.h EntityList
./convert mob.h Mob
./convert npc.h NPC
./convert PlayerCorpse.h Corpse
./convert groups.h Group
./convert perlpacket.h PerlPacket
./export ../../world/EQW.h EQW.h
./convert EQW.h EQW
./export ../../common/EQDB.h EQDB.h
./convert EQDB.h EQDB
./export ../../common/EQDBRes.h EQDBRes.h
./convert EQDBRes.h EQDBRes
./export ../../world/HTTPRequest.h HTTPRequest.h
./convert HTTPRequest.h HTTPRequest
./export ../../world/EQLConfig.h EQLConfig.h
./convert EQLConfig.h EQLConfig
echo "Putting files in place..."
./put

View File

@ -1,3 +0,0 @@
#!/bin/sh
xsubpp -typemap class.typemap class.xs

View File

@ -1,442 +0,0 @@
#our object types
EQLConfig * T_PTROBJ
EQDB * T_PTROBJ
EQDBRes * T_PTROBJ
Client * T_PTROBJ
NPC * T_PTROBJ
Mob * T_PTROBJ
Group * T_PTROBJ
Corpse * T_PTROBJ
EntityList * T_PTROBJ
PerlPacket * T_PTROBJ
EQW * T_PTROBJ
HTTPRequest * T_PTROBJ
Const_char * T_PV
#some nice c++ types
vector<string> T_STRINGARRAY
map<string,string> T_STRINGMAP
#our int types
FACTION_VALUE T_IV
EmuAppearance T_UV
SkillType T_UV
Mob::eStandingPetOrder T_IV
int32 T_UV
int16 T_UV
int8 T_UV
uint32 T_UV
uint16 T_UV
uint8 T_UV
sint32 T_IV
sint16 T_IV
sint8 T_IV
int * T_INTARRAY
unsigned long * T_INTARRAY
# basic C types
int T_IV
unsigned T_UV
unsigned int T_UV
long T_IV
unsigned long T_UV
unsigned long long T_UV
short T_IV
unsigned short T_UV
char T_CHAR
unsigned char T_U_CHAR
char * T_PV
unsigned char * T_PV
const char * T_PV
caddr_t T_PV
wchar_t * T_PV
wchar_t T_IV
# bool_t is defined in <rpc/rpc.h>
bool_t T_IV
size_t T_UV
ssize_t T_IV
time_t T_NV
unsigned long * T_OPAQUEPTR
char ** T_PACKEDARRAY
void * T_PTR
Time_t * T_PV
SV * T_SV
SVREF T_SVREF
AV * T_AVREF
HV * T_HVREF
CV * T_CVREF
IV T_IV
UV T_UV
NV T_NV
I32 T_IV
I16 T_IV
I8 T_IV
STRLEN T_UV
U32 T_U_LONG
U16 T_U_SHORT
U8 T_UV
Result T_U_CHAR
Boolean T_BOOL
float T_FLOAT
double T_DOUBLE
SysRet T_SYSRET
SysRetLong T_SYSRET
FILE * T_STDIO
PerlIO * T_INOUT
FileHandle T_PTROBJ
InputStream T_IN
InOutStream T_INOUT
OutputStream T_OUT
bool T_BOOL
#############################################################################
INPUT
T_SV
$var = $arg
T_SVREF
if (SvROK($arg))
$var = (SV*)SvRV($arg);
else
Perl_croak(aTHX_ \"$var is not a reference\");
T_AVREF
if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV)
$var = (AV*)SvRV($arg);
else
Perl_croak(aTHX_ \"$var is not an array reference\");
T_HVREF
if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVHV)
$var = (HV*)SvRV($arg);
else
Perl_croak(aTHX_ \"$var is not a hash reference\");
T_CVREF
if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVCV)
$var = (CV*)SvRV($arg);
else
Perl_croak(aTHX_ \"$var is not a code reference\");
T_SYSRET
$var NOT IMPLEMENTED
T_UV
$var = ($type)SvUV($arg)
T_IV
$var = ($type)SvIV($arg)
T_INT
$var = (int)SvIV($arg)
T_ENUM
$var = ($type)SvIV($arg)
T_BOOL
$var = (bool)SvTRUE($arg)
T_U_INT
$var = (unsigned int)SvUV($arg)
T_SHORT
$var = (short)SvIV($arg)
T_U_SHORT
$var = (unsigned short)SvUV($arg)
T_LONG
$var = (long)SvIV($arg)
T_U_LONG
$var = (unsigned long)SvUV($arg)
T_CHAR
$var = (char)*SvPV_nolen($arg)
T_U_CHAR
$var = (unsigned char)SvUV($arg)
T_FLOAT
$var = (float)SvNV($arg)
T_NV
$var = ($type)SvNV($arg)
T_DOUBLE
$var = (double)SvNV($arg)
T_PV
$var = ($type)SvPV_nolen($arg)
T_PTR
$var = INT2PTR($type,SvIV($arg))
T_PTRREF
if (SvROK($arg)) {
IV tmp = SvIV((SV*)SvRV($arg));
$var = INT2PTR($type,tmp);
}
else
Perl_croak(aTHX_ \"$var is not a reference\");
if($var == NULL)
Perl_croak(aTHX_ \"$var is NULL, avoiding crash.\");
T_REF_IV_REF
if (sv_isa($arg, \"${ntype}\")) {
IV tmp = SvIV((SV*)SvRV($arg));
$var = *INT2PTR($type *, tmp);
}
else
Perl_croak(aTHX_ \"$var is not of type ${ntype}\");
T_REF_IV_PTR
if (sv_isa($arg, \"${ntype}\")) {
IV tmp = SvIV((SV*)SvRV($arg));
$var = INT2PTR($type, tmp);
}
else
Perl_croak(aTHX_ \"$var is not of type ${ntype}\");
if($var == NULL)
Perl_croak(aTHX_ \"$var is NULL, avoiding crash.\");
T_PTROBJ
if (sv_derived_from($arg, \"${ntype}\")) {
IV tmp = SvIV((SV*)SvRV($arg));
$var = INT2PTR($type,tmp);
}
else
Perl_croak(aTHX_ \"$var is not of type ${ntype}\");
if($var == NULL)
Perl_croak(aTHX_ \"$var is NULL, avoiding crash.\");
T_PTRDESC
if (sv_isa($arg, \"${ntype}\")) {
IV tmp = SvIV((SV*)SvRV($arg));
${type}_desc = (\U${type}_DESC\E*) tmp;
$var = ${type}_desc->ptr;
}
else
Perl_croak(aTHX_ \"$var is not of type ${ntype}\");
if($var == NULL)
Perl_croak(aTHX_ \"$var is NULL, avoiding crash.\");
T_REFREF
if (SvROK($arg)) {
IV tmp = SvIV((SV*)SvRV($arg));
$var = *INT2PTR($type,tmp);
}
else
Perl_croak(aTHX_ \"$var is not a reference\");
if($var == NULL)
Perl_croak(aTHX_ \"$var is NULL, avoiding crash.\");
T_REFOBJ
if (sv_isa($arg, \"${ntype}\")) {
IV tmp = SvIV((SV*)SvRV($arg));
$var = *INT2PTR($type,tmp);
}
else
Perl_croak(aTHX_ \"$var is not of type ${ntype}\");
if($var == NULL)
Perl_croak(aTHX_ \"$var is NULL, avoiding crash.\");
T_OPAQUE
$var = *($type *)SvPV_nolen($arg)
T_OPAQUEPTR
$var = ($type)SvPV_nolen($arg)
T_PACKED
$var = XS_unpack_$ntype($arg)
T_PACKEDARRAY
$var = XS_unpack_$ntype($arg)
T_CALLBACK
$var = make_perl_cb_$type($arg)
T_ARRAY
U32 ix_$var = $argoff;
$var = $ntype(items -= $argoff);
while (items--) {
DO_ARRAY_ELEM;
ix_$var++;
}
/* this is the number of elements in the array */
ix_$var -= $argoff
T_INTARRAY
AV *av_$var;
if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV)
av_$var = (AV*)SvRV($arg);
else
Perl_croak(aTHX_ \"$var is not an array reference\");
I32 len_$var = av_len(av_$var) + 1;
I32 ix_$var;
$var = new $ntype\[len_$var\];
for(ix_$var = 0; ix_$var < len_$var; ix_$var ++) {
SV **tmp = av_fetch(av_$var, ix_$var, 0);
if(tmp == NULL || *tmp == NULL) {
$var\[ix_$var\] = 0;
continue;
}
$var\[ix_$var\] = ($ntype)SvIV(*tmp);
}
T_STDIO
$var = PerlIO_findFILE(IoIFP(sv_2io($arg)))
T_IN
$var = IoIFP(sv_2io($arg))
T_INOUT
$var = IoIFP(sv_2io($arg))
T_OUT
$var = IoOFP(sv_2io($arg))
T_STRINGARRAY
$var NOT IMPLEMENTED
T_STRINGMAP
$var NOT IMPLEMENTED
#############################################################################
OUTPUT
T_SV
$arg = $var;
T_SVREF
$arg = newRV((SV*)$var);
T_AVREF
$arg = newRV((SV*)$var);
T_HVREF
$arg = newRV((SV*)$var);
T_CVREF
$arg = newRV((SV*)$var);
T_IV
sv_setiv($arg, (IV)$var);
T_UV
sv_setuv($arg, (UV)$var);
T_INT
sv_setiv($arg, (IV)$var);
T_SYSRET
if ($var != -1) {
if ($var == 0)
sv_setpvn($arg, "0 but true", 10);
else
sv_setiv($arg, (IV)$var);
}
T_ENUM
sv_setiv($arg, (IV)$var);
T_BOOL
$arg = boolSV($var);
T_U_INT
sv_setuv($arg, (UV)$var);
T_SHORT
sv_setiv($arg, (IV)$var);
T_U_SHORT
sv_setuv($arg, (UV)$var);
T_LONG
sv_setiv($arg, (IV)$var);
T_U_LONG
sv_setuv($arg, (UV)$var);
T_CHAR
sv_setpvn($arg, (char *)&$var, 1);
T_U_CHAR
sv_setuv($arg, (UV)$var);
T_FLOAT
sv_setnv($arg, (double)$var);
T_NV
sv_setnv($arg, (NV)$var);
T_DOUBLE
sv_setnv($arg, (double)$var);
T_PV
sv_setpv((SV*)$arg, $var);
T_PTR
sv_setiv($arg, PTR2IV($var));
T_PTRREF
sv_setref_pv($arg, Nullch, (void*)$var);
T_REF_IV_REF
sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var));
T_REF_IV_PTR
sv_setref_pv($arg, \"${ntype}\", (void*)$var);
T_PTROBJ
sv_setref_pv($arg, \"${ntype}\", (void*)$var);
T_PTRDESC
sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var));
T_REFREF
NOT_IMPLEMENTED
T_REFOBJ
NOT IMPLEMENTED
T_OPAQUE
sv_setpvn($arg, (char *)&$var, sizeof($var));
T_OPAQUEPTR
sv_setpvn($arg, (char *)$var, sizeof(*$var));
T_PACKED
XS_pack_$ntype($arg, $var);
T_PACKEDARRAY
XS_pack_$ntype($arg, $var, count_$ntype);
T_DATAUNIT
sv_setpvn($arg, $var.chp(), $var.size());
T_CALLBACK
sv_setpvn($arg, $var.context.value().chp(),
$var.context.value().size());
T_ARRAY
{
U32 ix_$var;
EXTEND(SP,size_$var);
for (ix_$var = 0; ix_$var < size_$var; ix_$var++) {
ST(ix_$var) = sv_newmortal();
DO_ARRAY_ELEM
}
}
T_STDIO
{
GV *gv = newGVgen("$Package");
PerlIO *fp = PerlIO_importFILE($var,0);
if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp) )
sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
else
$arg = &PL_sv_undef;
}
T_IN
{
GV *gv = newGVgen("$Package");
if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) )
sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
else
$arg = &PL_sv_undef;
}
T_INOUT
{
GV *gv = newGVgen("$Package");
if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) )
sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
else
$arg = &PL_sv_undef;
}
T_OUT
{
GV *gv = newGVgen("$Package");
if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) )
sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)));
else
$arg = &PL_sv_undef;
}
T_STRINGARRAY
{
U32 ix_$var;
/* pop crap off the stack we dont really want */
POPs;
POPs;
/* grow the stack to the number of elements being returned */
EXTEND(SP, $var.size());
for (ix_$var = 0; ix_$var < $var.size(); ix_$var++) {
const string &it = $var\[ix_$var\];
ST(ix_$var) = sv_newmortal();
sv_setpvn(ST(ix_$var), it.c_str(), it.length());
}
/* hackish, but im over it. The normal xsubpp return will be right below this */
XSRETURN($var.size());
}
T_STRINGMAP
if (RETVAL.begin()!=RETVAL.end())
{
//NOTE: we are leaking the original $arg right now
HV *hv = newHV();
sv_2mortal((SV*)hv);
$arg = newRV((SV*)hv);
map<string,string>::const_iterator cur, end;
cur = $var.begin();
end = $var.end();
for(; cur != end; cur++) {
/* get the element from the hash, creating if needed (will be needed) */
SV**ele = hv_fetch(hv, cur->first.c_str(), cur->first.length(), TRUE);
if(ele == NULL) {
Perl_croak(aTHX_ \"Unable to create a hash element for $var\");
break;
}
/* put our string in the SV associated with this element in the hash */
sv_setpvn(*ele, cur->second.c_str(), cur->second.length());
}
}

View File

@ -1,177 +0,0 @@
//BEGIN CLIENT METHODS
void SendSound();
bool Save(int8 iCommitNow);
void SaveBackup();
inline bool Connected();
inline bool InZone();
inline void Kick();
inline void Disconnect();
inline bool IsLD();
void WorldKick();
inline int8 GetAnon();
void Duck();
void Stand();
void SetGM(bool toggle);
void SetPVP(bool toggle);
inline bool GetPVP();
inline bool GetGM();
inline void SetBaseClass(uint32 i);
inline void SetBaseRace(uint32 i);
inline void SetBaseGender(uint32 i);
inline int8 GetBaseFace();
inline int8 GetLanguageSkill(int16 n);
inline Const_char * GetLastName();
inline int32 GetLDoNPoints();
inline int8 GetBaseSTR();
inline int8 GetBaseSTA();
inline int8 GetBaseCHA();
inline int8 GetBaseDEX();
inline int8 GetBaseINT();
inline int8 GetBaseAGI();
inline int8 GetBaseWIS();
int16 GetWeight();
inline uint32 GetEXP();
bool UpdateLDoNPoints(sint32 points, int32 theme);
inline void SetDeity(uint32 i);
void AddEXP(uint32 add_exp, int8 conlevel = 0xFF, bool resexp = false);
void SetEXP(uint32 set_exp, uint32 set_aaxp, bool resexp=false);
void SetBindPoint(int to_zone = -1, float new_x = 0.0f, float new_y = 0.0f, float new_z = 0.0f);
void MovePC(int32 zoneID, float x, float y, float z, float heading);
void ChangeLastName(const char* in_lastname);
FACTION_VALUE GetFactionLevel(int32 char_id, int32 npc_id, int32 p_race, int32 p_class, int32 p_deity, sint32 pFaction, Mob* tnpc);
void SetFactionLevel(int32 char_id, int32 npc_id, int8 char_class, int8 char_race, int8 char_deity);
void SetFactionLevel2(int32 char_id, sint32 faction_id, int8 char_class, int8 char_race, int8 char_deity, sint32 value);
sint16 GetRawItemAC();
inline int32 AccountID();
inline Const_char * AccountName();
inline sint16 Admin();
inline int32 CharacterID();
void UpdateAdmin(bool iFromDB = true);
void UpdateWho(int8 remove = 0);
inline int8 GuildRank();
inline int32 GuildID();
int8 GetFace();
bool TakeMoneyFromPP(uint32 copper);
void AddMoneyToPP(uint32 copper, uint32 silver, uint32 gold,uint32 platinum,bool updateclient);
bool TGB() {return tgb;}
int16 GetSkillPoints() {return m_pp.points;}
void SetSkillPoints(int inp) {m_pp.points = inp;}
void IncreaseSkill(int skill_id, int value = 1) { if (skill_id <= HIGHEST_SKILL) { m_pp.skills[skill_id] += value; } }
void IncreaseLanguageSkill(int skill_id, int value = 1) { if (skill_id < 26) { m_pp.languages[skill_id] += value; } }
virtual uint16 GetSkill(SkillType skill_id) const { if (skill_id <= HIGHEST_SKILL) { return((itembonuses.skillmod[skill_id] > 0)? m_pp.skills[skill_id]*(100 + itembonuses.skillmod[skill_id])/100 : m_pp.skills[skill_id]); } return 0; }
uint32 GetRawSkill(SkillType skill_id) const { if (skill_id <= HIGHEST_SKILL) { return(m_pp.skills[skill_id]); } return 0; }
bool HasSkill(SkillType skill_id) const;
bool CanHaveSkill(SkillType skill_id) const;
void SetSkill(SkillType skill_num, int8 value); // socket 12-29-01
void AddSkill(SkillType skillid, int8 value);
void CheckSpecializeIncrease(int16 spell_id);
bool CheckIncreaseSkill(SkillType skillid, int chancemodi = 0);
void SetLanguageSkill(int langid, int value);
int8 MaxSkill(SkillType skillid);
void GMKill();
inline bool IsMedding();
inline int16 GetDuelTarget();
inline bool IsDueling();
inline void SetDuelTarget(int16 set_id);
inline void SetDueling(bool duel);
void ResetAA();
void MemSpell(int16 spell_id, int slot, bool update_client = true);
void UnmemSpell(int slot, bool update_client = true);
void UnmemSpellAll(bool update_client = true);
void ScribeSpell(int16 spell_id, int slot, bool update_client = true);
void UnscribeSpell(int slot, bool update_client = true);
void UnscribeSpellAll(bool update_client = true);
inline bool IsSitting();
inline bool IsBecomeNPC();
inline int8 GetBecomeNPCLevel();
inline void SetBecomeNPC(bool flag);
inline void SetBecomeNPCLevel(int8 level);
bool LootToStack(uint32 itemid);
void SetFeigned(bool in_feigned);
inline bool GetFeigned();
inline bool AutoSplitEnabled();
void SetHorseId(int16 horseid_in);
int16 GetHorseId();
uint32 NukeItem(uint32 itemnum);
void SetTint(sint16 slot_id, uint32 color);
void SetMaterial(sint16 slot_id, uint32 item_id);
void Undye();
uint32 GetItemIDAt(sint16 slot_id);
void DeleteItemInInventory(sint16 slot_id, sint8 quantity = 0, bool client_update = false);
void SummonItem(uint32 item_id, sint8 charges = 0);
void SetStats(int8 type,sint16 increase_val);
void IncStats(int8 type,sint16 increase_val);
void DropItem(sint16 slot_id);
void BreakInvis();
Group* GetGroup();
void LeaveGroup();
bool Hungry();
bool Thirsty();
int16 GetInstrumentMod(int16 spell_id);
bool DecreaseByID(int32 type, int8 amt);
int8 SlotConvert2(int8 slot);
void Escape();
void RemoveNoRent();
void RangedAttack(Mob* other);
void ThrowingAttack(Mob* other);
void GoFish();
void ForageItem();
float CalcPriceMod(Mob* other = 0, bool reverse = false);
void ResetTrade();
bool UseDiscipline(int32 spell_id, int32 target);
sint32 GetCharacterFactionLevel(sint32 faction_id);
void SetZoneFlag(uint32 zone_id);
void ClearZoneFlag(uint32 zone_id);
bool HasZoneFlag(uint32 zone_id) const;
void SendZoneFlagInfo(Client *to) const;
void LoadZoneFlags();
void SetAATitle(const char *txt);
//TODO: inventory and ptimers interfaces
//I think there are two GetAA methods in client

View File

@ -1,36 +0,0 @@
/* 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 "features.h"
#ifdef EMBPERL_XS_CLASSES
#include "../common/debug.h"
#include "embperl.h"
#include "client.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = Client PACKAGE = Client
PROTOTYPES: ENABLE

View File

@ -1,44 +0,0 @@
#!/bin/sh
if [ ! -r "$1" -o -z "$2" ]; then
echo "Usage: $0 headerfile classname"
fi
name=`basename "$1" .h`
name="perl_${name}"
echo "Starting conversion of $2" >&2
{
cat "$1.xs"
cat "$1" \
| sed -e 's/inline//g' -e 's/const//g' -e 's/virtual//g' \
-e 's/{.*}/;/g' -e 's#//.*$##g' \
-e 's/(void)/()/g' \
| tr -d '[&;]' \
| perl -p -e "s/^\\s+(.+)[ \\t]([a-zA-Z0-9_]*)\\(/&\$1&$2::\$2(/g" \
| tr '&' '\n'
} > tmp
{
xsubpp -typemap class.typemap tmp \
| sed -e "s/\"$2::/\"/g" \
-e 's/("\([a-zA-Z0-9_]*\)"/(strcpy(buf, "\1")/g' \
-e 's/ / /g' -e 's/ / /g' \
-e 's#char\* file = __FILE__;#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....^^#g' \
-e 's/Ptr//g' \
-e 's/Mob__e/Mob::e/g' \
| tr '^' '\n' \
| grep -v "^#line"
echo "#endif //EMBPERL_XS_CLASSES"
echo
} > "$name.cpp"
#rm -f tmp

View File

@ -1,62 +0,0 @@
Mob* GetMobID(int16 id);
Mob* GetMob(const char* name);
Mob* GetMobByNpcTypeID(int32 get_id);
Client* GetClientByName(const char *name);
Client* GetClientByAccID(int32 accid);
Client* GetClientByID(int16 id);
Client* GetClientByCharID(int32 iCharID);
Client* GetClientByWID(int32 iWID);
Group* GetGroupByMob(Mob* mob);
Group* GetGroupByClient(Client* client);
Group* GetGroupByID(int32 id);
Group* GetGroupByLeaderName(char* leader);
Corpse* GetCorpseByOwner(Client* client);
Corpse* GetCorpseByID(int16 id);
Corpse* GetCorpseByName(char* name);
void ClearClientPetitionQueue();
bool CanAddHateForMob(Mob *p);
void Clear();
bool RemoveMob(int16 delete_id);
bool RemoveClient(int16 delete_id);
bool RemoveNPC(int16 delete_id);
bool RemoveGroup(int32 delete_id);
bool RemoveCorpse(int16 delete_id);
bool RemoveDoor(int16 delete_id);
bool RemoveTrap(int16 delete_id);
bool RemoveObject(int16 delete_id);
void RemoveAllMobs();
void RemoveAllClients();
void RemoveAllNPCs();
void RemoveAllGroups();
void RemoveAllCorpses();
void RemoveAllDoors();
void RemoveAllTraps();
void RemoveAllObjects();
void Message(int32 to_guilddbid, int32 type, const char* message, ...);
void MessageStatus(int32 to_guilddbid, int to_minstatus, int32 type, const char* message, ...);
void MessageClose(Mob* sender, bool skipsender, float dist, int32 type, const char* message, ...);
void RemoveFromTargets(Mob* mob);
void ReplaceWithTarget(Mob* pOldMob, Mob*pNewTarget);
void OpenDoorsNear(NPC* opener);
char* MakeNameUnique(char* name);
static char* RemoveNumbers(char* name);
// signal quest command support
void SignalMobsByNPCID(int32 npc_type, int signal_id);
void RemoveEntity(int16 id);
sint32 DeleteNPCCorpses();
sint32 DeletePlayerCorpses();
void HalveAggro(Mob* who);
void DoubleAggro(Mob* who);
void ClearFeignAggro(Mob* targ);
bool Fighting(Mob* targ);
void RemoveFromHateLists(Mob* mob, bool settoone = false);
void MessageGroup(Mob* sender, bool skipclose, int32 type, const char* message, ...);

View File

@ -1,37 +0,0 @@
/* 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 "features.h"
#ifdef EMBPERL_XS_CLASSES
#include "../common/debug.h"
#include "embperl.h"
#include "entity.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = EntityList PACKAGE = EntityList
PROTOTYPES: ENABLE

View File

@ -1,12 +0,0 @@
#!/bin/sh
FROM="$1"
TO="$2"
if [ ! -r "$1" -o -z "$2" ]; then
echo "Usage: $0 [src] [dest]"
fi
grep -A100000 "BEGIN PERL EXPORT" "$FROM" \
| grep -B 100000 "END PERL EXPORT" \
| grep -v "PERL EXPORT" >"$TO"

View File

@ -1,17 +0,0 @@
void DisbandGroup();
bool IsGroupMember(Mob* client);
void CastGroupSpell(Mob* caster,uint16 spellid);
void SplitExp(uint32 exp, Mob* other);
void GroupMessage(Mob* sender,const char* message);
int32 GetTotalGroupDamage(Mob* other);
void SplitMoney(uint32 copper, uint32 silver, uint32 gold, uint32 platinum);
void SetLeader(Mob* newleader){ leader=newleader; };
Mob* GetLeader(){ return leader; };
char* GetLeaderName(){ return membername[0]; };
void SendHPPacketsTo(Mob* newmember);
void SendHPPacketsFrom(Mob* newmember);
bool IsLeader(Mob* leadertest) { return leadertest==leader; };
int8 GroupCount();
int32 GetHighestLevel();
void TeleportGroup(Mob* sender, int32 zoneID, float x, float y, float z, float heading);
inline const int32 GetID() const { return id; }

View File

@ -1,37 +0,0 @@
/* 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 "features.h"
#ifdef EMBPERL_XS_CLASSES
#include "../common/debug.h"
#include "embperl.h"
#include "groups.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = Group PACKAGE = Group
PROTOTYPES: ENABLE

View File

@ -1,249 +0,0 @@
//BEGIN ENTITY METHODS
virtual bool IsClient() { return false; }
virtual bool IsNPC() { return false; }
virtual bool IsMob() { return false; }
virtual bool IsCorpse() { return false; }
virtual bool IsPlayerCorpse() { return false; }
virtual bool IsNPCCorpse() { return false; }
virtual bool IsObject() { return false; }
// virtual bool IsGroup() { return false; }
virtual bool IsDoor() { return false; }
virtual bool IsTrap() { return false; }
virtual bool IsBeacon() { return false; }
Client* CastToClient();
NPC* CastToNPC();
Mob* CastToMob();
Corpse* CastToCorpse();
// Object* CastToObject();
// Group* CastToGroup();
// Doors* CastToDoors();
// Trap* CastToTrap();
// Beacon* CastToBeacon();
//BEGIN MOB METHODS
int16& GetID();
virtual Const_char * GetName();
void Depop(bool StartSpawnTimer = true);
void RogueAssassinate(Mob* other);
bool BehindMob(Mob* other = 0, float playerx = 0.0f, float playery = 0.0f);
void SetLevel(uint8 in_level, bool command = false);
uint32 GetSkill(SkillType skill_num);
void SendWearChange(int8 material_slot);
sint32 GetEquipment(int8 material_slot); // returns item id
sint32 GetEquipmentMaterial(int8 material_slot);
sint32 GetEquipmentColor(int8 material_slot);
bool IsMoving();
void GoToBind();
void Gate();
bool Attack(Mob* other, int Hand = 13, bool FromRiposte = false)
virtual void Damage(Mob* from, sint32 damage, int16 spell_id, SkillType attack_skill, bool avoidable = true, sint8 buffslot = -1, bool iBuffTic = false) {};
void Heal();
void SetMaxHP();
int32 GetLevelCon(int8 iOtherLevel);
void SetHP(sint32 hp);
void DoAnim(const int animnum, int type=1);
void ChangeSize(float in_size, bool bNoRestriction = false);
void GMMove(float x, float y, float z, float heading = 0.01);
void SendPosUpdate(int8 iSendToSelf = 0);
void SendPosition();
bool HasProcs();
//bool CheckLos(Mob* other);
bool IsInvisible(Mob *other = 0);
void SetInvisible(bool state);
bool FindBuff(int16 spellid);
bool FindType(int8 type, bool bOffensive = false, int16 threshold = 100);
sint8 GetBuffSlotFromType(int8 type);
void MakePet(int16 spell_id, const char* pettype, const char *name=NULL);
virtual inline int16 GetBaseRace();
virtual inline int8 GetBaseGender();
virtual inline int8 GetDeity();
inline const int16& GetRace();
inline const int8& GetGender();
inline const int8& GetTexture();
inline const int8& GetHelmTexture();
inline const int8& GetClass();
inline const uint8& GetLevel();
Const_char * GetCleanName();
inline Mob* GetTarget();
virtual inline void SetTarget(Mob* mob);
virtual inline float GetHPRatio();
bool IsWarriorClass();
virtual inline const sint32& GetHP();
virtual inline const sint32& GetMaxHP();
virtual float GetWalkspeed();
virtual float GetRunspeed();
virtual int GetCasterLevel(int16 spell_id);
virtual inline const sint32& GetMaxMana();
virtual inline const sint32& GetMana();
virtual void SetMana(sint32 amount);
virtual inline float GetManaRatio();
inline virtual int16 GetAC();
inline virtual int16 GetATK();
inline virtual sint16 GetSTR();
inline virtual sint16 GetSTA();
inline virtual sint16 GetDEX();
inline virtual sint16 GetAGI();
inline virtual sint16 GetINT();
inline virtual sint16 GetWIS();
inline virtual sint16 GetCHA();
inline virtual sint16 GetMR();
inline virtual sint16 GetFR();
inline virtual sint16 GetDR();
inline virtual sint16 GetPR();
inline virtual sint16 GetCR();
inline virtual sint16 GetMaxSTR();
inline virtual sint16 GetMaxSTA();
inline virtual sint16 GetMaxDEX();
inline virtual sint16 GetMaxAGI();
inline virtual sint16 GetMaxINT();
inline virtual sint16 GetMaxWIS();
inline virtual sint16 GetMaxCHA();
virtual float GetActSpellRange(int16 spell_id, float range);
virtual sint32 GetActSpellDamage(int16 spell_id, sint32 value);
virtual sint32 GetActSpellHealing(int16 spell_id, sint32 value);
virtual sint32 GetActSpellCost(int16 spell_id, sint32 cost);
virtual sint32 GetActSpellDuration(int16 spell_id, sint32 duration);
virtual sint32 GetActSpellCasttime(int16 spell_id, sint32 casttime);
double ResistSpell(uint8 ressit_type, int16 spell_id, Mob *caster);
uint16 GetSpecializeSkillValue(int16 spell_id) const;
int32 GetNPCTypeID();
bool IsTargeted();
inline const float& GetX();
inline const float& GetY();
inline const float& GetZ();
inline const float& GetHeading();
inline const float& GetSize();
void SetFollowID(int32 id);
int32 GetFollowID();
virtual void Message(int32 type, const char* message, ...);
virtual void MessageString(int32 type, int32 string_id, int32 distance = 0);
void Say(const char *format, ...);
void Shout(const char *format, ...);
void Emote(const char *format, ...);
void InterruptSpell(int16 spellid = 0xFFFF);
virtual void CastSpell(int16 spell_id, int16 target_id, int16 slot = 10, sint32 casttime = -1, sint32 mana_cost = -1);
bool IsImmuneToSpell(int16 spell_id, Mob *caster);
void BuffFadeBySpellID(int16 spell_id);
void BuffFadeByEffect(int effectid, int skipslot = -1);
void BuffFadeAll();
void BuffFadeBySlot(int slot, bool iRecalcBonuses = true);
int CanBuffStack(int16 spellid, int8 caster_level, bool iFailIfOverwrite = false);
inline bool IsCasting();
int16 CastingSpellID();
void SetAppearance(EmuAppearance app, bool iIgnoreSelf = true);
inline EmuAppearance GetAppearance();
inline const int8& GetRunAnimSpeed();
inline void SetRunAnimSpeed(sint8 in);
void SetPetID(int16 NewPetID);
inline const int16& GetPetID();
void SetOwnerID(int16 NewOwnerID);
inline const int16& GetOwnerID();
inline const int16& GetPetType();
inline const int8& GetBodyType();
virtual void Stun(int duration);
void Spin();
void Kill();
inline void SetInvul(bool invul);
inline bool GetInvul();
inline void SetExtraHaste(int Haste);
virtual int GetHaste();
int GetMonkHandToHandDamage(void);
bool CanThisClassDoubleAttack(void);
bool CanThisClassDualWield(void);
bool CanThisClassRiposte(void);
bool CanThisClassDodge(void);
bool CanThisClassParry(void);
int GetMonkHandToHandDelay(void);
int8 GetClassLevelFactor();
void Mesmerize();
inline bool IsMezzed();
inline bool IsStunned();
void StartEnrage();
bool IsEnraged();
FACTION_VALUE GetReverseFactionCon(Mob* iOther);
inline const bool& IsAIControlled();
inline const float& GetAggroRange();
inline const float& GetAssistRange();
inline void SetPetOrder(Mob::eStandingPetOrder i);
inline const Mob::eStandingPetOrder& GetPetOrder();
inline const bool& IsRoamer();
inline const bool IsRooted();
void AddToHateList(Mob* other, sint32 hate = 0, sint32 damage = 0, bool iYellForHelp = true, bool bFrenzy = false, bool iBuffTic = false);
void SetHate(Mob* other, sint32 hate = 0, sint32 damage = 0);
int32 GetHateAmount(Mob* tmob, bool is_dam = false);
int32 GetDamageAmount(Mob* tmob);
Mob* GetHateTop();
Mob* GetHateDamageTop(Mob* other);
Mob* GetHateRandom();
bool IsEngaged();
bool HateSummon();
void FaceTarget(Mob* MobToFace = 0, bool update = false);
void SetHeading(float iHeading);
void WipeHateList();
inline bool CheckAggro(Mob* other);
sint8 CalculateHeadingToTarget(float in_x, float in_y);
bool CalculateNewPosition(float x, float y, float z, float speed, bool checkZ = false);
bool CalculateNewPosition2(float x, float y, float z, float speed, bool checkZ = false);
float CalculateDistance(float x, float y, float z);
void SendTo(float new_x, float new_y, float new_z);
void SendToFixZ(float new_x, float new_y, float new_z);
void NPCSpecialAttacks(const char* parse, int permtag);
inline int32& DontHealMeBefore();
inline int32& DontBuffMeBefore();
inline int32& DontDotMeBefore();
inline int32& DontRootMeBefore();
inline int32& DontSnareMeBefore();
sint16 GetResist(int8 type);
Mob* GetShieldTarget();
void SetShieldTarget(Mob* mob);
bool Charmed();
int32 GetLevelHP(int8 tlevel);
int32 GetZoneID() const;
int16 CheckAggroAmount(int16 spellid);
int16 CheckHealAggroAmount(int16 spellid);
virtual int32 GetAA(int32 aa_id);
bool DivineAura();
void AddFeignMemory(Client* attacker);
void RemoveFromFeignMemory(Client* attacker);
void ClearFeignMemory();
//END MOB METHODS

View File

@ -1,39 +0,0 @@
/* 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 "features.h"
#ifdef EMBPERL_XS_CLASSES
#include "../common/debug.h"
#include "embperl.h"
typedef const char Const_char;
#include "mob.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = Mob PACKAGE = Mob
PROTOTYPES: ENABLE

View File

@ -1,63 +0,0 @@
void SignalNPC(int _signal_id);
FACTION_VALUE CheckNPCFactionAlly(sint32 other_faction);
void AddItem(int32 itemid, int8 charges, int8 slot = 0);
void AddLootTable();
void RemoveItem(uint16 item_id, int16 quantity = 0, int16 slot = 0);
void ClearItemList();
void AddCash(int16 in_copper, int16 in_silver, int16 in_gold, int16 in_platinum);
void RemoveCash();
int32 CountLoot();
inline int32 GetLoottableID() { return loottable_id; }
inline uint32 GetCopper() { return copper; }
inline uint32 GetSilver() { return silver; }
inline uint32 GetGold() { return gold; }
inline uint32 GetPlatinum() { return platinum; }
inline void SetCopper(uint32 amt) { copper = amt; }
inline void SetSilver(uint32 amt) { silver = amt; }
inline void SetGold(uint32 amt) { gold = amt; }
inline void SetPlatinum(uint32 amt) { platinum = amt; }
void SetGrid(int16 grid_){ grid=grid_; }
void SetSp2(int32 sg2){ spawn_group=sg2; }
int16 GetWaypointMax(){ return wp_m; }
sint16 GetGrid(){ return grid; }
int32 GetSp2(){ return spawn_group; }
inline const sint32& GetNPCFactionID() { return npc_faction_id; }
inline sint32 GetPrimaryFaction() { return primary_faction; }
sint32 GetNPCHate(Mob* in_ent) {return hate_list.GetEntHate(in_ent);}
bool IsOnHatelist(Mob*p) { return hate_list.IsOnHateList(p);}
void SetNPCFactionID(sint32 in) { npc_faction_id = in; database.GetFactionIdsForNPC(npc_faction_id, &faction_list, &primary_faction); }
int16 GetMaxDMG() {return max_dmg;}
bool IsAnimal() { return(bodytype == 21); }
int16 GetPetSpellID() {return pet_spell_id;}
void SetPetSpellID(int16 amt) {pet_spell_id = amt;}
int32 GetMaxDamage(int8 tlevel);
void SetTaunting(bool tog) {taunting = tog;}
void PickPocket(Client* thief);
void StartSwarmTimer(int32 duration) { swarm_timer.Start(duration); }
void DoClassAttacks(Mob *target);
int GetMaxWp() const { return max_wp; }
void DisplayWaypointInfo(Client *to);
void CalculateNewWaypoint();
// int8 CalculateHeadingToNextWaypoint();
// float CalculateDistanceToNextWaypoint();
void AssignWaypoints(int32 grid);
void SetWaypointPause();
void UpdateWaypoint(int wp_index);
// quest wandering commands
void StopWandering();
void ResumeWandering();
void PauseWandering(int pausetime);
void MoveTo(float mtx, float mty, float mtz, float mth, bool saveguardspot);
void NextGuardPosition();
void SaveGuardSpot(bool iClearGuardSpot = false);
inline bool IsGuarding() const { return(guard_heading != 0); }
void AI_SetRoambox(float iDist, float iMaxX, float iMinX, float iMaxY, float iMinY, int32 iDelay = 2500);
const int32& GetNPCSpellsID();

View File

@ -1,39 +0,0 @@
/* 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 "features.h"
#ifdef EMBPERL_XS_CLASSES
#include "../common/debug.h"
#include "embperl.h"
typedef const char Const_char;
#include "npc.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = NPC PACKAGE = NPC
PROTOTYPES: ENABLE

View File

@ -1,28 +0,0 @@
PerlPacket *
PerlPacket::new(const char *opcode = "OP_Unknown", uint32 len = 0);
void DESTROY();
bool SetOpcode(const char *opcode);
void Resize(uint32 len);
//sending functions
void SendTo(Client *who);
void SendToAll();
//editing
void Zero();
void FromArray(int *numbers, uint32 length);
void SetByte(uint32 pos, uint8 val);
void SetShort(uint32 pos, uint16 val);
void SetLong(uint32 pos, uint32 val);
void SetFloat(uint32 pos, float val);
void SetString(uint32 pos, char *str);
void SetEQ1319(uint32 pos, float part13, float part19);
void SetEQ1913(uint32 pos, float part19, float part13);
//reading
uint8 GetByte(uint32 pos);
uint16 GetShort(uint32 pos);
uint32 GetLong(uint32 pos);
float GetFloat(uint32 pos);

View File

@ -1,36 +0,0 @@
/* 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 "features.h"
#ifdef EMBPERL_XS_CLASSES
#include "../common/debug.h"
#include "embperl.h"
#include "perlpacket.h"
#ifdef THIS /* this macro seems to leak out on some systems */
#undef THIS
#endif
MODULE = PerlPacket PACKAGE = PerlPacket
PROTOTYPES: ENABLE

View File

@ -1,10 +0,0 @@
#!/bin/sh
cp perl_PlayerCorpse.cpp perl_client.cpp perl_entity.cpp perl_groups.cpp \
perl_mob.cpp perl_npc.cpp perl_perlpacket.cpp \
../../zone/
cp perl_EQW.cpp perl_HTTPRequest.cpp perl_EQLConfig.cpp ../../world/
cp perl_EQDB.cpp perl_EQDBRes.cpp ../../common/