aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/script/objects/wacobj.h
blob: 44cf2d3e850013b90cbbfcff1632441d2f02286c (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
#ifndef _WACOBJ_H
#define _WACOBJ_H

#include <api/script/script.h>
#include <api/script/scriptobj.h>
#include <api/script/objects/guiobj.h>
#include <bfc/ptrlist.h>
#include <api/wac/wac.h>

// {00C074A0-FEA2-49a0-BE8D-FABBDB161640}
static const GUID wacGuid = 
{ 0xc074a0, 0xfea2, 0x49a0, { 0xbe, 0x8d, 0xfa, 0xbb, 0xdb, 0x16, 0x16, 0x40 } };

#define WACOBJECT_SCRIPTPARENT RootObjectInstance

class WacScriptController : 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 int getInstantiable();
    virtual void *encapsulate(ScriptObject *o);
    virtual void deencapsulate(void *o);

  private:

    static function_descriptor_struct exportedFunction[];
    
};

extern WacScriptController *wacController;

#include <api/wnd/virtualwnd.h>

class WACObject : public WACOBJECT_SCRIPTPARENT {

public:
	WACObject();
	virtual ~WACObject();

	void setGUID(GUID g);
	GUID getGUID(void);

  int onScriptNotify(const wchar_t *s, int i1, int i2);

  // VCPU
  static scriptVar script_getGUID(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
  static scriptVar script_getName(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); 
  static scriptVar script_vcpu_onNotify(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar str, scriptVar i1, scriptVar i2);

  static scriptVar script_vcpu_dummy4(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a, scriptVar b, scriptVar c, scriptVar d);
  static scriptVar script_vcpu_dummy1(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a);
  static scriptVar script_vcpu_dummy0(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);

  // End VCPU

  static int notifyScripts(WaComponent *comp, const wchar_t *s, int i1, int i2);

  GUID myGUID;

private:

  static PtrList<WACObject> wacobjs;

public:
};


#endif