]> git.localhorst.tv Git - l2e.git/blobdiff - src/common/ScriptRunner.h
removed lazy fwd headers
[l2e.git] / src / common / ScriptRunner.h
index 4751908960d3dc630922207df86a02abdac6d98b..2a6b0de18fb880aad53dd956210e1cad2c3bce50 100644 (file)
@@ -1,15 +1,14 @@
-/*
- * ScriptRunner.h
- *
- *  Created on: Oct 13, 2012
- *      Author: holy
- */
-
 #ifndef COMMON_SCRIPTRUNNER_H_
 #define COMMON_SCRIPTRUNNER_H_
 
-#include "fwd.h"
-#include "../geometry/Vector.h"
+namespace common {
+       class ScriptHost;
+}
+
+#include "Script.h"
+#include "../math/Vector.h"
+
+#include <SDL.h>
 
 namespace common {
 
@@ -23,32 +22,38 @@ public:
        void Run(ScriptHost &, const Script &);
        bool Running() const;
 
-       void *Address0() const { return address0; }
-       void *Address1() const { return address1; }
-       int Integer0() const { return integer0; }
-       int Integer1() const { return integer1; }
-       const geometry::Vector<int> &Vector0() const { return vector0; }
-       const geometry::Vector<int> &Vector1() const { return vector1; }
+       void *AddressRegister(int n) const { return address[n]; }
+       int IntegerRegister(int n) const { return integer[n]; }
+       const math::Vector<int> &VectorRegister(int n) const { return vector[n]; }
 
 private:
        void Reset();
-       void Exec(unsigned char code);
+       void Exec(Script::Code code);
 
        void *PopAddress();
+       Script::Code PopCode();
        int PopInt();
-       const geometry::Vector<int> &PopVector();
+       const math::Vector<int> &PopVector();
+
+       void Compare(int, int);
+
+       enum CompareFlags {
+               COMPARE_EQUAL = 0,
+               COMPARE_LESS = 1,
+               COMPARE_GREATER = 2,
+       };
 
 private:
        ScriptHost *host;
        const Script *script;
        int cursor;
 
-       void *address0;
-       void *address1;
-       int integer0;
-       int integer1;
-       geometry::Vector<int> vector0;
-       geometry::Vector<int> vector1;
+       static const int numRegisters = 7;
+       void *address[numRegisters];
+       int integer[numRegisters];
+       math::Vector<int> vector[numRegisters];
+
+       Uint8 compare;
 
 };