diff options
author | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-11-14 13:18:14 +0100 |
---|---|---|
committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-11-14 13:18:14 +0100 |
commit | 196c1c0bffa8bb594ff0a7442748030f47cc9c58 (patch) | |
tree | b60b3e3eff38907e2d8a94ce6aa7e63cd1a741c8 /src/scripting/script.hpp | |
parent | 23a94e7b154726599b9112b91ebedb32af9ff22c (diff) | |
download | manaserv-196c1c0bffa8bb594ff0a7442748030f47cc9c58.tar.gz manaserv-196c1c0bffa8bb594ff0a7442748030f47cc9c58.tar.bz2 manaserv-196c1c0bffa8bb594ff0a7442748030f47cc9c58.tar.xz manaserv-196c1c0bffa8bb594ff0a7442748030f47cc9c58.zip |
Renamed .hpp files into .h for consistency.
Also added an header to the autoattack.{h,cpp} files.
Big but trivial fix.
Diffstat (limited to 'src/scripting/script.hpp')
-rw-r--r-- | src/scripting/script.hpp | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/src/scripting/script.hpp b/src/scripting/script.hpp deleted file mode 100644 index 6f5dded6..00000000 --- a/src/scripting/script.hpp +++ /dev/null @@ -1,170 +0,0 @@ -/* - * The Mana Server - * Copyright (C) 2007-2010 The Mana World Development Team - * - * This file is part of The Mana Server. - * - * The Mana Server 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; either version 2 of the License, or - * any later version. - * - * The Mana Server is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; 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 The Mana Server. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef SCRIPTING_SCRIPT_HPP -#define SCRIPTING_SCRIPT_HPP - -#include <string> - -#include "game-server/character.hpp" -#include "game-server/eventlistener.hpp" - -class MapComposite; -class Thing; - -/** - * Abstract interface for calling functions written in an external language. - */ -class Script -{ - public: - - typedef Script *(*Factory)(); - - /** - * Registers a new scripting engine. - */ - static void registerEngine(const std::string &, Factory); - - /** - * Creates a new script context for a given engine. - */ - static Script *create(const std::string &engine); - - /** - * Constructor. - */ - Script(); - - /** - * Destructor. - */ - virtual ~Script() {} - - /** - * Loads a chunk of text into script context and executes its global - * statements. - * - * @param prog the program text to load - * @param name the name of the text, used for error reporting - */ - virtual void load(const char *prog, const char *name) = 0; - - /** - * Loads a text file into script context and executes its global - * statements. - */ - virtual bool loadFile(const std::string &); - - /** - * 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, - const char *); - - /** - * Called every tick for the script to manage its data. - * Calls the "update" function of the script by default. - */ - virtual void update(); - - /** - * Prepares a call to the given function. - * Only one function can be prepared at once. - */ - virtual void prepare(const std::string &name) = 0; - - /** - * Pushes an integer argument for the function being prepared. - */ - virtual void push(int) = 0; - - /** - * Pushes a string argument for the function being prepared. - */ - virtual void push(const std::string &) = 0; - - /** - * Pushes a pointer argument to a game entity. - * The interface can pass the pointer as an opaque value to the - * scripting engine, if needed. This value will usually be passed - * by the script to some callback functions. - */ - virtual void push(Thing *) = 0; - - /** - * Executes the function being prepared. - * @return the value returned by the script. - */ - virtual int execute() = 0; - - /** - * Sets associated map. - */ - void setMap(MapComposite *m) - { mMap = m; } - - /** - * Gets associated map. - */ - MapComposite *getMap() const - { return mMap; } - - EventListener *getScriptListener() - { return &mEventListener; } - - virtual void processDeathEvent(Being *thing) = 0; - - virtual void processRemoveEvent(Thing *thing) = 0; - - /** - * Runs a function from the global event script file - */ - static bool executeGlobalEventFunction(const std::string &function, Being *obj); - static void addDataToSpecial(int specialId, Special *special); - static bool performSpecialAction(int specialId, Being *caster); - - - protected: - static Script *globalEventScript; - static Script *specialActionsScript; - std::string mScriptFile; - - private: - MapComposite *mMap; - EventListener mEventListener; /**< Tracking of being deaths. */ - - friend struct ScriptEventDispatch; -}; - -struct ScriptEventDispatch: EventDispatch -{ - ScriptEventDispatch() - { - typedef EventListenerFactory< Script, &Script::mEventListener > Factory; - died = &Factory::create< Being, &Script::processDeathEvent >::function; - removed = &Factory::create< Thing, &Script::processRemoveEvent >::function; - } -}; - -static ScriptEventDispatch scriptEventDispatch; - -#endif |