/* EQEMu: Everquest Server Emulator Copyright (C) 2001-2006 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 //#ifdef EMBPERL_XS // //#include "../common/debug.h" //#include "perlparser.h" //#include "questmgr.h" //#include "embxs.h" //#include "entity.h" //#include "../common/MiscFunctions.h" //#include "zone.h" //extern Zone* zone; // ///* // //Some useful perl API info: // //SvUV == string to unsigned value (char->ulong) //SvIV == string to signed value (char->long) //SvNV == string to real value (float,double) //SvPV_nolen == string with no length restriction // // //*/ // //PerlXSParser::PerlXSParser() : PerlembParser() { // //we cannot rely on PerlembParser to call the right map_funs because // //our virtual table is not set up until after we call them, so we need to move // //the call to ReloadQuests out of the constructor. //} // //void PerlXSParser::map_funs() { // _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 QuestItem;" // "&boot_QuestItem;" // load quest Item 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 // //#endif // "package main;" // "}" // );//eval //} // //void PerlXSParser::SendCommands(const char * pkgprefix, const char *event, uint32 npcid, Mob* other, Mob* mob, ItemInst* iteminst) //{ // if(!perl) // return; // _ZP(PerlXSParser_SendCommands); // // if(mob && mob->IsClient()) // quest_manager.StartQuest(other, mob->CastToClient(), iteminst); // else // quest_manager.StartQuest(other, nullptr, nullptr); // // try { // // std::string cmd = "package " + (std::string)(pkgprefix) + (std::string)(";"); // perl->eval(cmd.c_str()); // //#ifdef EMBPERL_XS_CLASSES // char namebuf[64]; // // //init a couple special vars: client, npc, entity_list // Client *curc = quest_manager.GetInitiator(); // snprintf(namebuf, 64, "%s::client", pkgprefix); // SV *client = get_sv(namebuf, true); // if(curc != nullptr) { // sv_setref_pv(client, "Client", curc); // } else { // //clear out the value, mainly to get rid of blessedness // sv_setsv(client, _empty_sv); // } // // //only export NPC if it's a npc quest // if(!other->IsClient()){ // NPC *curn = quest_manager.GetNPC(); // snprintf(namebuf, 64, "%s::npc", pkgprefix); // SV *npc = get_sv(namebuf, true); // sv_setref_pv(npc, "NPC", curn); // } // // //only export QuestItem if it's an item quest // if(iteminst) { // ItemInst* curi = quest_manager.GetQuestItem(); // snprintf(namebuf, 64, "%s::questitem", pkgprefix); // SV *questitem = get_sv(namebuf, true); // sv_setref_pv(questitem, "QuestItem", curi); // } // // snprintf(namebuf, 64, "%s::entity_list", pkgprefix); // SV *el = get_sv(namebuf, true); // sv_setref_pv(el, "EntityList", &entity_list); //#endif // // //now call the requested sub // perl->dosub(std::string(pkgprefix).append("::").append(event).c_str()); // //#ifdef EMBPERL_XS_CLASSES // std::string eval_str = (std::string)"$" + (std::string)pkgprefix + (std::string)"::client = undef;"; // eval_str += (std::string)"$" + (std::string)pkgprefix + (std::string)"::npc = undef;"; // eval_str += (std::string)"$" + (std::string)pkgprefix + (std::string)"::questitem = undef;"; // eval_str += (std::string)"$" + (std::string)pkgprefix + (std::string)"::entity_list = undef;"; // perl->eval(eval_str.c_str()); //#endif // // } catch(const char * err) { // // //try to reduce some of the console spam... // //todo: tweak this to be more accurate at deciding what to filter (we don't want to gag legit errors) // if(!strstr(err,"Undefined subroutine")) // LogFile->write(EQEMuLog::Status, "Script error: %s::%s - %s", pkgprefix, event, err); // } // // quest_manager.EndQuest(); //} // // //#ifdef EMBPERL_XS_CLASSES // ////Any creation of new Client objects gets the current quest Client //XS(XS_Client_new); //XS(XS_Client_new) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: Client::new()"); // { // Client * RETVAL; // // RETVAL = quest_manager.GetInitiator(); // ST(0) = sv_newmortal(); // if(RETVAL) // sv_setref_pv(ST(0), "Client", (void*)RETVAL); // } // XSRETURN(1); //} // ////Any creation of new NPC objects gets the current quest NPC //XS(XS_NPC_new); //XS(XS_NPC_new) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: NPC::new()"); // { // NPC * RETVAL; // // RETVAL = quest_manager.GetNPC(); // ST(0) = sv_newmortal(); // if(RETVAL) // sv_setref_pv(ST(0), "NPC", (void*)RETVAL); // } // XSRETURN(1); //} // ////Any creation of new NPC objects gets the current quest NPC //XS(XS_EntityList_new); //XS(XS_EntityList_new) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: EntityList::new()"); // { // EntityList * RETVAL; // // RETVAL = &entity_list; // ST(0) = sv_newmortal(); // if(RETVAL) // sv_setref_pv(ST(0), "EntityList", (void*)RETVAL); // } // XSRETURN(1); //} // ////Any creation of new quest items gets the current quest item //XS(XS_QuestItem_new); //XS(XS_QuestItem_new) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: QuestItem::new()"); // // ItemInst* RETVAL; // // RETVAL = quest_manager.GetQuestItem(); // ST(0) = sv_newmortal(); // if(RETVAL) // sv_setref_pv(ST(0), "QuestItem", (void*)RETVAL); // // XSRETURN(1); //} // ////Any creation of new quest items gets the current quest item //XS(XS_MobList_new); //XS(XS_MobList_new) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: MobList::new()"); // // ListElement* RETVAL; // // RETVAL = nullptr; // ST(0) = sv_newmortal(); // if(RETVAL) // sv_setref_pv(ST(0), "MobList", (void*)RETVAL); // // XSRETURN(1); //} // //#endif //EMBPERL_XS_CLASSES // // //XS(XS__echo); // prototype to pass -Wmissing-prototypes //XS(XS__echo) { // dXSARGS; // // if (items != 2) // Perl_croak(aTHX_ "Usage: echo(id#, str)"); // // quest_manager.echo(SvUV(ST(0)), SvPV_nolen(ST(1))); // // XSRETURN_EMPTY; //} // //XS(XS__say); // prototype to pass -Wmissing-prototypes //XS(XS__say) { // dXSARGS; // // if (items == 1) // quest_manager.say(SvPV_nolen(ST(0))); // else if (items == 2) // quest_manager.say(SvPV_nolen(ST(0)), (int)SvIV(ST(1))); // else // Perl_croak(aTHX_ "Usage: say(str [, language])"); // // XSRETURN_EMPTY; //} // //XS(XS__me); // prototype to pass -Wmissing-prototypes //XS(XS__me) { // dXSARGS; // // if (items != 1) // Perl_croak(aTHX_ "Usage: %s(str)", "me"); // // quest_manager.me(SvPV_nolen(ST(0))); // // XSRETURN_EMPTY; //} // //XS(XS__summonitem); // prototype to pass -Wmissing-prototypes //XS(XS__summonitem) //{ // dXSARGS; // if (items == 1) // quest_manager.summonitem(SvUV(ST(0))); // else if(items == 2) // quest_manager.summonitem(SvUV(ST(0)), SvUV(ST(1))); // else // Perl_croak(aTHX_ "Usage: summonitem(itemid, [charges])"); // XSRETURN_EMPTY; //} // //XS(XS__write); //XS(XS__write) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: write(file, str)"); // // char * file = (char *)SvPV_nolen(ST(0)); // char * str = (char *)SvPV_nolen(ST(1)); // // quest_manager.write(file, str); // // XSRETURN_EMPTY; //} // //XS(XS__spawn); //XS(XS__spawn) //{ // dXSARGS; // if (items != 6) // Perl_croak(aTHX_ "Usage: spawn(npc_type, grid, unused, x, y, z)"); // // uint16 RETVAL; // dXSTARG; // // int npc_type = (int)SvIV(ST(0)); // int grid = (int)SvIV(ST(1)); // int unused = (int)SvIV(ST(2)); // float x = (float)SvNV(ST(3)); // float y = (float)SvNV(ST(4)); // float z = (float)SvNV(ST(5)); // // RETVAL = quest_manager.spawn2(npc_type, grid, unused, x, y, z, 0); // XSprePUSH; PUSHu((UV)RETVAL); // // XSRETURN(1); //} // //XS(XS__spawn2); //XS(XS__spawn2) //{ // dXSARGS; // if (items != 7) // Perl_croak(aTHX_ "Usage: spawn2(npc_type, grid, unused, x, y, z, heading)"); // // uint16 RETVAL; // dXSTARG; // // int npc_type = (int)SvIV(ST(0)); // int grid = (int)SvIV(ST(1)); // int unused = (int)SvIV(ST(2)); // float x = (float)SvNV(ST(3)); // float y = (float)SvNV(ST(4)); // float z = (float)SvNV(ST(5)); // float heading = (float)SvNV(ST(6)); // // RETVAL = quest_manager.spawn2(npc_type, grid, unused, x, y, z, heading); // XSprePUSH; PUSHu((UV)RETVAL); // // XSRETURN(1); //} // //XS(XS__unique_spawn); //XS(XS__unique_spawn) //{ // dXSARGS; // if (items != 6 && items != 7) // Perl_croak(aTHX_ "Usage: unique_spawn(npc_type, grid, unused, x, y, z, [heading])"); // // uint16 RETVAL; // dXSTARG; // // int npc_type = (int)SvIV(ST(0)); // int grid = (int)SvIV(ST(1)); // int unused = (int)SvIV(ST(2)); // float x = (float)SvNV(ST(3)); // float y = (float)SvNV(ST(4)); // float z = (float)SvNV(ST(5)); // float heading = 0; // if(items == 7) // heading = (float)SvNV(ST(6)); // // RETVAL = quest_manager.unique_spawn(npc_type, grid, unused, x, y, z, heading); // XSprePUSH; PUSHu((UV)RETVAL); // // XSRETURN(1); //} // //XS(XS__spawn_from_spawn2); //XS(XS__spawn_from_spawn2) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: spawn_from_spawn2(spawn2_id)"); // // uint16 RETVAL; // dXSTARG; // // int spawn2_id = (int)SvIV(ST(0)); // // RETVAL = quest_manager.spawn_from_spawn2(spawn2_id); // XSprePUSH; PUSHu((UV)RETVAL); // // XSRETURN(1); //} // //XS(XS__enable_spawn2); //XS(XS__enable_spawn2) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: enable_spawn2(spawn2_id)"); // // int spawn2_id = (int)SvIV(ST(0)); // // quest_manager.enable_spawn2(spawn2_id); // XSRETURN_EMPTY; //} // //XS(XS__disable_spawn2); //XS(XS__disable_spawn2) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: disable_spawn2(spawn2_id)"); // // int spawn2_id = (int)SvIV(ST(0)); // // quest_manager.disable_spawn2(spawn2_id); // XSRETURN_EMPTY; //} // //XS(XS__setstat); //XS(XS__setstat) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: setstat(stat, value)"); // // int stat = (int)SvIV(ST(0)); // int value = (int)SvIV(ST(1)); // // quest_manager.setstat(stat, value); // // XSRETURN_EMPTY; //} // //XS(XS__incstat); //old setstat command aza //XS(XS__incstat) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: incstat(stat, value)"); // // int stat = (int)SvIV(ST(0)); // int value = (int)SvIV(ST(1)); // // quest_manager.incstat(stat, value); // // XSRETURN_EMPTY; //} // //XS(XS__castspell); //XS(XS__castspell) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: castspell(spell_id, target_id)"); // // int spell_id = (int)SvIV(ST(0)); // int target_id = (int)SvIV(ST(1)); // // quest_manager.castspell(spell_id, target_id); // // XSRETURN_EMPTY; //} // //XS(XS__selfcast); //XS(XS__selfcast) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: selfcast(spell_id)"); // // int spell_id = (int)SvIV(ST(0)); // // quest_manager.selfcast(spell_id); // // XSRETURN_EMPTY; //} // //XS(XS__addloot); //XS(XS__addloot) //{ // dXSARGS; // if(items < 1 || items > 3) // Perl_croak(aTHX_ "Usage: addloot(item_id, charges = 0, equipitem = true)"); // // uint32 itemid = (uint32)SvUV(ST(0)); // uint16 charges = 0; // bool equipitem = true; // // if (items > 1) // charges = (uint16)SvUV(ST(1)); // if (items > 2) // equipitem = (bool)SvTRUE(ST(2)); // // quest_manager.addloot(itemid, charges, equipitem); // // XSRETURN_EMPTY; //} // //XS(XS__zone); //XS(XS__zone) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: zone(zone_name)"); // // char * zone_name = (char *)SvPV_nolen(ST(0)); // // quest_manager.Zone(zone_name); // // XSRETURN_EMPTY; //} // //XS(XS__settimer); //XS(XS__settimer) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: settimer(timer_name, seconds)"); // // char * timer_name = (char *)SvPV_nolen(ST(0)); // int seconds = (int)SvIV(ST(1)); // // quest_manager.settimer(timer_name, seconds); // // XSRETURN_EMPTY; //} // //XS(XS__settimerMS); //XS(XS__settimerMS) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: settimerMS(timer_name, milliseconds)"); // // char * timer_name = (char *)SvPV_nolen(ST(0)); // int milliseconds = (int)SvIV(ST(1)); // // quest_manager.settimerMS(timer_name, milliseconds); // // XSRETURN_EMPTY; //} // //XS(XS__stoptimer); //XS(XS__stoptimer) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: stoptimer(timer_name)"); // // char * timer_name = (char *)SvPV_nolen(ST(0)); // // quest_manager.stoptimer(timer_name); // // XSRETURN_EMPTY; //} // //XS(XS__stopalltimers); //XS(XS__stopalltimers) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: stopalltimers()"); // // quest_manager.stopalltimers(); // // XSRETURN_EMPTY; //} // //XS(XS__emote); //XS(XS__emote) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: emote(str)"); // // char * str = (char *)SvPV_nolen(ST(0)); // // quest_manager.emote(str); // // XSRETURN_EMPTY; //} // //XS(XS__shout); //XS(XS__shout) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: shout(str)"); // // char * str = (char *)SvPV_nolen(ST(0)); // // quest_manager.shout(str); // // XSRETURN_EMPTY; //} // //XS(XS__shout2); //XS(XS__shout2) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: shout2(str)"); // // char * str = (char *)SvPV_nolen(ST(0)); // // quest_manager.shout2(str); // // XSRETURN_EMPTY; //} // //XS(XS__gmsay); //XS(XS__gmsay) //{ // dXSARGS; // if ((items < 1) || (items > 5)) // Perl_croak(aTHX_ "Usage: gmsay(str, color, send_to_world?)"); // // char * str = (char *)SvPV_nolen(ST(0)); // int color = 7; // bool send_to_world = 0; // uint32 to_guilddbid = 0; // uint16 to_minstatus = 80; // // if (items > 1) { // color = (int)SvIV(ST(1)); // } // // if (items > 2) { // send_to_world = ((int)SvIV(ST(2))) == 0?false:true; // } // // if (items > 3) // to_guilddbid = (int)SvUV(ST(3)); // // if (items > 4) // to_minstatus = (int)SvUV(ST(4)); // // quest_manager.gmsay(str, color, send_to_world, to_guilddbid, to_minstatus); // // XSRETURN_EMPTY; //} // //XS(XS__depop); //XS(XS__depop) //{ // dXSARGS; // if (items < 0 || items > 1) // Perl_croak(aTHX_ "Usage: depop(npc_type= 0)"); // // int npc_type; // // if (items < 1) // npc_type = 0; // else // npc_type = (int)SvIV(ST(0)); // // // quest_manager.depop(npc_type); // // XSRETURN_EMPTY; //} // //XS(XS__depop_withtimer); //XS(XS__depop_withtimer) //{ // dXSARGS; // if (items < 0 || items > 1) // Perl_croak(aTHX_ "Usage: depop_withtimer(npc_type= 0)"); // // int npc_type; // // if (items < 1) // npc_type = 0; // else // npc_type = (int)SvIV(ST(0)); // // // quest_manager.depop_withtimer(npc_type); // // XSRETURN_EMPTY; //} // //XS(XS__depopall); //XS(XS__depopall) //{ // dXSARGS; // if (items < 0 || items > 1) // Perl_croak(aTHX_ "Usage: depopall(npc_type= 0)"); // // int npc_type; // // if (items < 1) // npc_type = 0; // else // npc_type = (int)SvIV(ST(0)); // // // quest_manager.depopall(npc_type); // // XSRETURN_EMPTY; //} // //XS(XS__settarget); //XS(XS__settarget) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: settarget(type, target_id)"); // // char * type = (char *)SvPV_nolen(ST(0)); // int target_id = (int)SvIV(ST(1)); // // quest_manager.settarget(type, target_id); // // XSRETURN_EMPTY; //} // //XS(XS__follow); //XS(XS__follow) //{ // dXSARGS; // if (items != 1 && items != 2) // Perl_croak(aTHX_ "Usage: follow(entity_id, [distance])"); // // int entity_id = (int)SvIV(ST(0)); // int distance; // // if (items == 2) // distance = (int)SvIV(ST(1)); // else // distance = 10; // // quest_manager.follow(entity_id, distance); // // XSRETURN_EMPTY; //} // //XS(XS__sfollow); //XS(XS__sfollow) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: sfollow()"); // // // quest_manager.sfollow(); // // XSRETURN_EMPTY; //} // //XS(XS__changedeity); //XS(XS__changedeity) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: changedeity(diety_id)"); // // int diety_id = (int)SvIV(ST(0)); // // quest_manager.changedeity(diety_id); // // XSRETURN_EMPTY; //} // //XS(XS__exp); //XS(XS__exp) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: exp(amt)"); // // int amt = (int)SvIV(ST(0)); // // quest_manager.exp(amt); // // XSRETURN_EMPTY; //} // //XS(XS__level); //XS(XS__level) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: level(newlevel)"); // // int newlevel = (int)SvIV(ST(0)); // // quest_manager.level(newlevel); // // XSRETURN_EMPTY; //} // //XS(XS__traindisc); //XS(XS__traindisc) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: traindisc(discipline_tome_item_id)"); // // int discipline_tome_item_id = (int)SvIV(ST(0)); // // quest_manager.traindisc(discipline_tome_item_id); // // XSRETURN_EMPTY; //} // //XS(XS__isdisctome); //XS(XS__isdisctome) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: isdisctome(item_id)"); // // bool RETVAL; // int item_id = (int)SvIV(ST(0)); // // RETVAL = quest_manager.isdisctome(item_id); // // ST(0) = boolSV(RETVAL); // sv_2mortal(ST(0)); // XSRETURN(1); //} // //XS(XS__safemove); //XS(XS__safemove) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: safemove()"); // // // quest_manager.safemove(); // // XSRETURN_EMPTY; //} // //XS(XS__rain); //XS(XS__rain) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: rain(weather)"); // // int weather = (int)SvIV(ST(0)); // // quest_manager.rain(weather); // // XSRETURN_EMPTY; //} // //XS(XS__snow); //XS(XS__snow) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: snow(weather)"); // // int weather = (int)SvIV(ST(0)); // // quest_manager.snow(weather); // // XSRETURN_EMPTY; //} // //XS(XS__surname); //XS(XS__surname) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: surname(name)"); // // char * name = (char *)SvPV_nolen(ST(0)); // // quest_manager.surname(name); // // XSRETURN_EMPTY; //} // //XS(XS__permaclass); //XS(XS__permaclass) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: permaclass(class_id)"); // // int class_id = (int)SvIV(ST(0)); // // quest_manager.permaclass(class_id); // // XSRETURN_EMPTY; //} // //XS(XS__permarace); //XS(XS__permarace) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: permarace(race_id)"); // // int race_id = (int)SvIV(ST(0)); // // quest_manager.permarace(race_id); // // XSRETURN_EMPTY; //} // //XS(XS__permagender); //XS(XS__permagender) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: permagender(gender_id)"); // // int gender_id = (int)SvIV(ST(0)); // // quest_manager.permagender(gender_id); // // XSRETURN_EMPTY; //} // //XS(XS__scribespells); //XS(XS__scribespells) //{ // dXSARGS; // if (items < 1) // Perl_croak(aTHX_ "Usage: scribespells(max_level, min_level = 1)"); // // uint16 RETVAL; // dXSTARG; // // uint8 max_level = (uint8)SvIV(ST(0)); // uint8 min_level = (uint8)SvIV(ST(1)); // // if (min_level) // RETVAL = quest_manager.scribespells(max_level, min_level); // else // RETVAL = quest_manager.scribespells(max_level); // // XSprePUSH; PUSHu((IV)RETVAL); // XSRETURN(1); //} // //XS(XS__traindiscs); //XS(XS__traindiscs) //{ // dXSARGS; // if (items < 1) // Perl_croak(aTHX_ "Usage: traindiscs(max_level, min_level = 1)"); // // uint16 RETVAL; // dXSTARG; // // uint8 max_level = (uint8)SvIV(ST(0)); // uint8 min_level = (uint8)SvIV(ST(1)); // // if (min_level) // RETVAL = quest_manager.traindiscs(max_level, min_level); // else // RETVAL = quest_manager.traindiscs(max_level); // // XSprePUSH; PUSHu((IV)RETVAL); // XSRETURN(1); //} // //XS(XS__unscribespells); //XS(XS__unscribespells) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: unscribespells()"); // // // quest_manager.unscribespells(); // // XSRETURN_EMPTY; //} // //XS(XS__untraindiscs); //XS(XS__untraindiscs) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: untraindiscs()"); // // // quest_manager.untraindiscs(); // // XSRETURN_EMPTY; //} // //XS(XS__givecash); //XS(XS__givecash) //{ // dXSARGS; // if (items != 4) // Perl_croak(aTHX_ "Usage: givecash(copper, silver, gold, platinum)"); // // int copper = (int)SvIV(ST(0)); // int silver = (int)SvIV(ST(1)); // int gold = (int)SvIV(ST(2)); // int platinum = (int)SvIV(ST(3)); // // quest_manager.givecash(copper, silver, gold, platinum); // // XSRETURN_EMPTY; //} // //XS(XS__pvp); //XS(XS__pvp) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: pvp(mode)"); // // char * mode = (char *)SvPV_nolen(ST(0)); // // quest_manager.pvp(mode); // // XSRETURN_EMPTY; //} // //XS(XS__movepc); //XS(XS__movepc) //{ // dXSARGS; // if (items != 4 && items != 5) // Perl_croak(aTHX_ "Usage: movepc(zone_id, x, y, z [,heading])"); // // int zoneid = (int)SvIV(ST(0)); // float x = (float)SvNV(ST(1)); // float y = (float)SvNV(ST(2)); // float z = (float)SvNV(ST(3)); // // if (items == 4) // // quest_manager.movepc(zoneid, x, y, z, 0.0f); // // else { // float heading = (float)SvNV(ST(4)); // quest_manager.movepc(zoneid, x, y, z, heading); // } // // XSRETURN_EMPTY; //} // //XS(XS__gmmove); //XS(XS__gmmove) //{ // dXSARGS; // if (items != 3) // Perl_croak(aTHX_ "Usage: gmmove(x, y, z)"); // // float x = (float)SvNV(ST(0)); // float y = (float)SvNV(ST(1)); // float z = (float)SvNV(ST(2)); // // quest_manager.gmmove(x, y, z); // // XSRETURN_EMPTY; //} // //XS(XS__movegrp); //XS(XS__movegrp) //{ // dXSARGS; // if (items != 4) // Perl_croak(aTHX_ "Usage: movegrp(zoneid, x, y, z)"); // // int zoneid = (int)SvIV(ST(0)); // float x = (float)SvNV(ST(1)); // float y = (float)SvNV(ST(2)); // float z = (float)SvNV(ST(3)); // // quest_manager.movegrp(zoneid, x, y, z); // // XSRETURN_EMPTY; //} // //XS(XS__doanim); //XS(XS__doanim) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: doanim(anim_id)"); // // int anim_id = (int)SvIV(ST(0)); // // quest_manager.doanim(anim_id); // // XSRETURN_EMPTY; //} // //XS(XS__addskill); //XS(XS__addskill) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: addskill(skill_id, value)"); // // int skill_id = (int)SvIV(ST(0)); // int value = (int)SvIV(ST(1)); // // quest_manager.addskill(skill_id, value); // // XSRETURN_EMPTY; //} // //XS(XS__setlanguage); //XS(XS__setlanguage) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: setlanguage(skill_id, value)"); // // int skill_id = (int)SvIV(ST(0)); // int value = (int)SvIV(ST(1)); // // quest_manager.setlanguage(skill_id, value); // // XSRETURN_EMPTY; //} // //XS(XS__setskill); //XS(XS__setskill) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: setskill(skill_id, value)"); // // int skill_id = (int)SvIV(ST(0)); // int value = (int)SvIV(ST(1)); // // quest_manager.setskill(skill_id, value); // // XSRETURN_EMPTY; //} // //XS(XS__setallskill); //XS(XS__setallskill) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: setallskill(value)"); // // int value = (int)SvIV(ST(0)); // // quest_manager.setallskill(value); // // XSRETURN_EMPTY; //} // //XS(XS__attack); //XS(XS__attack) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: attack(client_name)"); // // char * client_name = (char *)SvPV_nolen(ST(0)); // // quest_manager.attack(client_name); // // XSRETURN_EMPTY; //} // //XS(XS__attacknpc); //XS(XS__attacknpc) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: attacknpc(npc_entity_id)"); // // int npc_entity_id = (int)SvIV(ST(0)); // // quest_manager.attacknpc(npc_entity_id); // // XSRETURN_EMPTY; //} // //XS(XS__attacknpctype); //XS(XS__attacknpctype) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: attacknpctype(npc_type_id)"); // // int npc_type_id = (int)SvIV(ST(0)); // // quest_manager.attacknpctype(npc_type_id); // // XSRETURN_EMPTY; //} // //XS(XS__save); //XS(XS__save) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: save()"); // // // quest_manager.save(); // // XSRETURN_EMPTY; //} // //XS(XS__faction); //XS(XS__faction) //{ // dXSARGS; // if (items < 2 || items > 3) // Perl_croak(aTHX_ "Usage: faction(faction_id, faction_value, temp)"); // // int faction_id = (int)SvIV(ST(0)); // int faction_value = (int)SvIV(ST(1)); // int temp; // // if(items == 2) // temp = 0; // else // temp = (int)SvIV(ST(2)); // // quest_manager.faction(faction_id, faction_value, temp); // // XSRETURN_EMPTY; //} // //XS(XS__setsky); //XS(XS__setsky) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: setsky(new_sky)"); // // unsigned char new_sky = (unsigned char)SvUV(ST(0)); // // quest_manager.setsky(new_sky); // // XSRETURN_EMPTY; //} // //XS(XS__setguild); //XS(XS__setguild) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: setguild(new_guild_id, new_rank)"); // // unsigned long new_guild_id = (unsigned long)SvUV(ST(0)); // int new_rank = (int)SvIV(ST(1)); // // quest_manager.setguild(new_guild_id, new_rank); // // XSRETURN_EMPTY; //} // //XS(XS__createguild); //XS(XS__createguild) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: createguild(guild_name, leader)"); // // char * guild_name = (char *)SvPV_nolen(ST(0)); // char * leader = (char *)SvPV_nolen(ST(1)); // // quest_manager.CreateGuild(guild_name, leader); // // XSRETURN_EMPTY; //} // //XS(XS__settime); //XS(XS__settime) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: settime(new_hour, new_min)"); // // int new_hour = (int)SvIV(ST(0)); // int new_min = (int)SvIV(ST(1)); // // quest_manager.settime(new_hour, new_min); // // XSRETURN_EMPTY; //} // //XS(XS__itemlink); //XS(XS__itemlink) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: itemlink(item_id)"); // // int item_id = (int)SvIV(ST(0)); // // quest_manager.itemlink(item_id); // // XSRETURN_EMPTY; //} // //XS(XS__signalwith); //XS(XS__signalwith) //{ // dXSARGS; // // if (items == 2) { // int npc_id = (int)SvIV(ST(0)); // int signal_id = (int)SvIV(ST(1)); // quest_manager.signalwith(npc_id, signal_id); // } else if(items == 3) { // int npc_id = (int)SvIV(ST(0)); // int signal_id = (int)SvIV(ST(1)); // int wait = (int)SvIV(ST(2)); // quest_manager.signalwith(npc_id, signal_id, wait); // } else { // Perl_croak(aTHX_ "Usage: signalwith(npc_id,signal_id[,wait_ms])"); // } // // XSRETURN_EMPTY; //} // //XS(XS__signal); //XS(XS__signal) //{ // dXSARGS; // // if (items == 1) { // int npc_id = (int)SvIV(ST(0)); // quest_manager.signal(npc_id); // } else if(items == 2) { // int npc_id = (int)SvIV(ST(0)); // int wait = (int)SvIV(ST(1)); // quest_manager.signal(npc_id, wait); // } else { // Perl_croak(aTHX_ "Usage: signal(npc_id[,wait_ms])"); // } // // XSRETURN_EMPTY; //} // //XS(XS__setglobal); //XS(XS__setglobal) //{ // dXSARGS; // if (items != 4) // Perl_croak(aTHX_ "Usage: setglobal(varname, newvalue, options, duration)"); // // char * varname = (char *)SvPV_nolen(ST(0)); // char * newvalue = (char *)SvPV_nolen(ST(1)); // int options = (int)SvIV(ST(2)); // char * duration = (char *)SvPV_nolen(ST(3)); // // quest_manager.setglobal(varname, newvalue, options, duration); // // XSRETURN_EMPTY; //} // //XS(XS__targlobal); //XS(XS__targlobal) //{ // dXSARGS; // if (items != 6) // Perl_croak(aTHX_ "Usage: targlobal(varname, value, duration, npcid, charid, zoneid)"); // // char * varname = (char *)SvPV_nolen(ST(0)); // char * value = (char *)SvPV_nolen(ST(1)); // char * duration = (char *)SvPV_nolen(ST(2)); // int npcid = (int)SvIV(ST(3)); // int charid = (int)SvIV(ST(4)); // int zoneid = (int)SvIV(ST(5)); // // quest_manager.targlobal(varname, value, duration, npcid, charid, zoneid); // // XSRETURN_EMPTY; //} // //XS(XS__delglobal); //XS(XS__delglobal) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: delglobal(varname)"); // // char * varname = (char *)SvPV_nolen(ST(0)); // // quest_manager.delglobal(varname); // // XSRETURN_EMPTY; //} // //XS(XS__ding); //XS(XS__ding) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: ding()"); // // // quest_manager.ding(); // // XSRETURN_EMPTY; //} // //XS(XS__rebind); //XS(XS__rebind) //{ // dXSARGS; // if (items != 4) // Perl_croak(aTHX_ "Usage: rebind(zoneid, x, y, z)"); // // int zoneid = (int)SvIV(ST(0)); // float x = (float)SvNV(ST(1)); // float y = (float)SvNV(ST(2)); // float z = (float)SvNV(ST(3)); // // quest_manager.rebind(zoneid, x, y, z); // // XSRETURN_EMPTY; //} // //XS(XS__start); //XS(XS__start) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: start(wp)"); // // int wp = (int)SvIV(ST(0)); // // quest_manager.start(wp); // // XSRETURN_EMPTY; //} // //XS(XS__stop); //XS(XS__stop) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: stop()"); // // // quest_manager.stop(); // // XSRETURN_EMPTY; //} // //XS(XS__pause); //XS(XS__pause) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: pause(duration)"); // // int duration = (int)SvIV(ST(0)); // // quest_manager.pause(duration); // // XSRETURN_EMPTY; //} // //XS(XS__moveto); //XS(XS__moveto) //{ // dXSARGS; // if (items != 3 && items != 4 && items != 5) // Perl_croak(aTHX_ "Usage: moveto(x, y, z, [mth, saveguard?])"); // // float x = (float)SvNV(ST(0)); // float y = (float)SvNV(ST(1)); // float z = (float)SvNV(ST(2)); // float h; // bool saveguard; // // if(items > 3) // h = (float)SvNV(ST(3)); // else // h = 0; // // if(items > 4) // saveguard = (bool)SvTRUE(ST(4)); // else // saveguard = false; // // quest_manager.moveto(x, y, z, h, saveguard); // // XSRETURN_EMPTY; //} // //XS(XS__resume); //XS(XS__resume) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: resume()"); // // // quest_manager.resume(); // // XSRETURN_EMPTY; //} // //XS(XS__addldonpoints); //XS(XS__addldonpoints) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: addldonpoints(points, theme)"); // // long points = (long)SvIV(ST(0)); // unsigned long theme = (unsigned long)SvUV(ST(1)); // // quest_manager.addldonpoints(points, theme); // // XSRETURN_EMPTY; //} // //XS(XS__addldonwin); //XS(XS__addldonwin) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: addldonwin(wins, theme)"); // // long wins = (long)SvIV(ST(0)); // unsigned long theme = (unsigned long)SvUV(ST(1)); // // quest_manager.addldonwin(wins, theme); // // XSRETURN_EMPTY; //} // //XS(XS__addldonloss); //XS(XS__addldonloss) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: addldonloss(losses, theme)"); // // long losses = (long)SvIV(ST(0)); // unsigned long theme = (unsigned long)SvUV(ST(1)); // // quest_manager.addldonloss(losses, theme); // // XSRETURN_EMPTY; //} // //XS(XS__setnexthpevent); //XS(XS__setnexthpevent) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: setnexthpevent(at)"); // // int at = (int)SvIV(ST(0)); // // quest_manager.setnexthpevent(at); // // XSRETURN_EMPTY; //} // //XS(XS__setnextinchpevent); //XS(XS__setnextinchpevent) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: setnextinchpevent(at)"); // // int at = (int)SvIV(ST(0)); // // quest_manager.setnextinchpevent(at); // // XSRETURN_EMPTY; //} // //XS(XS__sethp); //XS(XS__sethp) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: sethp(percentage)"); // // int hpperc = (int)SvIV(ST(0)); // // quest_manager.sethp(hpperc); // // XSRETURN_EMPTY; //} // //XS(XS__respawn); //XS(XS__respawn) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: respawn(npc_type, grid)"); // // int npc_type = (int)SvIV(ST(0)); // int grid = (int)SvIV(ST(1)); // // quest_manager.respawn(npc_type, grid); // // XSRETURN_EMPTY; //} // //XS(XS__ChooseRandom); //XS(XS__ChooseRandom) //{ // dXSARGS; // if (items < 1) // Perl_croak(aTHX_ "Usage: ChooseRandom(... list ...)"); // // int index = MakeRandomInt(0, items-1); // // SV *tmp = ST(0); // ST(0) = ST(index); // ST(index) = tmp; // // XSRETURN(1); //return 1 element from the stack (ST(0)) //} // //XS(XS__set_proximity); //XS(XS__set_proximity) //{ // dXSARGS; // if (items != 4 && items != 6) // Perl_croak(aTHX_ "Usage: set_proximity(minx, maxx, miny, maxy [, minz, maxz])"); // // float minx = (float)SvNV(ST(0)); // float maxx = (float)SvNV(ST(1)); // float miny = (float)SvNV(ST(2)); // float maxy = (float)SvNV(ST(3)); // // if(items == 4) // quest_manager.set_proximity(minx, maxx, miny, maxy); // else { // float minz = (float)SvNV(ST(4)); // float maxz = (float)SvNV(ST(5)); // quest_manager.set_proximity(minx, maxx, miny, maxy, minz, maxz); // } // // XSRETURN_EMPTY; //} // //XS(XS__clear_proximity); //XS(XS__clear_proximity) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: clear_proximity()"); // // quest_manager.clear_proximity(); // // XSRETURN_EMPTY; //} // //XS(XS__setanim); //XS(XS__setanim) //Cisyouc: mob->setappearance() addition //{ // dXSARGS; // if(items != 2) // Perl_croak(aTHX_ "Usage: quest::setanim(npc_type, animnum);"); // // quest_manager.setanim(SvUV(ST(0)), SvUV(ST(1))); // // XSRETURN_EMPTY; //} // //XS(XS__showgrid); //XS(XS__showgrid) //{ // dXSARGS; // if(items != 1) // Perl_croak(aTHX_ "Usage: quest::showgrid(grid_id);"); // // quest_manager.showgrid(SvUV(ST(0))); // // XSRETURN_EMPTY; //} // //XS(XS__showpath); //XS(XS__showpath) //{ // dXSARGS; // if (items != 3) // Perl_croak(aTHX_ "Usage: showpath(x, y, z)"); // // float x = (float)SvNV(ST(0)); // float y = (float)SvNV(ST(1)); // float z = (float)SvNV(ST(2)); // // quest_manager.showpath(x, y, z); // // XSRETURN_EMPTY; //} // //XS(XS__pathto); //XS(XS__pathto) //{ // dXSARGS; // if (items != 3) // Perl_croak(aTHX_ "Usage: pathto(x, y, z)"); // // float x = (float)SvNV(ST(0)); // float y = (float)SvNV(ST(1)); // float z = (float)SvNV(ST(2)); // // quest_manager.pathto(x, y, z); // // XSRETURN_EMPTY; //} // //XS(XS__spawn_condition); //XS(XS__spawn_condition) //{ // dXSARGS; // if (items < 3 || items > 4) // Perl_croak(aTHX_ "Usage: spawn_condition(zone_short, [instance_id], condition_id, value)"); // // if(items == 3) // { // char * zone_short = (char *)SvPV_nolen(ST(0)); // uint16 cond_id = (int)SvUV(ST(1)); // int16 value = (int)SvIV(ST(2)); // // quest_manager.spawn_condition(zone_short, zone->GetInstanceID(), cond_id, value); // } // else // { // char * zone_short = (char *)SvPV_nolen(ST(0)); // uint32 instance_id = (int)SvUV(ST(1)); // uint16 cond_id = (int)SvUV(ST(2)); // int16 value = (int)SvIV(ST(3)); // // quest_manager.spawn_condition(zone_short, instance_id, cond_id, value); // } // XSRETURN_EMPTY; //} // //XS(XS__get_spawn_condition); //XS(XS__get_spawn_condition) //{ // dXSARGS; // if (items < 2 || items > 3) // Perl_croak(aTHX_ "Usage: get_spawn_condition(zone_short, [instance_id], condition_id)"); // // if(items == 2) // { // int16 RETVAL; // dXSTARG; // // char * zone_short = (char *)SvPV_nolen(ST(0)); // uint16 cond_id = (int)SvIV(ST(1)); // // RETVAL = quest_manager.get_spawn_condition(zone_short, zone->GetInstanceID(), cond_id); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); // } // else // { // int16 RETVAL; // dXSTARG; // // char * zone_short = (char *)SvPV_nolen(ST(0)); // uint16 instance_id = (int)SvIV(ST(1)); // uint16 cond_id = (int)SvIV(ST(2)); // // RETVAL = quest_manager.get_spawn_condition(zone_short, instance_id, cond_id); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); // } //} // //XS(XS__toggle_spawn_event); //XS(XS__toggle_spawn_event) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: toggle_spawn_event(event_id, enabled?, reset_base)"); // // uint32 event_id = (int)SvIV(ST(0)); // bool enabled = ((int)SvIV(ST(1))) == 0?false:true; // bool reset_base = ((int)SvIV(ST(1))) == 0?false:true; // // quest_manager.toggle_spawn_event(event_id, enabled, reset_base); // // XSRETURN_EMPTY; //} // //XS(XS__has_zone_flag); //XS(XS__has_zone_flag) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: has_zone_flag(zone_id)"); // // int16 RETVAL; // dXSTARG; // // uint32 zone_id = (int)SvIV(ST(0)); // // RETVAL = quest_manager.has_zone_flag(zone_id); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); // //} // //XS(XS__set_zone_flag); //XS(XS__set_zone_flag) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: set_zone_flag(zone_id)"); // // uint32 zone_id = (int)SvIV(ST(0)); // // quest_manager.set_zone_flag(zone_id); // // XSRETURN_EMPTY; //} // //XS(XS__clear_zone_flag); //XS(XS__clear_zone_flag) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: clear_zone_flag(zone_id)"); // // uint32 zone_id = (int)SvIV(ST(0)); // // quest_manager.clear_zone_flag(zone_id); // // XSRETURN_EMPTY; //} // //XS(XS__summonburriedplayercorpse); //XS(XS__summonburriedplayercorpse) //{ // dXSARGS; // if (items != 5) // Perl_croak(aTHX_ "Usage: summonburriedplayercorpse(char_id,dest_x,dest_y,dest_z,dest_heading)"); // // bool RETVAL; // uint32 char_id = (int)SvIV(ST(0)); // float dest_x = (float)SvIV(ST(1)); // float dest_y = (float)SvIV(ST(2)); // float dest_z = (float)SvIV(ST(3)); // float dest_heading = (float)SvIV(ST(4)); // // RETVAL = quest_manager.summonburriedplayercorpse(char_id, dest_x, dest_y, dest_z, dest_heading); // // ST(0) = boolSV(RETVAL); // sv_2mortal(ST(0)); // XSRETURN(1); //} // //XS(XS__summonallplayercorpses); //XS(XS__summonallplayercorpses) //{ // dXSARGS; // if (items != 5) // Perl_croak(aTHX_ "Usage: summonallplayercorpses(char_id,dest_x,dest_y,dest_z,dest_heading)"); // // bool RETVAL; // uint32 char_id = (int)SvIV(ST(0)); // float dest_x = (float)SvIV(ST(1)); // float dest_y = (float)SvIV(ST(2)); // float dest_z = (float)SvIV(ST(3)); // float dest_heading = (float)SvIV(ST(4)); // // RETVAL = quest_manager.summonallplayercorpses(char_id, dest_x, dest_y, dest_z, dest_heading); // // ST(0) = boolSV(RETVAL); // sv_2mortal(ST(0)); // XSRETURN(1); //} // //XS(XS__getplayerburriedcorpsecount); //XS(XS__getplayerburriedcorpsecount) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: getplayerburriedcorpsecount(char_id)"); // // uint32 RETVAL; // dXSTARG; // // uint32 char_id = (int)SvIV(ST(0)); // // RETVAL = quest_manager.getplayerburriedcorpsecount(char_id); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__buryplayercorpse); //XS(XS__buryplayercorpse) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: buryplayercorpse(char_id)"); // // uint32 RETVAL; // dXSTARG; // // uint32 char_id = (int)SvIV(ST(0)); // // RETVAL = quest_manager.buryplayercorpse(char_id); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__forcedooropen); //XS(XS__forcedooropen) //{ // dXSARGS; // if (items < 1 || items > 2) // Perl_croak(aTHX_ "Usage: forcedooropen(doorid [, altmode=0])"); // // if (items == 1) // { // uint32 did = (int)SvIV(ST(0)); // // quest_manager.forcedooropen(did, false); // // XSRETURN_EMPTY; // } // else // { // uint32 did = (int)SvIV(ST(0)); // bool am = (int)SvIV(ST(1)) == 0?false:true; // // quest_manager.forcedooropen(did, am); // // XSRETURN_EMPTY; // } //} // //XS(XS__forcedoorclose); //XS(XS__forcedoorclose) //{ // dXSARGS; // if (items < 1 || items > 2) // Perl_croak(aTHX_ "Usage: forcedoorclose(doorid [, altmode=0])"); // // if (items == 1) // { // uint32 did = (int)SvIV(ST(0)); // // quest_manager.forcedoorclose(did, false); // // XSRETURN_EMPTY; // } // else // { // uint32 did = (int)SvIV(ST(0)); // bool am = (int)SvIV(ST(1)) == 0?false:true; // // quest_manager.forcedoorclose(did, am); // // XSRETURN_EMPTY; // } //} // //XS(XS__toggledoorstate); //XS(XS__toggledoorstate) //{ // dXSARGS; // if (items !=1) // Perl_croak(aTHX_ "Usage: toggledoorstate(doorid)"); // // uint32 did = (int)SvIV(ST(0)); // // quest_manager.toggledoorstate(did); // // XSRETURN_EMPTY; //} // //XS(XS__isdooropen); //XS(XS__isdooropen) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: isdooropen(doorid)"); // // bool RETVAL; // dXSTARG; // // uint32 doorid = (int)SvIV(ST(0)); // // RETVAL = quest_manager.isdooropen(doorid); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__depopzone); //XS(XS__depopzone) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: depopzone(StartSpawnStatus)"); // // bool StartSpawnStatus = ((int)SvIV(ST(0))) == 0?false:true; // // quest_manager.depopzone(StartSpawnStatus); // // XSRETURN_EMPTY; //} // //XS(XS__repopzone); //XS(XS__repopzone) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: repopzone()"); // // quest_manager.repopzone(); // // XSRETURN_EMPTY; //} // //XS(XS__npcrace); //XS(XS__npcrace) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: npcrace(race_id)"); // // int race_id = (int)SvIV(ST(0)); // // quest_manager.npcrace(race_id); // // XSRETURN_EMPTY; //} // //XS(XS__npcgender); //XS(XS__npcgender) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: npcgender(gender_id)"); // // int gender_id= (int)SvIV(ST(0)); // // quest_manager.npcgender(gender_id); // // XSRETURN_EMPTY; //} // //XS(XS__npcsize); //XS(XS__npcsize) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: npcsize(newsize)"); // // int newsize = (int)SvIV(ST(0)); // // quest_manager.npcsize(newsize); // // XSRETURN_EMPTY; //} // //XS(XS__npctexture); //XS(XS__npctexture) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: npctexture(newtexture)"); // // int newtexture = (int)SvIV(ST(0)); // // quest_manager.npctexture(newtexture); // // XSRETURN_EMPTY; //} // //XS(XS__playerrace); //XS(XS__playerrace) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: playerrace(race_id)"); // // int race_id = (int)SvIV(ST(0)); // // quest_manager.playerrace(race_id); // // XSRETURN_EMPTY; //} // //XS(XS__playergender); //XS(XS__playergender) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: playergender(gender_id)"); // // int gender_id= (int)SvIV(ST(0)); // // quest_manager.playergender(gender_id); // // XSRETURN_EMPTY; //} // //XS(XS__playersize); //XS(XS__playersize) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: playersize(newsize)"); // // int newsize = (int)SvIV(ST(0)); // // quest_manager.playersize(newsize); // // XSRETURN_EMPTY; //} // //XS(XS__playertexture); //XS(XS__playertexture) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: playertexture(newtexture)"); // // int newtexture = (int)SvIV(ST(0)); // // quest_manager.playertexture(newtexture); // // XSRETURN_EMPTY; //} // //XS(XS__playerfeature); //XS(XS__playerfeature) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: playerfeature(feature, setting)"); // // char * feature = (char *)SvPV_nolen(ST(0)); // int setting = (int)SvIV(ST(1)); // // quest_manager.playerfeature(feature, setting); // // XSRETURN_EMPTY; //} // //XS(XS__npcfeature); //XS(XS__npcfeature) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: npcfeature(feature, setting)"); // // char * feature = (char *)SvPV_nolen(ST(0)); // int setting = (int)SvIV(ST(1)); // // quest_manager.npcfeature(feature, setting); // // XSRETURN_EMPTY; //} // //#ifdef BOTS // //XS(XS__createbotcount); //XS(XS__createbotcount) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // RETVAL = quest_manager.createbotcount(); // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__spawnbotcount); //XS(XS__spawnbotcount) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // RETVAL = quest_manager.spawnbotcount(); // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__botquest); //XS(XS__botquest) //{ // dXSARGS; // bool RETVAL; // dXSTARG; // // RETVAL = quest_manager.botquest(); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__createBot); //XS(XS__createBot) //{ // dXSARGS; // bool RETVAL; // dXSTARG; // // if(items != 6) // { // Perl_croak(aTHX_ "Usage: createBot(firstname, lastname, level, race, class, gender)"); // } // // char *firstname = (char *)SvPV_nolen(ST(0)); // char *lastname = (char *)SvPV_nolen(ST(1)); // int level = (int) SvIV(ST(2)); // int race = (int) SvIV(ST(3)); // int botclass = (int) SvIV(ST(4)); // int gender = (int) SvIV(ST(5)); // // RETVAL = quest_manager.createBot(firstname, lastname, level, race, botclass, gender); // XSprePUSH; PUSHu((IV)RETVAL); // XSRETURN(1); //} // //#endif //BOTS // //XS(XS__taskselector); //XS(XS__taskselector) //{ // dXSARGS; // if((items >= 1) && (items <=MAXCHOOSERENTRIES)) { // int tasks[MAXCHOOSERENTRIES]; // for(int i=0; i< items; i++) { // tasks[i] = (int)SvIV(ST(i)); // } // quest_manager.taskselector(items, tasks); // } else { // Perl_croak(aTHX_ "Usage: taskselector(taskid1, taskid2, ..., taskid%i)", MAXCHOOSERENTRIES); // } // // XSRETURN_EMPTY; //} //XS(XS__tasksetselector); //XS(XS__tasksetselector) //{ // dXSARGS; // if(items == 1) { // int tasksetid = (int)SvIV(ST(0)); // quest_manager.tasksetselector(tasksetid); // } else { // Perl_croak(aTHX_ "Usage: tasksetselector(tasksetid)"); // } // // XSRETURN_EMPTY; //} //XS(XS__enabletask); //XS(XS__enabletask) //{ // dXSARGS; // if((items >= 1) && (items <=10)) { // int tasks[10]; // for(int i=0; i< items; i++) { // tasks[i] = (int)SvIV(ST(i)); // } // quest_manager.enabletask(items, tasks); // } else { // Perl_croak(aTHX_ "Usage: enabletask(taskid1, taskid2, ..., taskid10"); // } // // XSRETURN_EMPTY; //} //XS(XS__disabletask); //XS(XS__disabletask) //{ // dXSARGS; // if((items >= 1) && (items <=10)) { // int tasks[10]; // for(int i=0; i< items; i++) { // tasks[i] = (int)SvIV(ST(i)); // } // quest_manager.disabletask(items, tasks); // } else { // Perl_croak(aTHX_ "Usage: disabletask(taskid1, taskid2, ..., taskid10"); // } // // XSRETURN_EMPTY; //} // //XS(XS__istaskenabled); //XS(XS__istaskenabled) //{ // dXSARGS; // bool RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int taskid = (int)SvIV(ST(0)); // RETVAL = quest_manager.istaskenabled(taskid); // } else { // Perl_croak(aTHX_ "Usage: istaskenabled(taskid)"); // } // // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} //XS(XS__istaskactive); //XS(XS__istaskactive) //{ // dXSARGS; // bool RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int task = (int)SvIV(ST(0)); // RETVAL = quest_manager.istaskactive(task); // } else { // Perl_croak(aTHX_ "Usage: istaskactive(task)"); // } // // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} //XS(XS__istaskactivityactive); //XS(XS__istaskactivityactive) //{ // dXSARGS; // bool RETVAL; // dXSTARG; // // if(items == 2) { // unsigned int task = (int)SvIV(ST(0)); // unsigned int activity = (int)SvIV(ST(1)); // RETVAL = quest_manager.istaskactivityactive(task, activity); // } else { // Perl_croak(aTHX_ "Usage: istaskactivityactive(task,activity)"); // } // // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} //XS(XS__gettaskactivitydonecount); //XS(XS__gettaskactivitydonecount) //{ // dXSARGS; // uint32 RETVAL; // dXSTARG; // // if(items == 2) { // unsigned int task = (int)SvIV(ST(0)); // unsigned int activity = (int)SvIV(ST(1)); // RETVAL = quest_manager.gettaskactivitydonecount(task, activity); // XSprePUSH; PUSHu((UV)RETVAL); // } else { // Perl_croak(aTHX_ "Usage: gettaskactivitydonecount(task,activity)"); // } // // XSRETURN(1); //} //XS(XS__updatetaskactivity); //XS(XS__updatetaskactivity) //{ // dXSARGS; // unsigned int task, activity; // int count = 1; // if(items == 2) { // task = (int)SvIV(ST(0)); // activity = (int)SvIV(ST(1)); // quest_manager.updatetaskactivity(task, activity, count); // } // else if(items == 3) { // task = (int)SvIV(ST(0)); // activity = (int)SvIV(ST(1)); // count = (int)SvIV(ST(2)); // quest_manager.updatetaskactivity(task, activity, count); // } else { // Perl_croak(aTHX_ "Usage: updatetaskactivity(task, activity [,count])"); // } // // XSRETURN_EMPTY; //} // //XS(XS__resettaskactivity); //XS(XS__resettaskactivity) //{ // dXSARGS; // unsigned int task, activity; // if(items == 2) { // task = (int)SvIV(ST(0)); // activity = (int)SvIV(ST(1)); // quest_manager.resettaskactivity(task, activity); // } else { // Perl_croak(aTHX_ "Usage: resettaskactivity(task, activity)"); // } // // XSRETURN_EMPTY; //} // //XS(XS__taskexploredarea); //XS(XS__taskexploredarea) //{ // dXSARGS; // unsigned int exploreid; // if(items == 1) { // exploreid = (int)SvIV(ST(0)); // quest_manager.taskexploredarea(exploreid); // } else { // Perl_croak(aTHX_ "Usage: taskexplorearea(exploreid)"); // } // // XSRETURN_EMPTY; //} // //XS(XS__assigntask); //XS(XS__assigntask) //{ // dXSARGS; // unsigned int taskid; // if(items == 1) { // taskid = (int)SvIV(ST(0)); // quest_manager.assigntask(taskid); // } else { // Perl_croak(aTHX_ "Usage: assigntask(taskid)"); // } // // XSRETURN_EMPTY; //} // //XS(XS__failtask); //XS(XS__failtask) //{ // dXSARGS; // unsigned int taskid; // if(items == 1) { // taskid = (int)SvIV(ST(0)); // quest_manager.failtask(taskid); // } else { // Perl_croak(aTHX_ "Usage: failtask(taskid)"); // } // // XSRETURN_EMPTY; //} // //XS(XS__tasktimeleft); //XS(XS__tasktimeleft) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int taskid = (int)SvIV(ST(0)); // RETVAL = quest_manager.tasktimeleft(taskid); // } else { // Perl_croak(aTHX_ "Usage: tasktimeleft(taskid)"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__istaskcompleted); //XS(XS__istaskcompleted) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int taskid = (int)SvIV(ST(0)); // RETVAL = quest_manager.istaskcompleted(taskid); // } else { // Perl_croak(aTHX_ "Usage: istaskcompleted(taskid)"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__enabledtaskcount); //XS(XS__enabledtaskcount) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int taskset = (int)SvIV(ST(0)); // RETVAL = quest_manager.enabledtaskcount(taskset); // } else { // Perl_croak(aTHX_ "Usage: enabledtaskcount(taskset)"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__firsttaskinset); //XS(XS__firsttaskinset) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int taskset = (int)SvIV(ST(0)); // RETVAL = quest_manager.firsttaskinset(taskset); // } else { // Perl_croak(aTHX_ "Usage: firsttaskinset(taskset)"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__lasttaskinset); //XS(XS__lasttaskinset) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int taskset = (int)SvIV(ST(0)); // RETVAL = quest_manager.lasttaskinset(taskset); // } else { // Perl_croak(aTHX_ "Usage: lasttaskinset(taskset)"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__nexttaskinset); //XS(XS__nexttaskinset) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 2) { // unsigned int taskset = (int)SvIV(ST(0)); // unsigned int taskid = (int)SvIV(ST(1)); // RETVAL = quest_manager.nexttaskinset(taskset, taskid); // } else { // Perl_croak(aTHX_ "Usage: nexttaskinset(taskset, taskid)"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} //XS(XS__activespeaktask); //XS(XS__activespeaktask) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 0) { // RETVAL = quest_manager.activespeaktask(); // } else { // Perl_croak(aTHX_ "Usage: activespeaktask()"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__activespeakactivity); //XS(XS__activespeakactivity) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int taskid = (int)SvIV(ST(0)); // RETVAL = quest_manager.activespeakactivity(taskid); // } else { // Perl_croak(aTHX_ "Usage: activespeakactivity(taskid)"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__activetasksinset); //XS(XS__activetasksinset) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int taskset = (int)SvIV(ST(0)); // RETVAL = quest_manager.activetasksinset(taskset); // } else { // Perl_croak(aTHX_ "Usage: activetasksinset(taskset)"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__completedtasksinset); //XS(XS__completedtasksinset) //{ // dXSARGS; // int RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int taskset = (int)SvIV(ST(0)); // RETVAL = quest_manager.completedtasksinset(taskset); // } else { // Perl_croak(aTHX_ "Usage: completedtasksinset(taskset)"); // } // // XSprePUSH; PUSHi((IV)RETVAL); // // XSRETURN(1); //} // // //XS(XS__istaskappropriate); //XS(XS__istaskappropriate) //{ // dXSARGS; // bool RETVAL; // dXSTARG; // // if(items == 1) { // unsigned int task = (int)SvIV(ST(0)); // RETVAL = quest_manager.istaskappropriate(task); // } else { // Perl_croak(aTHX_ "Usage: istaskaappropriate(task)"); // } // // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} // // XS(XS__popup); // prototype to pass -Wmissing-prototypes // XS(XS__popup) { // dXSARGS; // int popupid = 0; // int buttons = 0; // int duration = 0; // // if((items < 2) || (items > 5)) // Perl_croak(aTHX_ "Usage: popup(windowtitle, text, popupid, buttons, duration)"); // // if(items >= 3) // popupid = (int)SvIV(ST(2)); // // if(items >= 4) // buttons = (int)SvIV(ST(3)); // // if(items == 5) // duration = (int)SvIV(ST(4)); // // quest_manager.popup(SvPV_nolen(ST(0)), SvPV_nolen(ST(1)), popupid, buttons, duration); // // XSRETURN_EMPTY; // } //XS(XS__clearspawntimers); //XS(XS__clearspawntimers) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: clearspawntimers()"); // // quest_manager.clearspawntimers(); // // XSRETURN_EMPTY; //} //XS(XS__ze); //XS(XS__ze) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: ze(type, str)"); // // int type = (int)SvIV(ST(0)); // char * str = (char *)SvPV_nolen(ST(1)); // // quest_manager.ze(type, str); // // XSRETURN_EMPTY; //} // //XS(XS__we); //XS(XS__we) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: we(type, str)"); // // int type = (int)SvIV(ST(0)); // char * str = (char *)SvPV_nolen(ST(1)); // // quest_manager.we(type, str); // // XSRETURN_EMPTY; //} //XS(XS__getlevel); //XS(XS__getlevel) //{ // dXSARGS; // if (items > 1) // Perl_croak(aTHX_ "Usage: getlevel(type)"); // // int RETVAL; // dXSTARG; // // int type; // if (items == 1) // type = (int)SvIV(ST(0)); // else // type = 0; // // RETVAL = quest_manager.getlevel(type); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__CreateGroundObject); //XS(XS__CreateGroundObject) //{ // dXSARGS; // if (items != 5 && items != 6) // Perl_croak(aTHX_ "Usage: creategroundobject(itemid, x, y, z, heading, [decay_time])"); // // int itemid = (int)SvIV(ST(0)); // float x = (float)SvNV(ST(1)); // float y = (float)SvNV(ST(2)); // float z = (float)SvNV(ST(3)); // float heading = (float)SvNV(ST(4)); // uint16 id = 0; // // if(items == 5) // id = quest_manager.CreateGroundObject(itemid, x, y, z, heading); // else{ // uint32 decay_time = (uint32)SvIV(ST(5)); // id = quest_manager.CreateGroundObject(itemid, x, y, z, heading, decay_time); // } // // XSRETURN_IV(id); //} // //XS(XS__CreateGroundObjectFromModel); //XS(XS__CreateGroundObjectFromModel) //{ // dXSARGS; // if (items < 5 || items > 7) // Perl_croak(aTHX_ "Usage: creategroundobjectfrommodel(modelname, x, y, z, heading, [type], [decay_time])"); // // char * modelname = (char *)SvPV_nolen(ST(0)); // float x = (float)SvNV(ST(1)); // float y = (float)SvNV(ST(2)); // float z = (float)SvNV(ST(3)); // float heading = (float)SvNV(ST(4)); // uint32 type = 0; // uint32 decay_time = 0; // uint16 id = 0; // // if (items > 5) // type = (uint32)SvIV(ST(5)); // // if (items > 6) // decay_time = (uint32)SvIV(ST(6)); // // id = quest_manager.CreateGroundObjectFromModel(modelname, x, y, z, heading, type, decay_time); // XSRETURN_IV(id); //} // //XS(XS__CreateDoor); //XS(XS__CreateDoor) //{ // dXSARGS; // if (items < 5 || items > 7) // Perl_croak(aTHX_ "Usage: createdoor(modelname, x, y, z, heading, [type], [size])"); // // char * modelname = (char *)SvPV_nolen(ST(0)); // float x = (float)SvNV(ST(1)); // float y = (float)SvNV(ST(2)); // float z = (float)SvNV(ST(3)); // float heading = (float)SvNV(ST(4)); // uint32 type = 58; // uint32 size = 100; // uint16 id = 0; // // if (items > 5) // type = (uint32)SvIV(ST(5)); // // if (items > 6) // size = (uint32)SvIV(ST(6)); // // id = quest_manager.CreateDoor(modelname, x, y, z, heading, type, size); // XSRETURN_IV(id); //} // //XS(XS__ModifyNPCStat); //XS(XS__ModifyNPCStat) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: ModifyNPCStat(identifier, newValue)"); // // quest_manager.ModifyNPCStat(SvPV_nolen(ST(0)), SvPV_nolen(ST(1))); // // XSRETURN_EMPTY; //} // //XS(XS__collectitems); //XS(XS__collectitems) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: collectitems(item_id, remove?)"); // // uint32 item_id = (int)SvIV(ST(0)); // bool remove = ((int)SvIV(ST(1))) == 0?false:true; // // int quantity = // quest_manager.collectitems(item_id, remove); // // XSRETURN_IV(quantity); //} // //XS(XS__UpdateSpawnTimer); //XS(XS__UpdateSpawnTimer) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: UpdateSpawnTimer(Spawn2_ID, Updated_Time_Till_Repop)"); // // uint32 id = (int)SvIV(ST(0)); // uint32 duration = (int)SvIV(ST(1)); // // quest_manager.UpdateSpawnTimer(id, duration); // // XSRETURN_EMPTY; //} // //XS(XS__MerchantSetItem); //XS(XS__MerchantSetItem) { // dXSARGS; // if (items != 2 && items != 3) // Perl_croak(aTHX_ "Usage: MerchantSetItem(NPCid, itemid [, quantity])"); // // uint32 NPCid = (int)SvUV(ST(0)); // uint32 itemid = (int)SvUV(ST(1)); // uint32 quantity = 0; // if (items == 3) // quantity = (int)SvUV(ST(2)); // // quest_manager.MerchantSetItem(NPCid, itemid, quantity); // // XSRETURN_EMPTY; //} // //XS(XS__MerchantCountItem); //XS(XS__MerchantCountItem) { // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: MerchantCountItem(NPCid, itemid)"); // // uint32 NPCid = (int)SvUV(ST(0)); // uint32 itemid = (int)SvUV(ST(1)); // uint32 quantity = quest_manager.MerchantCountItem(NPCid, itemid); // // XSRETURN_UV(quantity); //} // //XS(XS__varlink); //XS(XS__varlink) { // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: varlink(itemID)"); // dXSTARG; // // Const_char * RETVAL; // char text[250]; // uint32 itemID; // itemID = (int)SvUV(ST(0)); // // RETVAL = quest_manager.varlink(text, itemID); // // sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; // XSRETURN(1); //} // //XS(XS__CreateInstance); //XS(XS__CreateInstance) { // dXSARGS; // if (items != 3) // Perl_croak(aTHX_ "Usage: CreateInstance(zone_name, version, duration)"); // // char * zone = (char *)SvPV_nolen(ST(0)); // uint16 version = (int)SvUV(ST(1)); // uint32 duration = (int)SvUV(ST(2)); // uint32 id = quest_manager.CreateInstance(zone, version, duration); // // XSRETURN_UV(id); //} // //XS(XS__DestroyInstance); //XS(XS__DestroyInstance) { // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: DestroyInstance(id)"); // // uint16 id = (int)SvUV(ST(0)); // quest_manager.DestroyInstance(id); // // XSRETURN_EMPTY; //} // //XS(XS__GetInstanceID); //XS(XS__GetInstanceID) { // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: GetInstanceID(zone_name, version)"); // // char * zone = (char *)SvPV_nolen(ST(0)); // uint16 version = (int)SvUV(ST(1)); // uint16 id = quest_manager.GetInstanceID(zone, version); // // XSRETURN_UV(id); //} // //XS(XS__AssignToInstance); //XS(XS__AssignToInstance) { // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: AssignToInstance(id)"); // // uint16 id = (int)SvUV(ST(0)); // quest_manager.AssignToInstance(id); // // XSRETURN_EMPTY; //} // //XS(XS__AssignGroupToInstance); //XS(XS__AssignGroupToInstance) { // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: AssignGroupToInstance(id)"); // // uint16 id = (int)SvUV(ST(0)); // quest_manager.AssignGroupToInstance(id); // // XSRETURN_EMPTY; //} // //XS(XS__AssignRaidToInstance); //XS(XS__AssignRaidToInstance) { // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: AssignRaidToInstance(id)"); // // uint16 id = (int)SvUV(ST(0)); // quest_manager.AssignRaidToInstance(id); // // XSRETURN_EMPTY; //} // //XS(XS__MovePCInstance); //XS(XS__MovePCInstance) //{ // dXSARGS; // if (items != 5 && items != 6) // Perl_croak(aTHX_ "Usage: MovePCInstance(zone_id, instance_id, x, y, z [,heading])"); // // int zoneid = (int)SvIV(ST(0)); // int instanceid = (int)SvIV(ST(1)); // float x = (float)SvNV(ST(2)); // float y = (float)SvNV(ST(3)); // float z = (float)SvNV(ST(4)); // // if (items == 4) // { // quest_manager.MovePCInstance(zoneid, instanceid, x, y, z, 0.0f); // } // else // { // float heading = (float)SvNV(ST(5)); // quest_manager.MovePCInstance(zoneid, instanceid, x, y, z, heading); // } // // XSRETURN_EMPTY; //} // //XS(XS__FlagInstanceByGroupLeader); //XS(XS__FlagInstanceByGroupLeader) { // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: FlagInstanceByGroupLeader(zone, version)"); // // uint32 zone = (int)SvUV(ST(0)); // uint16 version = (int)SvUV(ST(1)); // quest_manager.FlagInstanceByGroupLeader(zone, version); // // XSRETURN_EMPTY; //} // //XS(XS__FlagInstanceByRaidLeader); //XS(XS__FlagInstanceByRaidLeader) { // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: FlagInstanceByRaidLeader(zone, version)"); // // uint32 zone = (int)SvUV(ST(0)); // uint16 version = (int)SvUV(ST(1)); // quest_manager.FlagInstanceByRaidLeader(zone, version); // // XSRETURN_EMPTY; //} // //XS(XS__saylink); //XS(XS__saylink) { // dXSARGS; // if (items < 1 || items > 3) // Perl_croak(aTHX_ "Usage: saylink(phrase,[silent?],[linkname])"); // dXSTARG; // // Const_char * RETVAL; // char text[250]; // char text2[250]; // bool silent = false; // strcpy(text,(char *)SvPV_nolen(ST(0))); // if(items >= 2) { // silent = ((int)SvIV(ST(1))) == 0 ? false : true; // } // if (items == 3) // strcpy(text2,(char *)SvPV_nolen(ST(2))); // else // strcpy(text2,text); // // RETVAL = quest_manager.saylink(text, silent, text2); // sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; // XSRETURN(1); //} // //XS(XS__getguildnamebyid); //XS(XS__getguildnamebyid) { // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: getguildnamebyid(guild_id)"); // dXSTARG; // // Const_char * RETVAL; // uint32 guild_id = (int)SvUV(ST(0)); // // RETVAL = quest_manager.getguildnamebyid(guild_id); // // sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; // XSRETURN(1); //} // //XS(XS__SetRunning); //XS(XS__SetRunning) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: SetRunning(val)"); // // bool val = ((int)SvIV(ST(0))) == 0?false:true; // // quest_manager.SetRunning(val); // // XSRETURN_EMPTY; //} // //XS(XS__IsRunning); //XS(XS__IsRunning) //{ // dXSARGS; // if (items >= 1) // Perl_croak(aTHX_ "Usage: IsRunning()"); // // bool RETVAL; // dXSTARG; // // // RETVAL = quest_manager.IsRunning(); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__IsEffectInSpell); //XS(XS__IsEffectInSpell) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: IsEffectInSpell(spell_id, effect_id)"); // // uint32 spell_id = (uint32)SvUV(ST(0)); // uint32 effect_id = (uint32)SvUV(ST(1)); // bool RETVAL; // dXSTARG; // // // RETVAL = IsEffectInSpell(spell_id, effect_id); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__IsBeneficialSpell); //XS(XS__IsBeneficialSpell) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: IsBeneficialSpell(spell_id)"); // // uint32 spell_id = (uint32)SvUV(ST(0)); // bool RETVAL; // dXSTARG; // // // RETVAL = BeneficialSpell(spell_id); // XSprePUSH; PUSHu((IV)RETVAL); // // XSRETURN(1); //} // //XS(XS__GetSpellResistType); //XS(XS__GetSpellResistType) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: GetSpellResistType(spell_id)"); // // uint32 spell_id = (uint32)SvUV(ST(0)); // int32 spell_val = 0; // dXSTARG; // // spell_val = GetSpellResistType(spell_id); // XSRETURN_UV(spell_val); //} // //XS(XS__GetSpellTargetType); //XS(XS__GetSpellTargetType) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: GetSpellTargetType(spell_id)"); // // uint32 spell_id = (uint32)SvUV(ST(0)); // int32 spell_val = 0; // dXSTARG; // // spell_val = GetSpellTargetType(spell_id); // XSRETURN_UV(spell_val); //} // //XS(XS__FlyMode); //XS(XS__FlyMode) { // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: FlyMode([0/1/2])"); // // uint8 flymode = (int)SvUV(ST(0)); // quest_manager.FlyMode(flymode); // // XSRETURN_EMPTY; //} // //XS(XS_FactionValue); //XS(XS_FactionValue) { // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: factionvalue()"); // // uint8 fac = quest_manager.FactionValue(); // XSRETURN_UV(fac); //} // //XS(XS__enabletitle); //XS(XS__enabletitle) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: enabletitle(titleset)"); // // int titleset = (int)SvIV(ST(0)); // // quest_manager.enabletitle(titleset); // // XSRETURN_EMPTY; //} // //XS(XS__checktitle); //XS(XS__checktitle) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: checktitle(titleset)"); // // bool RETVAL; // int titleset = (int)SvIV(ST(0)); // // RETVAL = quest_manager.checktitle(titleset); // // ST(0) = boolSV(RETVAL); // sv_2mortal(ST(0)); // XSRETURN(1); //} // //XS(XS__removetitle); //XS(XS__removetitle) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: removetitle(titleset)"); // // int titleset = (int)SvIV(ST(0)); // // quest_manager.removetitle(titleset); // // XSRETURN_EMPTY; //} // //XS(XS__wearchange); //XS(XS__wearchange) //{ // dXSARGS; // if (items != 2) // Perl_croak(aTHX_ "Usage: wearchange(slot, texture)"); // // uint8 slot = (int)SvUV(ST(0)); // uint16 texture = (int)SvUV(ST(1)); // // quest_manager.wearchange(slot, texture); // // XSRETURN_EMPTY; //} // //XS(XS__voicetell); //XS(XS__voicetell) //{ // dXSARGS; // if (items != 4) // Perl_croak(aTHX_ "Usage: voicetell(clientname, type, race, gender)"); // // char * str = (char *)SvPV_nolen(ST(0)); // int macronum = (int)SvIV(ST(1)); // int racenum = (int)SvIV(ST(2)); // int gendernum = (int)SvIV(ST(3)); // // quest_manager.voicetell(str, macronum, racenum, gendernum); // // XSRETURN_EMPTY; //} // //XS(XS__LearnRecipe); //XS(XS__LearnRecipe) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: LearnRecipe(recipe_id)"); // // uint32 recipe_id = (uint32)SvIV(ST(0)); // // quest_manager.LearnRecipe(recipe_id); // // XSRETURN_EMPTY; //} // //XS(XS__SendMail); //XS(XS__SendMail) //{ // dXSARGS; // if (items != 4) // Perl_croak(aTHX_ "Usage: SendMail(to, from, subject, message)"); // // char *to = (char *)SvPV_nolen(ST(0)); // char *from = (char *)SvPV_nolen(ST(1)); // char *subject = (char *)SvPV_nolen(ST(2)); // char *message = (char *)SvPV_nolen(ST(3)); // // quest_manager.SendMail(to, from, subject, message); // // XSRETURN_EMPTY; //} // //XS(XS__GetZoneID); //XS(XS__GetZoneID) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: GetZoneID(zone)"); // // char *zone = (char *)SvPV_nolen(ST(0)); // int32 id = quest_manager.GetZoneID(zone); // // XSRETURN_IV(id); //} // //XS(XS__GetZoneLongName); //XS(XS__GetZoneLongName) //{ // dXSARGS; // if (items != 1) // Perl_croak(aTHX_ "Usage: GetZoneLongName(zone)"); // dXSTARG; // char *zone = (char *)SvPV_nolen(ST(0)); // Const_char* RETVAL = quest_manager.GetZoneLongName(zone); // // sv_setpv(TARG, RETVAL); XSprePUSH; PUSHTARG; // XSRETURN(1); //} // //XS(XS__GetTimeSeconds); //XS(XS__GetTimeSeconds) //{ // dXSARGS; // if (items != 0) // Perl_croak(aTHX_ "Usage: GetTimeSeconds()"); // // uint32 seconds = 0; // dXSTARG; // // seconds = Timer::GetTimeSeconds(); // XSRETURN_UV(seconds); //} // //XS(XS__handleturnin); // prototype to pass -Wmissing-prototypes //XS(XS__handleturnin) { // dXSARGS; // // if (items != 2) // Perl_croak(aTHX_ "Usage: handleturnin(itemid, itemcharges)"); // int itemid = (int)SvIV(ST(0)); // int charges = (int)SvIV(ST(1)); // // bool returnVal = quest_manager.TurnInItem(itemid,charges); // // ST(0) = boolSV(returnVal); // sv_2mortal(ST(0)); // XSRETURN(1); //} // //XS(XS__completehandin); // prototype to pass -Wmissing-prototypes //XS(XS__completehandin) { // dXSARGS; // // if (items != 0) // Perl_croak(aTHX_ "Usage: completehandin()"); // // quest_manager.CompleteHandIn(); // // XSRETURN_EMPTY; //} // //XS(XS__resethandin); // prototype to pass -Wmissing-prototypes //XS(XS__resethandin) { // dXSARGS; // // if (items != 0) // Perl_croak(aTHX_ "Usage: resethandin()"); // // quest_manager.ResetHandIn(); // // XSRETURN_EMPTY; //} // //XS(XS__clearhandin); // prototype to pass -Wmissing-prototypes //XS(XS__clearhandin) { // dXSARGS; // // if (items != 0) // Perl_croak(aTHX_ "Usage: clearhandin()"); // // quest_manager.ClearHandIn(); // // XSRETURN_EMPTY; //} // //XS(XS__crosszonesignalclientbycharid); //XS(XS__crosszonesignalclientbycharid) //{ // dXSARGS; // // if (items != 2) // Perl_croak(aTHX_ "Usage: crosszonesignalclientbycharid(char_id, data)"); // // if (items == 2) { // int char_id = (int)SvIV(ST(0)); // uint32 data = (uint32)SvIV(ST(1)); // quest_manager.CrossZoneSignalPlayerByCharID(char_id, data); // } else { // Perl_croak(aTHX_ "Usage: crosszonesignalclientbycharid(char_id, data)"); // } // // XSRETURN_EMPTY; //} // //XS(XS__crosszonesignalclientbyname); //XS(XS__crosszonesignalclientbyname) //{ // dXSARGS; // // if (items != 2) // Perl_croak(aTHX_ "Usage: crosszonesignalclientbycharid(Name, data)"); // // if (items == 2) { // char *Name = (char *)SvPV_nolen(ST(0)); // uint32 data = (uint32)SvIV(ST(1)); // quest_manager.CrossZoneSignalPlayerByName(Name, data); // } else { // Perl_croak(aTHX_ "Usage: crosszonesignalclientbycharid(Name, data)"); // } // // XSRETURN_EMPTY; //} // // //XS(XS__crosszonemessageplayerbyname); //XS(XS__crosszonemessageplayerbyname) //{ // dXSARGS; // // if (items != 3) // Perl_croak(aTHX_ "Usage: crosszonemessageplayerbyname(Type, Name, Message)"); // // if (items == 3) { // uint32 Type = (uint32)SvIV(ST(0)); // char *Name = (char *)SvPV_nolen(ST(1)); // char *Message = (char *)SvPV_nolen(ST(2)); // quest_manager.CrossZoneMessagePlayerByName(Type, Name, Message); // } else { // Perl_croak(aTHX_ "Usage: crosszonemessageplayerbyname(Type, Name, Message)"); // } // // XSRETURN_EMPTY; //} // ///* //This is the callback perl will look for to setup the //quest package's XSUBs //*/ //EXTERN_C XS(boot_quest); // prototype to pass -Wmissing-prototypes //EXTERN_C XS(boot_quest) //{ // dXSARGS; // char file[256]; // strncpy(file, __FILE__, 256); // file[255] = '\0'; // // if(items != 1) // LogFile->write(EQEMuLog::Error, "boot_quest does not take any arguments."); // // char buf[128]; //shouldent have any function names longer than this. // // //add the strcpy stuff to get rid of const warnings.... // // XS_VERSION_BOOTCHECK ; // newXS(strcpy(buf, "echo"), XS__echo, file); // newXS(strcpy(buf, "say"), XS__say, file); // newXS(strcpy(buf, "me"), XS__me, file); // newXS(strcpy(buf, "summonitem"), XS__summonitem, file); // newXS(strcpy(buf, "write"), XS__write, file); // newXS(strcpy(buf, "spawn"), XS__spawn, file); // newXS(strcpy(buf, "spawn2"), XS__spawn2, file); // newXS(strcpy(buf, "unique_spawn"), XS__unique_spawn, file); // newXS(strcpy(buf, "spawn_from_spawn2"), XS__spawn_from_spawn2, file); // newXS(strcpy(buf, "enable_spawn2"), XS__enable_spawn2, file); // newXS(strcpy(buf, "disable_spawn2"), XS__disable_spawn2, file); // newXS(strcpy(buf, "setstat"), XS__setstat, file); // newXS(strcpy(buf, "incstat"), XS__incstat, file); // newXS(strcpy(buf, "castspell"), XS__castspell, file); // newXS(strcpy(buf, "selfcast"), XS__selfcast, file); // newXS(strcpy(buf, "addloot"), XS__addloot, file); // newXS(strcpy(buf, "zone"), XS__zone, file); // newXS(strcpy(buf, "settimer"), XS__settimer, file); // newXS(strcpy(buf, "settimerMS"), XS__settimerMS, file); // newXS(strcpy(buf, "stoptimer"), XS__stoptimer, file); // newXS(strcpy(buf, "stopalltimers"), XS__stopalltimers, file); // newXS(strcpy(buf, "emote"), XS__emote, file); // newXS(strcpy(buf, "shout"), XS__shout, file); // newXS(strcpy(buf, "shout2"), XS__shout2, file); // newXS(strcpy(buf, "gmsay"), XS__gmsay, file); // newXS(strcpy(buf, "depop"), XS__depop, file); // newXS(strcpy(buf, "depop_withtimer"), XS__depop_withtimer, file); // newXS(strcpy(buf, "settarget"), XS__settarget, file); // newXS(strcpy(buf, "follow"), XS__follow, file); // newXS(strcpy(buf, "sfollow"), XS__sfollow, file); // newXS(strcpy(buf, "changedeity"), XS__changedeity, file); // newXS(strcpy(buf, "exp"), XS__exp, file); // newXS(strcpy(buf, "level"), XS__level, file); // newXS(strcpy(buf, "traindisc"), XS__traindisc, file); // newXS(strcpy(buf, "isdisctome"), XS__isdisctome, file); // newXS(strcpy(buf, "safemove"), XS__safemove, file); // newXS(strcpy(buf, "rain"), XS__rain, file); // newXS(strcpy(buf, "snow"), XS__snow, file); // newXS(strcpy(buf, "surname"), XS__surname, file); // newXS(strcpy(buf, "permaclass"), XS__permaclass, file); // newXS(strcpy(buf, "permarace"), XS__permarace, file); // newXS(strcpy(buf, "permagender"), XS__permagender, file); // newXS(strcpy(buf, "scribespells"), XS__scribespells, file); // newXS(strcpy(buf, "traindiscs"), XS__traindiscs, file); // newXS(strcpy(buf, "unscribespells"), XS__unscribespells, file); // newXS(strcpy(buf, "untraindiscs"), XS__untraindiscs, file); // newXS(strcpy(buf, "givecash"), XS__givecash, file); // newXS(strcpy(buf, "pvp"), XS__pvp, file); // newXS(strcpy(buf, "movepc"), XS__movepc, file); // newXS(strcpy(buf, "gmmove"), XS__gmmove, file); // newXS(strcpy(buf, "movegrp"), XS__movegrp, file); // newXS(strcpy(buf, "doanim"), XS__doanim, file); // newXS(strcpy(buf, "addskill"), XS__addskill, file); // newXS(strcpy(buf, "setlanguage"), XS__setlanguage, file); // newXS(strcpy(buf, "setskill"), XS__setskill, file); // newXS(strcpy(buf, "setallskill"), XS__setallskill, file); // newXS(strcpy(buf, "attack"), XS__attack, file); // newXS(strcpy(buf, "attacknpc"), XS__attacknpc, file); // newXS(strcpy(buf, "attacknpctype"), XS__attacknpctype, file); // newXS(strcpy(buf, "save"), XS__save, file); // newXS(strcpy(buf, "faction"), XS__faction, file); // newXS(strcpy(buf, "setsky"), XS__setsky, file); // newXS(strcpy(buf, "setguild"), XS__setguild, file); // newXS(strcpy(buf, "createguild"), XS__createguild, file); // newXS(strcpy(buf, "settime"), XS__settime, file); // newXS(strcpy(buf, "itemlink"), XS__itemlink, file); // newXS(strcpy(buf, "signal"), XS__signal, file); // newXS(strcpy(buf, "signalwith"), XS__signalwith, file); // newXS(strcpy(buf, "setglobal"), XS__setglobal, file); // newXS(strcpy(buf, "targlobal"), XS__targlobal, file); // newXS(strcpy(buf, "delglobal"), XS__delglobal, file); // newXS(strcpy(buf, "ding"), XS__ding, file); // newXS(strcpy(buf, "rebind"), XS__rebind, file); // newXS(strcpy(buf, "start"), XS__start, file); // newXS(strcpy(buf, "stop"), XS__stop, file); // newXS(strcpy(buf, "pause"), XS__pause, file); // newXS(strcpy(buf, "moveto"), XS__moveto, file); // newXS(strcpy(buf, "resume"), XS__resume, file); // newXS(strcpy(buf, "addldonpoints"), XS__addldonpoints, file); // newXS(strcpy(buf, "addldonwin"), XS__addldonpoints, file); // newXS(strcpy(buf, "addldonloss"), XS__addldonpoints, file); // newXS(strcpy(buf, "setnexthpevent"), XS__setnexthpevent, file); // newXS(strcpy(buf, "setnextinchpevent"), XS__setnextinchpevent, file); // newXS(strcpy(buf, "sethp"), XS__sethp, file); // newXS(strcpy(buf, "respawn"), XS__respawn, file); // newXS(strcpy(buf, "getItemName"), XS_qc_getItemName, file); // newXS(strcpy(buf, "ChooseRandom"), XS__ChooseRandom, file); // newXS(strcpy(buf, "set_proximity"), XS__set_proximity, file); // newXS(strcpy(buf, "clear_proximity"), XS__clear_proximity, file); // newXS(strcpy(buf, "setanim"), XS__setanim, file); // newXS(strcpy(buf, "showgrid"), XS__showgrid, file); // newXS(strcpy(buf, "showpath"), XS__showpath, file); // newXS(strcpy(buf, "pathto"), XS__pathto, file); // newXS(strcpy(buf, "spawn_condition"), XS__spawn_condition, file); // newXS(strcpy(buf, "get_spawn_condition"), XS__get_spawn_condition, file); // newXS(strcpy(buf, "toggle_spawn_event"), XS__toggle_spawn_event, file); // newXS(strcpy(buf, "has_zone_flag"), XS__has_zone_flag, file); // newXS(strcpy(buf, "set_zone_flag"), XS__set_zone_flag, file); // newXS(strcpy(buf, "clear_zone_flag"), XS__clear_zone_flag, file); // newXS(strcpy(buf, "summonburriedplayercorpse"), XS__summonburriedplayercorpse, file); // newXS(strcpy(buf, "summonallplayercorpses"), XS__summonallplayercorpses, file); // newXS(strcpy(buf, "getplayerburriedcorpsecount"), XS__getplayerburriedcorpsecount, file); // newXS(strcpy(buf, "buryplayercorpse"), XS__buryplayercorpse, file); // newXS(strcpy(buf, "forcedooropen"), XS__forcedooropen, file); // newXS(strcpy(buf, "forcedoorclose"), XS__forcedoorclose, file); // newXS(strcpy(buf, "toggledoorstate"), XS__toggledoorstate, file); // newXS(strcpy(buf, "isdooropen"), XS__isdooropen, file); // newXS(strcpy(buf, "depopall"), XS__depopall, file); // newXS(strcpy(buf, "depopzone"), XS__depopzone, file); // newXS(strcpy(buf, "repopzone"), XS__repopzone, file); // newXS(strcpy(buf, "npcrace"), XS__npcrace, file); // newXS(strcpy(buf, "npcgender"), XS__npcgender, file); // newXS(strcpy(buf, "npcsize"), XS__npcsize, file); // newXS(strcpy(buf, "npctexture"), XS__npctexture, file); // newXS(strcpy(buf, "playerrace"), XS__playerrace, file); // newXS(strcpy(buf, "playergender"), XS__playergender, file); // newXS(strcpy(buf, "playersize"), XS__playersize, file); // newXS(strcpy(buf, "playertexture"), XS__playertexture, file); // newXS(strcpy(buf, "playerfeature"), XS__playerfeature, file); // newXS(strcpy(buf, "npcfeature"), XS__npcfeature, file); // //#ifdef BOTS // newXS(strcpy(buf, "botquest"), XS__botquest, file); // newXS(strcpy(buf, "spawnbotcount"), XS__spawnbotcount, file); // newXS(strcpy(buf, "createbotcount"), XS__createbotcount, file); // newXS(strcpy(buf, "createBot"), XS__createBot, file); //#endif //BOTS // // newXS(strcpy(buf, "taskselector"), XS__taskselector, file); // newXS(strcpy(buf, "tasksetselector"), XS__tasksetselector, file); // newXS(strcpy(buf, "enabletask"), XS__enabletask, file); // newXS(strcpy(buf, "disabletask"), XS__disabletask, file); // newXS(strcpy(buf, "istaskenabled"), XS__istaskenabled, file); // newXS(strcpy(buf, "istaskactive"), XS__istaskactive, file); // newXS(strcpy(buf, "istaskactivityactive"), XS__istaskactivityactive, file); // newXS(strcpy(buf, "gettaskactivitydonecount"), XS__gettaskactivitydonecount, file); // newXS(strcpy(buf, "updatetaskactivity"), XS__updatetaskactivity, file); // newXS(strcpy(buf, "resettaskactivity"), XS__resettaskactivity, file); // newXS(strcpy(buf, "taskexploredarea"), XS__taskexploredarea, file); // newXS(strcpy(buf, "assigntask"), XS__assigntask, file); // newXS(strcpy(buf, "failtask"), XS__failtask, file); // newXS(strcpy(buf, "tasktimeleft"), XS__tasktimeleft, file); // newXS(strcpy(buf, "istaskcompleted"), XS__istaskcompleted, file); // newXS(strcpy(buf, "enabledtaskcount"), XS__enabledtaskcount, file); // newXS(strcpy(buf, "firsttaskinset"), XS__firsttaskinset, file); // newXS(strcpy(buf, "lasttaskinset"), XS__lasttaskinset, file); // newXS(strcpy(buf, "nexttaskinset"), XS__nexttaskinset, file); // newXS(strcpy(buf, "activespeaktask"), XS__activespeaktask, file); // newXS(strcpy(buf, "activespeakactivity"), XS__activespeakactivity, file); // newXS(strcpy(buf, "activetasksinset"), XS__activetasksinset, file); // newXS(strcpy(buf, "completedtasksinset"), XS__completedtasksinset, file); // newXS(strcpy(buf, "istaskappropriate"), XS__istaskappropriate, file); // newXS(strcpy(buf, "popup"), XS__popup, file); // newXS(strcpy(buf, "clearspawntimers"), XS__clearspawntimers, file); // newXS(strcpy(buf, "ze"), XS__ze, file); // newXS(strcpy(buf, "we"), XS__we, file); // newXS(strcpy(buf, "getlevel"), XS__getlevel, file); // newXS(strcpy(buf, "creategroundobject"), XS__CreateGroundObject, file); // newXS(strcpy(buf, "creategroundobjectfrommodel"), XS__CreateGroundObjectFromModel, file); // newXS(strcpy(buf, "createdoor"), XS__CreateDoor, file); // newXS(strcpy(buf, "modifynpcstat"), XS__ModifyNPCStat, file); // newXS(strcpy(buf, "collectitems"), XS__collectitems, file); // newXS(strcpy(buf, "updatespawntimer"), XS__UpdateSpawnTimer, file); // newXS(strcpy(buf, "MerchantSetItem"), XS__MerchantSetItem, file); // newXS(strcpy(buf, "MerchantCountItem"), XS__MerchantCountItem, file); // newXS(strcpy(buf, "varlink"), XS__varlink, file); // newXS(strcpy(buf, "saylink"), XS__saylink, file); // newXS(strcpy(buf, "getguildnamebyid"), XS__getguildnamebyid, file); // newXS(strcpy(buf, "CreateInstance"), XS__CreateInstance, file); // newXS(strcpy(buf, "DestroyInstance"), XS__DestroyInstance, file); // newXS(strcpy(buf, "GetInstanceID"), XS__GetInstanceID, file); // newXS(strcpy(buf, "AssignToInstance"), XS__AssignToInstance, file); // newXS(strcpy(buf, "AssignGroupToInstance"), XS__AssignGroupToInstance, file); // newXS(strcpy(buf, "AssignRaidToInstance"), XS__AssignRaidToInstance, file); // newXS(strcpy(buf, "MovePCInstance"), XS__MovePCInstance, file); // newXS(strcpy(buf, "FlagInstanceByGroupLeader"), XS__FlagInstanceByGroupLeader, file); // newXS(strcpy(buf, "FlagInstanceByRaidLeader"), XS__FlagInstanceByRaidLeader, file); // newXS(strcpy(buf, "SetRunning"), XS__SetRunning, file); // newXS(strcpy(buf, "IsRunning"), XS__IsRunning, file); // newXS(strcpy(buf, "IsEffectInSpell"), XS__IsEffectInSpell, file); // newXS(strcpy(buf, "IsBeneficialSpell"), XS__IsBeneficialSpell, file); // newXS(strcpy(buf, "GetSpellResistType"), XS__GetSpellResistType, file); // newXS(strcpy(buf, "GetSpellTargetType"), XS__GetSpellTargetType, file); // newXS(strcpy(buf, "FlyMode"), XS__FlyMode, file); // newXS(strcpy(buf, "factionvalue"), XS_FactionValue, file); // newXS(strcpy(buf, "checktitle"), XS__checktitle, file); // newXS(strcpy(buf, "enabletitle"), XS__enabletitle, file); // newXS(strcpy(buf, "removetitle"), XS__removetitle, file); // newXS(strcpy(buf, "wearchange"), XS__wearchange, file); // newXS(strcpy(buf, "voicetell"), XS__voicetell, file); // newXS(strcpy(buf, "LearnRecipe"), XS__LearnRecipe, file); // newXS(strcpy(buf, "SendMail"), XS__SendMail, file); // newXS(strcpy(buf, "GetZoneID"), XS__GetZoneID, file); // newXS(strcpy(buf, "GetZoneLongName"), XS__GetZoneLongName, file); // newXS(strcpy(buf, "GetTimeSeconds"), XS__GetTimeSeconds, file); // newXS(strcpy(buf, "handleturnin"), XS__handleturnin, file); // newXS(strcpy(buf, "completehandin"), XS__completehandin, file); // newXS(strcpy(buf, "resethandin"), XS__resethandin, file); // newXS(strcpy(buf, "clearhandin"), XS__clearhandin, file); // newXS(strcpy(buf, "crosszonesignalclientbycharid"), XS__crosszonesignalclientbycharid, file); // newXS(strcpy(buf, "crosszonesignalclientbyname"), XS__crosszonesignalclientbyname, file); // newXS(strcpy(buf, "crosszonemessageplayerbyname"), XS__crosszonemessageplayerbyname, file); // XSRETURN_YES; //} // //#endif //#endif