aboutsummaryrefslogtreecommitdiff
path: root/engines/made/scriptfuncs.h
diff options
context:
space:
mode:
authorFilippos Karapetis2008-04-20 14:43:56 +0000
committerFilippos Karapetis2008-04-20 14:43:56 +0000
commitd0590a09eac68d5cde64d37fb2e5bbd1471a676a (patch)
tree3e29857746449aaea4c9834bedad0d18ce487ff7 /engines/made/scriptfuncs.h
parentd484c7ed434e9f8e8267049fccbe3dbb5c39fe0b (diff)
downloadscummvm-rg350-d0590a09eac68d5cde64d37fb2e5bbd1471a676a.tar.gz
scummvm-rg350-d0590a09eac68d5cde64d37fb2e5bbd1471a676a.tar.bz2
scummvm-rg350-d0590a09eac68d5cde64d37fb2e5bbd1471a676a.zip
Initial import of the work in progress MADE engine
svn-id: r31599
Diffstat (limited to 'engines/made/scriptfuncs.h')
-rw-r--r--engines/made/scriptfuncs.h188
1 files changed, 188 insertions, 0 deletions
diff --git a/engines/made/scriptfuncs.h b/engines/made/scriptfuncs.h
new file mode 100644
index 0000000000..fc09886bf0
--- /dev/null
+++ b/engines/made/scriptfuncs.h
@@ -0,0 +1,188 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * 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; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef MADE_SCRIPTFUNCS_H
+#define MADE_SCRIPTFUNCS_H
+
+#include "common/util.h"
+#include "common/file.h"
+#include "common/stream.h"
+
+namespace Made {
+
+class MadeEngine;
+
+template<class Arg1, class Arg2, class Res>
+struct Functor2 : public Common::BinaryFunction<Arg1, Arg2, Res> {
+ virtual ~Functor2() {}
+
+ virtual bool isValid() const = 0;
+ virtual Res operator()(Arg1, Arg2) const = 0;
+};
+
+template<class Arg1, class Arg2, class Res, class T>
+class Functor2Mem : public Functor2<Arg1, Arg2, Res> {
+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<int16, int16*, int16> ExternalFunc;
+
+class ScriptFunctions {
+public:
+ ScriptFunctions(MadeEngine *vm) : _vm(vm) {}
+ virtual ~ScriptFunctions() {}
+ int16 callFunction(uint16 index, int16 argc, int16 *argv);
+ virtual void setupExternalsTable() = 0;
+protected:
+ MadeEngine *_vm;
+
+ Common::Array<const ExternalFunc*> _externalFuncs;
+
+};
+
+class ScriptFunctionsRtz : public ScriptFunctions {
+public:
+ ScriptFunctionsRtz(MadeEngine *vm) : ScriptFunctions(vm) {}
+ ~ScriptFunctionsRtz() {}
+ void setupExternalsTable();
+protected:
+
+ int16 o1_SYSTEM(int16 argc, int16 *argv);
+ int16 o1_INITGRAF(int16 argc, int16 *argv);
+ int16 o1_RESTOREGRAF(int16 argc, int16 *argv);
+ int16 o1_DRAWPIC(int16 argc, int16 *argv);
+ int16 o1_CLS(int16 argc, int16 *argv);
+ int16 o1_SHOWPAGE(int16 argc, int16 *argv);
+ int16 o1_EVENT(int16 argc, int16 *argv);
+ int16 o1_EVENTX(int16 argc, int16 *argv);
+ int16 o1_EVENTY(int16 argc, int16 *argv);
+ int16 o1_EVENTKEY(int16 argc, int16 *argv);
+ int16 o1_VISUALFX(int16 argc, int16 *argv);
+ int16 o1_PLAYSND(int16 argc, int16 *argv);
+ int16 o1_PLAYMUS(int16 argc, int16 *argv);
+ int16 o1_STOPMUS(int16 argc, int16 *argv);
+ int16 o1_ISMUS(int16 argc, int16 *argv);
+ int16 o1_TEXTPOS(int16 argc, int16 *argv);
+ int16 o1_FLASH(int16 argc, int16 *argv);
+ int16 o1_PLAYNOTE(int16 argc, int16 *argv);
+ int16 o1_STOPNOTE(int16 argc, int16 *argv);
+ int16 o1_PLAYTELE(int16 argc, int16 *argv);
+ int16 o1_STOPTELE(int16 argc, int16 *argv);
+ int16 o1_HIDECURS(int16 argc, int16 *argv);
+ int16 o1_SHOWCURS(int16 argc, int16 *argv);
+ int16 o1_MUSICBEAT(int16 argc, int16 *argv);
+ int16 o1_SCREENLOCK(int16 argc, int16 *argv);
+ int16 o1_ADDSPRITE(int16 argc, int16 *argv);
+ int16 o1_FREEANIM(int16 argc, int16 *argv);
+ int16 o1_DRAWSPRITE(int16 argc, int16 *argv);
+ int16 o1_ERASESPRITES(int16 argc, int16 *argv);
+ int16 o1_UPDATESPRITES(int16 argc, int16 *argv);
+ int16 o1_GETTIMER(int16 argc, int16 *argv);
+ int16 o1_SETTIMER(int16 argc, int16 *argv);
+ int16 o1_RESETTIMER(int16 argc, int16 *argv);
+ int16 o1_ALLOCTIMER(int16 argc, int16 *argv);
+ int16 o1_FREETIMER(int16 argc, int16 *argv);
+ int16 o1_PALETTELOCK(int16 argc, int16 *argv);
+ int16 o1_FONT(int16 argc, int16 *argv);
+ int16 o1_DRAWTEXT(int16 argc, int16 *argv);
+ int16 o1_HOMETEXT(int16 argc, int16 *argv);
+ int16 o1_TEXTRECT(int16 argc, int16 *argv);
+ int16 o1_TEXTXY(int16 argc, int16 *argv);
+ int16 o1_DROPSHADOW(int16 argc, int16 *argv);
+ int16 o1_TEXTCOLOR(int16 argc, int16 *argv);
+ int16 o1_OUTLINE(int16 argc, int16 *argv);
+ int16 o1_LOADCURSOR(int16 argc, int16 *argv);
+ int16 o1_SETGROUND(int16 argc, int16 *argv);
+ int16 o1_RESTEXT(int16 argc, int16 *argv);
+ int16 o1_CLIPAREA(int16 argc, int16 *argv);
+ int16 o1_SETCLIP(int16 argc, int16 *argv);
+ int16 o1_ISSND(int16 argc, int16 *argv);
+ int16 o1_STOPSND(int16 argc, int16 *argv);
+ int16 o1_PLAYVOICE(int16 argc, int16 *argv);
+ int16 o1_CDPLAY(int16 argc, int16 *argv);
+ int16 o1_STOPCD(int16 argc, int16 *argv);
+ int16 o1_CDSTATUS(int16 argc, int16 *argv);
+ int16 o1_CDTIME(int16 argc, int16 *argv);
+ int16 o1_CDPLAYSEG(int16 argc, int16 *argv);
+ int16 o1_PRINTF(int16 argc, int16 *argv);
+ int16 o1_MONOCLS(int16 argc, int16 *argv);
+ int16 o1_SNDENERGY(int16 argc, int16 *argv);
+ int16 o1_CLEARTEXT(int16 argc, int16 *argv);
+ int16 o1_ANIMTEXT(int16 argc, int16 *argv);
+ int16 o1_TEXTWIDTH(int16 argc, int16 *argv);
+ int16 o1_PLAYMOVIE(int16 argc, int16 *argv);
+ int16 o1_LOADSND(int16 argc, int16 *argv);
+ int16 o1_LOADMUS(int16 argc, int16 *argv);
+ int16 o1_LOADPIC(int16 argc, int16 *argv);
+ int16 o1_MUSICVOL(int16 argc, int16 *argv);
+ int16 o1_RESTARTEVENTS(int16 argc, int16 *argv);
+ int16 o1_PLACESPRITE(int16 argc, int16 *argv);
+ int16 o1_PLACETEXT(int16 argc, int16 *argv);
+ int16 o1_DELETECHANNEL(int16 argc, int16 *argv);
+ int16 o1_CHANNELTYPE(int16 argc, int16 *argv);
+ int16 o1_SETSTATE(int16 argc, int16 *argv);
+ int16 o1_SETLOCATION(int16 argc, int16 *argv);
+ int16 o1_SETCONTENT(int16 argc, int16 *argv);
+ int16 o1_EXCLUDEAREA(int16 argc, int16 *argv);
+ int16 o1_SETEXCLUDE(int16 argc, int16 *argv);
+ int16 o1_GETSTATE(int16 argc, int16 *argv);
+ int16 o1_PLACEANIM(int16 argc, int16 *argv);
+ int16 o1_SETFRAME(int16 argc, int16 *argv);
+ int16 o1_GETFRAME(int16 argc, int16 *argv);
+ int16 o1_GETFRAMECOUNT(int16 argc, int16 *argv);
+ int16 o1_PICWIDTH(int16 argc, int16 *argv);
+ int16 o1_PICHEIGHT(int16 argc, int16 *argv);
+ int16 o1_SOUNDRATE(int16 argc, int16 *argv);
+ int16 o1_DRAWANIMPIC(int16 argc, int16 *argv);
+ int16 o1_LOADANIM(int16 argc, int16 *argv);
+ int16 o1_READTEXT(int16 argc, int16 *argv);
+ int16 o1_READMENU(int16 argc, int16 *argv);
+ int16 o1_DRAWMENU(int16 argc, int16 *argv);
+ int16 o1_MENUCOUNT(int16 argc, int16 *argv);
+ int16 o1_SAVEGAME(int16 argc, int16 *argv);
+ int16 o1_LOADGAME(int16 argc, int16 *argv);
+ int16 o1_GAMENAME(int16 argc, int16 *argv);
+ int16 o1_SHAKESCREEN(int16 argc, int16 *argv);
+ int16 o1_PLACEMENU(int16 argc, int16 *argv);
+ int16 o1_SETVOLUME(int16 argc, int16 *argv);
+ int16 o1_WHATSYNTH(int16 argc, int16 *argv);
+ int16 o1_SLOWSYSTEM(int16 argc, int16 *argv);
+
+};
+
+} // End of namespace Made
+
+#endif /* MADE_H */