[Quest API] Use binding library for perl apis (#2216)

* Add perlbind library

* Convert perl apis to perlbind
This commit is contained in:
hg
2022-07-03 22:33:45 -04:00
committed by GitHub
parent 2829d21057
commit 7e8a24fcec
50 changed files with 14324 additions and 31962 deletions
+48 -68
View File
@@ -33,6 +33,31 @@
extern Zone *zone;
#ifdef EMBPERL_XS
void perl_register_quest();
#ifdef EMBPERL_XS_CLASSES
void perl_register_mob();
void perl_register_npc();
void perl_register_client();
void perl_register_corpse();
void perl_register_entitylist();
void perl_register_perlpacket();
void perl_register_group();
void perl_register_raid();
void perl_register_inventory();
void perl_register_questitem();
void perl_register_spell();
void perl_register_hateentry();
void perl_register_object();
void perl_register_doors();
void perl_register_expedition();
void perl_register_expedition_lock_messages();
#ifdef BOTS
void perl_register_bot();
#endif // BOTS
#endif // EMBPERL_XS_CLASSES
#endif // EMBPERL_XS
const char *QuestEventSubroutines[_LargestEventID] = {
"EVENT_SAY",
"EVENT_ITEM",
@@ -804,7 +829,7 @@ int PerlembParser::SendCommands(
perl->eval(cmd.c_str());
#ifdef EMBPERL_XS_CLASSES
dTHX;
{
std::string cl = (std::string) "$" + (std::string) pkgprefix + (std::string) "::client";
std::string np = (std::string) "$" + (std::string) pkgprefix + (std::string) "::npc";
@@ -946,76 +971,31 @@ int PerlembParser::SendCommands(
void PerlembParser::MapFunctions()
{
dTHX;
_empty_sv = newSV(0);
perl->eval(
"{"
"package quest;"
"&boot_quest;" //load our quest XS
#ifdef EMBPERL_XS_CLASSES
"package Mob;"
"&boot_Mob;" //load our Mob XS
"package Client;"
"our @ISA = qw(Mob);" //client inherits mob.
"&boot_Mob;" //load our Mob XS
"&boot_Client;" //load our Client XS
"package NPC;"
"our @ISA = qw(Mob);" //NPC inherits mob.
"&boot_Mob;" //load our Mob XS
"&boot_NPC;" //load our NPC XS
"package Corpse;"
"our @ISA = qw(Mob);" //Corpse inherits mob.
"&boot_Mob;" //load our Mob XS
"&boot_Corpse;" //load our Mob XS
"package EntityList;"
"&boot_EntityList;" //load our EntityList XS
"package PerlPacket;"
"&boot_PerlPacket;" //load our PerlPacket XS
"package Group;"
"&boot_Group;" //load our Group XS
"package Raid;"
"&boot_Raid;" //load our Raid XS
"package Inventory;"
"&boot_Inventory;" // load inventory XS
"package QuestItem;"
"&boot_QuestItem;" // load quest Item XS
"package Spell;"
"&boot_Spell;" // load quest Spell XS
"package HateEntry;"
"&boot_HateEntry;" // load quest Hate XS
"package Object;"
"&boot_Object;" // load quest Object XS
"package Doors;"
"&boot_Doors;" // load quest Doors XS
"package Expedition;"
"&boot_Expedition;"
perl_register_quest();
#ifdef EMBPERL_XS_CLASSES
perl_register_mob();
perl_register_npc();
perl_register_client();
perl_register_corpse();
perl_register_entitylist();
perl_register_perlpacket();
perl_register_group();
perl_register_raid();
perl_register_inventory();
perl_register_questitem();
perl_register_spell();
perl_register_hateentry();
perl_register_object();
perl_register_doors();
perl_register_expedition();
perl_register_expedition_lock_messages();
#ifdef BOTS
"package Bot;"
"our @ISA = qw(NPC);" // Bot inherits NPC
"&boot_Mob;" // load our Mob XS
"&boot_NPC;" // load our NPC XS
"&boot_Bot;" // load our Bot XS
#endif
#endif
"package main;"
"}"
);
perl_register_bot();
#endif // BOTS
#endif // EMBPERL_XS_CLASSES
}
void PerlembParser::GetQuestTypes(