aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/script/objects/sregion.h
blob: 00d0e607026f92a801d6f540335dfcc115c5a183 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#ifndef __SREGION_H
#define __SREGION_H

class SRegion;

#ifndef _NOSTUDIO

#include <tataki/region/region.h>
#include <api/script/objects/smap.h>

#endif

#include <api/script/script.h>
#include <api/script/scriptobj.h>

// {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