aboutsummaryrefslogtreecommitdiff
path: root/engines/zvision/scriptManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/zvision/scriptManager.h')
-rw-r--r--engines/zvision/scriptManager.h63
1 files changed, 33 insertions, 30 deletions
diff --git a/engines/zvision/scriptManager.h b/engines/zvision/scriptManager.h
index 0bae91945d..563a010de5 100644
--- a/engines/zvision/scriptManager.h
+++ b/engines/zvision/scriptManager.h
@@ -29,17 +29,27 @@
#include "zvision/puzzle.h"
#include "zvision/control.h"
+#include "zvision/singleValueContainer.h"
namespace ZVision {
class ScriptManager {
-public:
- ScriptManager();
- ~ScriptManager();
-
private:
+ /** Holds the global state variables. Optimize for fast random access */
Common::HashMap<uint32, byte> _globalState;
+ /** Holds the currently active puzzles. Optimize for fast iteration */
+ Common::List<Puzzle> _puzzles;
+ /** Holds the currently active controls. Optimize for fast iteration */
+ Common::List<Control> _controls;
+public:
+
+ void initialize();
+ byte getStateValue(uint32 key);
+ void setStateValue(uint32 key, byte value);
+ void addToStateValue(uint32 key, byte valueToAdd);
+
+private:
/**
* Parses a script file into triggers and events
*
@@ -48,54 +58,47 @@ private:
void parseScrFile(Common::String fileName);
/**
- * Helper method for parseScrFile. Parses the stream into a Puzzle object
+ * Parses the stream into a Puzzle object
+ * Helper method for parseScrFile.
*
- * @param puzzle The object to store what is parsed
- * @param stream Scr file stream
+ * @param puzzle The object to store what is parsed
+ * @param stream Scr file stream
*/
- void parsePuzzle(Puzzle *puzzle, Common::SeekableReadStream &stream);
+ void parsePuzzle(Puzzle &puzzle, Common::SeekableReadStream &stream);
/**
- * Helper method for parsePuzzle. Parses the stream into a Criteria object
+ * Parses the stream into a Criteria object
+ * Helper method for parsePuzzle.
*
- * @param stream Scr file stream
- * @return Created Criteria object
+ * @param stream Scr file stream
+ * @return Created Criteria object
*/
Criteria parseCriteria(Common::SeekableReadStream &stream) const;
/**
- * Helper method for parsePuzzle. Parses the stream into a Results object
- *
- * @param stream Scr file stream
- * @return Created Results object
- */
- Result parseResult(Common::SeekableReadStream &stream) const;
-
- /**
- * Helper method for parseResults. Parses a number of strings into Object types.
+ * Parses the stream into a Results object
+ * Helper method for parsePuzzle.
*
- * @param result Results object to store the arguments in
- * @param types The type of the each of the arguments. IE. BOOL, UINT32, etc.
- * @param numberOfArgs The number of arguments. This has to equal the length of 'types' AND the number of optional arguments passed.
- * @param String arguments wanting to be parsed
+ * @param stream Scr file stream
+ * @return Created Results object
*/
- void parseResultArguments(Result &result, const ObjectType *types, int numberOfArgs, ...) const;
+ void parseResult(Common::SeekableReadStream &stream, Common::List<ResultAction> &actionList) const;
/**
* Helper method for parsePuzzle. Parses the stream into a bitwise or of the StateFlags enum
*
- * @param stream Scr file stream
- * @return Bitwise or of all the flags set within the puzzle
+ * @param stream Scr file stream
+ * @return Bitwise or of all the flags set within the puzzle
*/
byte parseFlags(Common::SeekableReadStream &stream) const;
/**
* Helper method for parseScrFile. Parses the stream into a Control object
*
- * @param control The object to store what is parsed
- * @param stream Scr file stream
+ * @param control The object to store what is parsed
+ * @param stream Scr file stream
*/
- void parseControl(Control *control, Common::SeekableReadStream &stream);
+ void parseControl(Control &control, Common::SeekableReadStream &stream);
};