aboutsummaryrefslogtreecommitdiff
path: root/engines/mutationofjb/commands/newroomcommand.cpp
diff options
context:
space:
mode:
authorĽubomír Remák2018-10-28 17:45:26 +0100
committerĽubomír Remák2018-10-28 17:45:26 +0100
commitd4087d790222484465de8c2dd4ed1be5e178d22e (patch)
treeaec84d74a2d8c88a8b4434195fa5de71c7602381 /engines/mutationofjb/commands/newroomcommand.cpp
parentbd58c0702bca96c1630d18e358ecc52920d189e1 (diff)
downloadscummvm-rg350-d4087d790222484465de8c2dd4ed1be5e178d22e.tar.gz
scummvm-rg350-d4087d790222484465de8c2dd4ed1be5e178d22e.tar.bz2
scummvm-rg350-d4087d790222484465de8c2dd4ed1be5e178d22e.zip
MUTATIONOFJB: Allow completion of first chapter.
Implement dummy SPECIALSHOW command (skip puzzle). Fix NEWROOM command parsing. Fix use action on inventory items. Fix interaction with certain doors.
Diffstat (limited to 'engines/mutationofjb/commands/newroomcommand.cpp')
-rw-r--r--engines/mutationofjb/commands/newroomcommand.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/engines/mutationofjb/commands/newroomcommand.cpp b/engines/mutationofjb/commands/newroomcommand.cpp
index 0f4d214f18..32c5e72bd9 100644
--- a/engines/mutationofjb/commands/newroomcommand.cpp
+++ b/engines/mutationofjb/commands/newroomcommand.cpp
@@ -27,7 +27,7 @@
#include "common/str.h"
/** @file
- * "NEWROOM " <sceneId> " " <x> " " <y> " " <frame>
+ * "NEWROOM " <sceneId> " " <x> " " <y> [ " " <frame> ]
*
* NEWROOM changes the current scene. While doing that, it also executes STARTUP section for the new room.
* However, after that, the execution goes back to the old script to finish commands after NEWROOM.
@@ -39,14 +39,16 @@
namespace MutationOfJB {
bool NewRoomCommandParser::parse(const Common::String &line, ScriptParseContext &, Command *&command) {
- if (line.size() < 23 || !line.hasPrefix("NEWROOM")) {
+ if (line.size() < 19 || !line.hasPrefix("NEWROOM")) {
return false;
}
const uint8 sceneId = atoi(line.c_str() + 8);
const uint16 x = atoi(line.c_str() + 12);
const uint16 y = atoi(line.c_str() + 16);
- const uint8 frame = atoi(line.c_str() + 20);
+ uint8 frame = 0;
+ if (line.size() >= 21)
+ frame = atoi(line.c_str() + 20);
command = new NewRoomCommand(sceneId, x, y, frame);
return true;
}