From b822dcee52d15d41c4186a250e73b85b16c9dc39 Mon Sep 17 00:00:00 2001 From: Thorbjørn Lindeijer Date: Sat, 10 Mar 2012 23:38:36 +0100 Subject: Removed the create_npc wrapper and the last two NPC callbacks When creating an NPC, you now provide its optional talk and update functions directly rather than them being stored in a table on the Lua side and then called in response to a global callback. Also fixed an issue with a missing gender parameter to the delayed NPC creation callback used by NPCs defined on the map (found by Erik while reviewing this patch). Reviewed-by: Erik Schilling --- src/scripting/script.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/scripting/script.h') diff --git a/src/scripting/script.h b/src/scripting/script.h index b55f204..f6d6d18 100644 --- a/src/scripting/script.h +++ b/src/scripting/script.h @@ -22,6 +22,7 @@ #define SCRIPTING_SCRIPT_H #include "common/inventorydata.h" +#include "common/manaserv_protocol.h" #include "game-server/eventlistener.h" #include @@ -61,6 +62,7 @@ class Script { public: Ref() : value(-1) {} + Ref(int value) : value(value) {} bool isValid() const { return value != -1; } int value; }; @@ -111,7 +113,10 @@ class Script * Loads a chunk of text and considers it as an NPC handler. This * handler will later be used to create the given NPC. */ - virtual void loadNPC(const std::string &name, int id, int x, int y, + virtual void loadNPC(const std::string &name, + int id, + ManaServ::BeingGender gender, + int x, int y, const char *); /** @@ -186,6 +191,12 @@ class Script */ virtual void assignCallback(Ref &function) = 0; + /** + * Unreferences the script object given by \a ref, if any, and sets + * \a ref to invalid. + */ + virtual void unref(Ref &ref) = 0; + /** * Returns the currently executing thread, or null when no thread is * currently executing. -- cgit