aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorMiroslav Remák2018-07-15 15:24:12 +0200
committerEugene Sandulenko2018-08-25 23:12:01 +0200
commitd22da95282fea56caef5066331dc7d921b079811 (patch)
treec43242c5b89e46b1299e60876e5def412081f2de /engines
parent296835f84ae2b0c54882b8de19506989a3cf1fc4 (diff)
downloadscummvm-rg350-d22da95282fea56caef5066331dc7d921b079811.tar.gz
scummvm-rg350-d22da95282fea56caef5066331dc7d921b079811.tar.bz2
scummvm-rg350-d22da95282fea56caef5066331dc7d921b079811.zip
MUTATIONOFJB: Fix multiple RANDOM commands in one script.
Diffstat (limited to 'engines')
-rw-r--r--engines/mutationofjb/commands/randomcommand.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/mutationofjb/commands/randomcommand.cpp b/engines/mutationofjb/commands/randomcommand.cpp
index ff03e96cc6..b9cc303125 100644
--- a/engines/mutationofjb/commands/randomcommand.cpp
+++ b/engines/mutationofjb/commands/randomcommand.cpp
@@ -74,8 +74,13 @@ bool RandomBlockStartParser::parse(const Common::String &line, ScriptParseContex
}
void RandomBlockStartParser::transition(ScriptParseContext &parseCtx, Command *, Command *newCommand, CommandParser *) {
- if (newCommand && parseCtx._pendingRandomCommand) {
- parseCtx._pendingRandomCommand->_choices.push_back(newCommand);
+ RandomCommand *randomCommand = parseCtx._pendingRandomCommand;
+ if (newCommand && randomCommand) {
+ randomCommand->_choices.push_back(newCommand);
+
+ if (randomCommand->_choices.size() == randomCommand->_numChoices) {
+ parseCtx._pendingRandomCommand = nullptr;
+ }
}
}