diff options
Diffstat (limited to 'engines/zvision/scriptManager.h')
-rw-r--r-- | engines/zvision/scriptManager.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/engines/zvision/scriptManager.h b/engines/zvision/scriptManager.h index a6c9f2b57c..7f6cc2547a 100644 --- a/engines/zvision/scriptManager.h +++ b/engines/zvision/scriptManager.h @@ -23,8 +23,13 @@ #ifndef ZVISION_SCRIPT_MANAGER_H #define ZVISION_SCRIPT_MANAGER_H +#include "common/str.h" +#include "common/stream.h" #include "common/hashmap.h" +#include "zvision/puzzle.h" +#include "zvision/control.h" + namespace ZVision { class ScriptManager { @@ -34,6 +39,63 @@ public: private: Common::HashMap<uint32, byte> _globalState; + + /** + * Parses a script file into triggers and events + * + * @param fileName Name of the .scr file + */ + void parseScrFile(Common::String fileName); + + /** + * Helper method for parseScrFile. Parses the stream into a Puzzle object + * + * @param puzzle The object to store what is parsed + * @param stream Scr file stream + */ + void parsePuzzle(Puzzle *puzzle, Common::SeekableReadStream &stream); + + /** + * Helper method for parsePuzzle. Parses the stream into a 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. + * + * @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 + */ + void parseResultArguments(Result &result, const ObjectType *types, int numberOfArgs, ...) 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 + */ + 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 + */ + void parseControl(Control *control, Common::SeekableReadStream &stream); }; |