diff options
| -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); |
