diff options
author | Gregory Montoir | 2003-12-10 15:36:44 +0000 |
---|---|---|
committer | Gregory Montoir | 2003-12-10 15:36:44 +0000 |
commit | ed2baf283e7181799f6e27176c0cb02851e4897c (patch) | |
tree | 6db8bc617d1beda2138e9faf1dd8e2407473e1ba /queen/cutaway.cpp | |
parent | d947a6ea778e6d1544ba905d89c84fb2d4b8dc9d (diff) | |
download | scummvm-rg350-ed2baf283e7181799f6e27176c0cb02851e4897c.tar.gz scummvm-rg350-ed2baf283e7181799f6e27176c0cb02851e4897c.tar.bz2 scummvm-rg350-ed2baf283e7181799f6e27176c0cb02851e4897c.zip |
- moved QueenEngine::roomChanged to Logic and enabled call from Cutaway code (this fixes the 2 irons bars being displayed at the end of c39a.cut)
- moved my 'panel being hidden after the head room display' fix
- fix problem in joeCutFacing / joeFacing in cutaway code
svn-id: r11553
Diffstat (limited to 'queen/cutaway.cpp')
-rw-r--r-- | queen/cutaway.cpp | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/queen/cutaway.cpp b/queen/cutaway.cpp index 2ac51f5132..02d181574f 100644 --- a/queen/cutaway.cpp +++ b/queen/cutaway.cpp @@ -150,6 +150,9 @@ void Cutaway::load(const char *filename) { _nextSentence = Talk::getString(_nextSentence, entryString, MAX_STRING_LENGTH); debug(0, "Entry string = '%s'", entryString); + _logic->joeCutFacing(_logic->joeFacing()); + _logic->joeFace(); + if (entryString[0] == '*' && entryString[1] == 'F' && entryString[3] == '\0') { @@ -403,6 +406,12 @@ void Cutaway::changeRooms(CutawayObject &object) { comPanel = 1; } + // FIXME: in the original engine, panel is hidden after displaying head. We do + // it before. + if(object.room == FAYE_HEAD || object.room == AZURA_HEAD || object.room == FRANK_HEAD) { + comPanel = 2; + } + RoomDisplayMode mode; if (!_logic->joeX() && !_logic->joeY()) { @@ -865,18 +874,8 @@ void Cutaway::run(char *nextFilename) { _input->cutawayRunning(true); - _logic->joeCutFacing(_logic->joeFacing()); - _logic->joeFace(); - _initialRoom = _temporaryRoom = _logic->currentRoom(); - // FIXME: hack to hide the panel *before* displaying a talking head. - // This was not handled in the original game, but I think it is - // better like that. - if (_talkTo != 0) { - _comPanel = 2; - } - _logic->display()->screenMode(_comPanel, true); if (_comPanel == 0 || _comPanel == 2) { @@ -1012,17 +1011,14 @@ void Cutaway::run(char *nextFilename) { } if (_logic->currentRoom() != _initialRoom) { - // XXX should call SETUP_ROOM here but that would introduce a - // circual dependency, so we try to set newRoom to the room - // instead - debug(0, "[Cutaway::run] Not calling SETUP_ROOM here, just setting newRoom to %i", _initialRoom); - _logic->newRoom(_initialRoom); - _logic->display()->fullscreen(true); - } - else { - _logic->joeX(0); - _logic->joeY(0); + _logic->currentRoom(_initialRoom); + _logic->changeRoom(); + if (_logic->currentRoom() == _logic->newRoom()) { + _logic->newRoom(0); + } } + _logic->joeX(0); + _logic->joeY(0); } _logic->joeCutFacing(0); |