From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Wasabi/api/script/objects/smap.h | 74 ++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Src/Wasabi/api/script/objects/smap.h (limited to 'Src/Wasabi/api/script/objects/smap.h') 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 +#include +#ifdef WASABI_WIDGETS_GUIOBJECT +#include +#endif +#include +#include + +// {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 -- cgit