aboutsummaryrefslogtreecommitdiff
path: root/engines/prince/script.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/prince/script.h')
-rw-r--r--engines/prince/script.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/engines/prince/script.h b/engines/prince/script.h
index 8f1ede3a83..a323c1784d 100644
--- a/engines/prince/script.h
+++ b/engines/prince/script.h
@@ -45,7 +45,9 @@ public:
bool loadFromStream(Common::SeekableReadStream &stream);
void step();
- void setFlag(Flags::Id flag, uint16 value);
+
+ void setFlagValue(Flags::Id flag, uint16 value);
+ uint16 getFlagValue(Flags::Id flag);
private:
PrinceEngine *_vm;
@@ -60,7 +62,9 @@ private:
uint16 _lastOpcode;
uint32 _lastInstruction;
byte _result;
- int16 _flags[2000];
+ static const uint16 MAX_FLAGS = 2000;
+ static const uint16 FLAG_MASK = 0x8000;
+ int16 _flags[MAX_FLAGS];
bool _opcodeNF;
@@ -83,8 +87,13 @@ private:
uint8 getCodeByte(uint32 address);
uint8 readScript8bits();
uint16 readScript16bits();
+
uint32 readScript32bits();
uint16 readScript8or16bits();
+
+ uint16 readScriptValue();
+ Flags::Id readScriptFlagId() { return (Flags::Id)readScript16bits(); }
+
void debugScript(const char *s, ...);
void SetVoice(uint32 slot);