#ifndef __SREGION_H #define __SREGION_H class SRegion; #ifndef _NOSTUDIO #include #include #endif #include #include // {3A370C02-3CBF-439f-84F1-86885BCF1E36} static const GUID regionGuid = { 0x3a370c02, 0x3cbf, 0x439f, { 0x84, 0xf1, 0x86, 0x88, 0x5b, 0xcf, 0x1e, 0x36 } }; #define SREGION_SCRIPTPARENT RootObjectInstance class RegionScriptController : 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 RegionScriptController *regionController; #ifndef _NOSTUDIO class SRegion : public SREGION_SCRIPTPARENT { public: SRegion(); virtual ~SRegion(); int inRegion(int x, int y); void loadFromMap(SMap *map, int byte, int inv); void loadFromBitmap(const wchar_t *p); int getBoundX(); int getBoundY(); int getBoundW(); int getBoundH(); api_region *getRegion(); void addRegion(SRegion *s); void subRegion(SRegion *s); void offset(int x, int y); void stretch(double s); void copy(SRegion *s); private: RegionI *reg; #else class SRegion : SREGION_SCRIPTPARENT { #endif // FG> // -- SCRIPT ----------------------------------------------------- public: static scriptVar script_vcpu_loadFromMap(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar map, scriptVar byte, scriptVar inv); static scriptVar script_vcpu_loadFromBitmap(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar map); static scriptVar script_vcpu_inRegion(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar x, scriptVar y); static scriptVar script_vcpu_add(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r); static scriptVar script_vcpu_sub(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r); static scriptVar script_vcpu_offset(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar x, scriptVar y); static scriptVar script_vcpu_stretch(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar s); static scriptVar script_vcpu_copy(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r); static scriptVar script_vcpu_getBoundX(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); static scriptVar script_vcpu_getBoundY(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); static scriptVar script_vcpu_getBoundW(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); static scriptVar script_vcpu_getBoundH(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); }; #endif