]> git.localhorst.tv Git - l2e.git/blob - src/common/ScriptRunner.h
4751908960d3dc630922207df86a02abdac6d98b
[l2e.git] / src / common / ScriptRunner.h
1 /*
2  * ScriptRunner.h
3  *
4  *  Created on: Oct 13, 2012
5  *      Author: holy
6  */
7
8 #ifndef COMMON_SCRIPTRUNNER_H_
9 #define COMMON_SCRIPTRUNNER_H_
10
11 #include "fwd.h"
12 #include "../geometry/Vector.h"
13
14 namespace common {
15
16 class ScriptRunner {
17
18 public:
19         ScriptRunner();
20         ~ScriptRunner();
21
22 public:
23         void Run(ScriptHost &, const Script &);
24         bool Running() const;
25
26         void *Address0() const { return address0; }
27         void *Address1() const { return address1; }
28         int Integer0() const { return integer0; }
29         int Integer1() const { return integer1; }
30         const geometry::Vector<int> &Vector0() const { return vector0; }
31         const geometry::Vector<int> &Vector1() const { return vector1; }
32
33 private:
34         void Reset();
35         void Exec(unsigned char code);
36
37         void *PopAddress();
38         int PopInt();
39         const geometry::Vector<int> &PopVector();
40
41 private:
42         ScriptHost *host;
43         const Script *script;
44         int cursor;
45
46         void *address0;
47         void *address1;
48         int integer0;
49         int integer1;
50         geometry::Vector<int> vector0;
51         geometry::Vector<int> vector1;
52
53 };
54
55 }
56
57 #endif /* COMMON_SCRIPTRUNNER_H_ */