diff --git a/engines/made/scriptfuncs.cpp b/engines/made/scriptfuncs.cpp index 8d18b76c538..03ea762d789 100644 --- a/engines/made/scriptfuncs.cpp +++ b/engines/made/scriptfuncs.cpp @@ -51,7 +51,7 @@ int16 ScriptFunctions::callFunction(uint16 index, int16 argc, int16 *argv) { return (*_externalFuncs[index])(argc, argv); } -typedef Functor2Mem ExternalFuncRtz; +typedef Common::Functor2Mem ExternalFuncRtz; #define External(x) ExternalFuncRtz(this, &ScriptFunctionsRtz::x) void ScriptFunctionsRtz::setupExternalsTable() { static const ExternalFuncRtz externalsTable[] = { diff --git a/engines/made/scriptfuncs.h b/engines/made/scriptfuncs.h index ec8982af06b..971db34ffda 100644 --- a/engines/made/scriptfuncs.h +++ b/engines/made/scriptfuncs.h @@ -28,37 +28,14 @@ #include "common/util.h" #include "common/file.h" +#include "common/func.h" #include "common/stream.h" namespace Made { class MadeEngine; -template -struct Functor2 : public Common::BinaryFunction { - virtual ~Functor2() {} - - virtual bool isValid() const = 0; - virtual Res operator()(Arg1, Arg2) const = 0; -}; - -template -class Functor2Mem : public Functor2 { -public: - typedef Res (T::*FuncType)(Arg1, Arg2); - - Functor2Mem(T *t, const FuncType &func) : _t(t), _func(func) {} - - bool isValid() const { return _func != 0; } - Res operator()(Arg1 v1, Arg2 v2) const { - return (_t->*_func)(v1, v2); - } -private: - mutable T *_t; - Res (T::*_func)(Arg1, Arg2); -}; - -typedef Functor2 ExternalFunc; +typedef Common::Functor2 ExternalFunc; class ScriptFunctions { public: