diff options
author | Gregory Montoir | 2003-11-20 09:38:54 +0000 |
---|---|---|
committer | Gregory Montoir | 2003-11-20 09:38:54 +0000 |
commit | 5c04293c93daf1e30a0c88a0802f64f9a51a5e36 (patch) | |
tree | fcfe834458561c9e8b7801aec0e55a7f0f33525a /queen | |
parent | 4d4ba9ea558dafd67e198065b8fe7b05dfc6acfa (diff) | |
download | scummvm-rg350-5c04293c93daf1e30a0c88a0802f64f9a51a5e36.tar.gz scummvm-rg350-5c04293c93daf1e30a0c88a0802f64f9a51a5e36.tar.bz2 scummvm-rg350-5c04293c93daf1e30a0c88a0802f64f9a51a5e36.zip |
fix 'gorilla becoming invisible' issue (this was due to the missing CLEAR_COMMAND call in SPEAK/TALK ; for now, added a Command::clear before each 'sensible' Talk::* call)
svn-id: r11352
Diffstat (limited to 'queen')
-rw-r--r-- | queen/command.cpp | 2 | ||||
-rw-r--r-- | queen/logic.cpp | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/queen/command.cpp b/queen/command.cpp index 347211303e..1c97da9520 100644 --- a/queen/command.cpp +++ b/queen/command.cpp @@ -1295,6 +1295,8 @@ void Command::setObjects(uint16 command) { uint16 dstObj = ABS(cmdObj->dstObj); ObjectData *objData = _logic->objectData(dstObj); + debug(0, "Command::setObjects() - dstObj=%X srcObj=%X", cmdObj->dstObj, cmdObj->srcObj); + if (cmdObj->dstObj > 0) { // show the object objData->name = ABS(objData->name); diff --git a/queen/logic.cpp b/queen/logic.cpp index a6ba7565a1..985aee92d8 100644 --- a/queen/logic.cpp +++ b/queen/logic.cpp @@ -1341,6 +1341,12 @@ uint16 Logic::personSetup(uint16 noun, uint16 curImage) { // person is not standing in the area box, scale it accordingly scale = currentRoomArea(a)->calcScale(pad->y); } + + if (noun == 0) { + warning("Trying to setup person 0"); + return curImage; + } + _graphics->bankUnpack(pad->bobFrameStanding, p.bobFrame, p.bankNum); bool xflip = false; uint16 person = _roomData[_currentRoom] + noun; @@ -1851,6 +1857,7 @@ void Logic::dialogue(const char *dlgFile, int personInRoom, char *cutaway) { cutaway = cutawayFile; } _display->fullscreen(true); + _cmd->clear(false); Talk::talk(dlgFile, personInRoom, cutaway, _graphics, _input, this, _resource, _sound); _display->fullscreen(false); } @@ -1874,6 +1881,7 @@ void Logic::joeSpeak(uint16 descNum, bool objectType) { if (objectType) { descNum += JOE_RESPONSE_MAX; } + _cmd->clear(false); char descFilePrefix[10]; sprintf(descFilePrefix, "JOE%04i", descNum); Talk::speak(text, NULL, descFilePrefix, _graphics, _input, this, _resource, _sound); |