aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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