aboutsummaryrefslogtreecommitdiff
path: root/queen
diff options
context:
space:
mode:
authorGregory Montoir2003-12-01 22:16:31 +0000
committerGregory Montoir2003-12-01 22:16:31 +0000
commit03e70632b2511eeb760bc8c2e9e5f0202c795233 (patch)
tree18f14eba7eaebbaf9cac7a2a42fe90682f0c574a /queen
parent57efe0438f25e57d58498ab225b6025033218a59 (diff)
downloadscummvm-rg350-03e70632b2511eeb760bc8c2e9e5f0202c795233.tar.gz
scummvm-rg350-03e70632b2511eeb760bc8c2e9e5f0202c795233.tar.bz2
scummvm-rg350-03e70632b2511eeb760bc8c2e9e5f0202c795233.zip
fix bug in command code, letting a failed command being executed
svn-id: r11452
Diffstat (limited to 'queen')
-rw-r--r--queen/command.cpp12
-rw-r--r--queen/logic.cpp2
2 files changed, 10 insertions, 4 deletions
diff --git a/queen/command.cpp b/queen/command.cpp
index bf9424cbad..80ada1b27c 100644
--- a/queen/command.cpp
+++ b/queen/command.cpp
@@ -263,9 +263,15 @@ void Command::executeCurrentAction(bool walk) {
if (_selCmd.action.value() == VERB_LOOK_AT) {
// Look At, do standard look at routine
look();
- cleanupCurrentAction();
- return;
}
+ else {
+ if (com->song < 0) {
+ _sound->playSong(-com->song);
+ }
+ clear(true);
+ }
+ cleanupCurrentAction();
+ return;
}
else if (cond == -2 && i == comMax) {
// only exit on a condition fail if at last command
@@ -424,7 +430,7 @@ void Command::executeCurrentAction(bool walk) {
// only play song if it's a PLAY AFTER type
if (com->song < 0) {
- _sound->playSong(com->song);
+ _sound->playSong(-com->song);
}
clear(true);
diff --git a/queen/logic.cpp b/queen/logic.cpp
index 564fb9ef23..03b98e75c2 100644
--- a/queen/logic.cpp
+++ b/queen/logic.cpp
@@ -400,7 +400,7 @@ void Logic::initialise() {
ObjectData* Logic::objectData(int index) {
- index = abs(index);
+ index = abs(index); // cyx: is that really necessary ?
if (index <= _numObjects)
return &_objectData[index];
else