diff options
author | Miroslav Remák | 2018-07-15 15:24:12 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-25 23:12:01 +0200 |
commit | d22da95282fea56caef5066331dc7d921b079811 (patch) | |
tree | c43242c5b89e46b1299e60876e5def412081f2de /engines/mutationofjb/commands | |
parent | 296835f84ae2b0c54882b8de19506989a3cf1fc4 (diff) | |
download | scummvm-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/mutationofjb/commands')
-rw-r--r-- | engines/mutationofjb/commands/randomcommand.cpp | 9 |
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; + } } } |