diff options
-rw-r--r-- | engines/zvision/puzzle.h | 3 | ||||
-rw-r--r-- | engines/zvision/scr_file_handling.cpp | 8 | ||||
-rw-r--r-- | engines/zvision/script_manager.h | 2 |
3 files changed, 7 insertions, 6 deletions
diff --git a/engines/zvision/puzzle.h b/engines/zvision/puzzle.h index 75d3dc0826..fd9c61e8bc 100644 --- a/engines/zvision/puzzle.h +++ b/engines/zvision/puzzle.h @@ -61,7 +61,8 @@ enum StateFlags : byte { struct Puzzle { uint32 key; Common::List<Criteria> criteriaList; - Common::List<ResultAction> resultActions; + // This has to be list of pointers because ResultAction is abstract + Common::List<ResultAction *> resultActions; byte flags; }; diff --git a/engines/zvision/scr_file_handling.cpp b/engines/zvision/scr_file_handling.cpp index 3171492717..eb867fa0a2 100644 --- a/engines/zvision/scr_file_handling.cpp +++ b/engines/zvision/scr_file_handling.cpp @@ -126,7 +126,7 @@ Criteria ScriptManager::parseCriteria(Common::SeekableReadStream &stream) const return criteria; } -void ScriptManager::parseResult(Common::SeekableReadStream &stream, Common::List<ResultAction> &actionList) const { +void ScriptManager::parseResult(Common::SeekableReadStream &stream, Common::List<ResultAction *> &actionList) const { // Loop until we find the closing brace Common::String line = stream.readLine(); trimCommentsAndWhiteSpace(line); @@ -135,11 +135,11 @@ void ScriptManager::parseResult(Common::SeekableReadStream &stream, Common::List while (!line.contains('}')) { // Parse for the action type if (line.matchString("*:add*", true)) { - actionList.push_back(ActionAdd(line)); + actionList.push_back(new ActionAdd(line)); } else if (line.matchString("*:animplay*", true)) { - actionList.push_back(ActionPlayAnimation(line)); + actionList.push_back(new ActionPlayAnimation(line)); } else if (line.matchString("*:animpreload*", true)) { - actionList.push_back(ActionPreloadAnimation(line)); + actionList.push_back(new ActionPreloadAnimation(line)); } else if (line.matchString("*:animunload*", true)) { diff --git a/engines/zvision/script_manager.h b/engines/zvision/script_manager.h index 7f46bd51fe..173705edf5 100644 --- a/engines/zvision/script_manager.h +++ b/engines/zvision/script_manager.h @@ -82,7 +82,7 @@ private: * @param stream Scr file stream * @return Created Results object */ - void parseResult(Common::SeekableReadStream &stream, Common::List<ResultAction> &actionList) 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 |