From 03e70632b2511eeb760bc8c2e9e5f0202c795233 Mon Sep 17 00:00:00 2001 From: Gregory Montoir Date: Mon, 1 Dec 2003 22:16:31 +0000 Subject: fix bug in command code, letting a failed command being executed svn-id: r11452 --- queen/command.cpp | 12 +++++++++--- queen/logic.cpp | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'queen') 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 -- cgit v1.2.3