From 0b3c489028e51687eb84d361f1297ec281dbe4b6 Mon Sep 17 00:00:00 2001 From: Kinglykrab Date: Wed, 25 Sep 2019 20:07:32 -0400 Subject: [PATCH] Exported MerchantCloseShop() and MerchantOpenShop() to Perl. --- zone/perl_npc.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/zone/perl_npc.cpp b/zone/perl_npc.cpp index 97dc889e1..2dae9e776 100644 --- a/zone/perl_npc.cpp +++ b/zone/perl_npc.cpp @@ -2163,6 +2163,48 @@ XS(XS_NPC_GetScore) { XSRETURN(1); } +XS(XS_NPC_MerchantOpenShop); +XS(XS_NPC_MerchantOpenShop) { + dXSARGS; + if (items != 1) + Perl_croak(aTHX_ "Usage: NPC::MerchantOpenShop(THIS)"); + { + NPC *THIS; + dXSTARG; + if (sv_derived_from(ST(0), "NPC")) { + IV tmp = SvIV((SV *) SvRV(ST(0))); + THIS = INT2PTR(NPC *, tmp); + } else + Perl_croak(aTHX_ "THIS is not of type NPC"); + if (THIS == nullptr) + Perl_croak(aTHX_ "THIS is nullptr, avoiding crash."); + + THIS->MerchantOpenShop(); + } + XSRETURN_EMPTY; +} + +XS(XS_NPC_MerchantCloseShop); +XS(XS_NPC_MerchantCloseShop) { + dXSARGS; + if (items != 1) + Perl_croak(aTHX_ "Usage: NPC::MerchantCloseShop(THIS)"); + { + NPC *THIS; + dXSTARG; + if (sv_derived_from(ST(0), "NPC")) { + IV tmp = SvIV((SV *) SvRV(ST(0))); + THIS = INT2PTR(NPC *, tmp); + } else + Perl_croak(aTHX_ "THIS is not of type NPC"); + if (THIS == nullptr) + Perl_croak(aTHX_ "THIS is nullptr, avoiding crash."); + + THIS->MerchantCloseShop(); + } + XSRETURN_EMPTY; +} + XS(XS_NPC_AddMeleeProc); XS(XS_NPC_AddMeleeProc) { dXSARGS; @@ -2511,6 +2553,8 @@ XS(boot_NPC) { newXSproto(strcpy(buf, "GetAvoidanceRating"), XS_NPC_GetAvoidanceRating, file, "$"); newXSproto(strcpy(buf, "GetSpawnKillCount"), XS_NPC_GetSpawnKillCount, file, "$"); newXSproto(strcpy(buf, "GetScore"), XS_NPC_GetScore, file, "$"); + newXSproto(strcpy(buf, "MerchantOpenShop"), XS_NPC_MerchantOpenShop, file, "$"); + newXSproto(strcpy(buf, "MerchantCloseShop"), XS_NPC_MerchantCloseShop, file, "$"); newXSproto(strcpy(buf, "AddMeleeProc"), XS_NPC_AddMeleeProc, file, "$$$"); newXSproto(strcpy(buf, "AddRangedProc"), XS_NPC_AddRangedProc, file, "$$$"); newXSproto(strcpy(buf, "AddDefensiveProc"), XS_NPC_AddDefensiveProc, file, "$$$");