aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/script/objects/smap.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/api/script/objects/smap.h')
-rw-r--r--Src/Wasabi/api/script/objects/smap.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/Src/Wasabi/api/script/objects/smap.h b/Src/Wasabi/api/script/objects/smap.h
new file mode 100644
index 00000000..7cd04b41
--- /dev/null
+++ b/Src/Wasabi/api/script/objects/smap.h
@@ -0,0 +1,74 @@
+#ifndef __SMAP_H
+#define __SMAP_H
+
+class SMap;
+class SRegion;
+
+#include <tataki/bitmap/bitmap.h>
+#include <api/script/script.h>
+#ifdef WASABI_WIDGETS_GUIOBJECT
+#include <api/script/objects/guiobj.h>
+#endif
+#include <api/script/objcontroller.h>
+#include <api/script/objects/rootobj.h>
+
+// {38603665-461B-42a7-AA75-D83F6667BF73}
+static const GUID mapGuid =
+{ 0x38603665, 0x461b, 0x42a7, { 0xaa, 0x75, 0xd8, 0x3f, 0x66, 0x67, 0xbf, 0x73 } };
+
+#define SMAP_SCRIPTPARENT RootObjectInstance
+
+class MapScriptController : public ScriptObjectControllerI {
+ public:
+
+ virtual const wchar_t *getClassName();
+ virtual const wchar_t *getAncestorClassName();
+ virtual ScriptObjectController *getAncestorController();
+ virtual int getNumFunctions();
+ virtual const function_descriptor_struct *getExportedFunctions();
+ virtual GUID getClassGuid();
+ virtual ScriptObject *instantiate();
+ virtual void destroy(ScriptObject *o);
+ virtual void *encapsulate(ScriptObject *o);
+ virtual void deencapsulate(void *o);
+
+ private:
+
+ static function_descriptor_struct exportedFunction[];
+
+};
+
+extern MapScriptController *mapController;
+
+class SMap : public SMAP_SCRIPTPARENT {
+public:
+ SMap();
+ virtual ~SMap();
+
+ int getValue(int x, int y);
+ int getARGBValue(int x, int y, int whichCol);
+ int inRegion(int x, int y);
+ int getWidth();
+ int getHeight();
+ void loadMap(const wchar_t *b);
+ static void instantiate(SMap *s);
+ virtual SkinBitmap *getBitmap() { return bmp; };
+ SRegion *getSRegion();
+
+private:
+ SkinBitmap *bmp;
+ SRegion *reg;
+ ScriptObject *region_so;
+
+public:
+ static scriptVar script_vcpu_loadMap(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar bitmap);
+ static scriptVar script_vcpu_getValue(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar x, scriptVar y);
+ static scriptVar script_vcpu_getARGBValue(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar x, scriptVar y, scriptVar whichCol);
+ static scriptVar script_vcpu_getWidth(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
+ static scriptVar script_vcpu_getHeight(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
+ static scriptVar script_vcpu_inRegion(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar x, scriptVar y);
+ static scriptVar script_vcpu_getRegion(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
+
+};
+
+#endif