diff options
author | James Brown | 2002-10-01 09:27:09 +0000 |
---|---|---|
committer | James Brown | 2002-10-01 09:27:09 +0000 |
commit | 4d24a0bfbe389d498d281860415de5839635e37c (patch) | |
tree | e652210136922c0ea59f9a48af97f2ef9440cb87 /scumm | |
parent | d6db8560c61fae5597ab108dbf8adf745d1728d4 (diff) | |
download | scummvm-rg350-4d24a0bfbe389d498d281860415de5839635e37c.tar.gz scummvm-rg350-4d24a0bfbe389d498d281860415de5839635e37c.tar.bz2 scummvm-rg350-4d24a0bfbe389d498d281860415de5839635e37c.zip |
Patch #616092: Full Throttle dialog fix
svn-id: r5058
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/script_v2.cpp | 6 | ||||
-rw-r--r-- | scumm/scumm.h | 2 | ||||
-rw-r--r-- | scumm/scummvm.cpp | 6 | ||||
-rw-r--r-- | scumm/verbs.cpp | 1 |
4 files changed, 14 insertions, 1 deletions
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index 281af06af4..5f8a7c5a52 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -2077,6 +2077,12 @@ void Scumm::o6_verbOps() VerbSlot *vs; byte *ptr, op; + // Full Throttle implements conversation by creating new verbs, one + // for each option, but it never tells when to actually draw them. + + if (_gameId == GID_FT) + _verbRedraw = true; + op = fetchScriptByte(); if (op == 196) { _curVerb = pop(); diff --git a/scumm/scumm.h b/scumm/scumm.h index 82d4ae57c6..bd14d72e01 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -756,7 +756,7 @@ public: uint32 _IM00_offs, _PALS_offs; //ender: fullscreen - bool _fullRedraw, _BgNeedsRedraw, _shakeEnabled; + bool _fullRedraw, _BgNeedsRedraw, _shakeEnabled, _verbRedraw; bool _screenEffectFlag, _completeScreenRedraw; int _cursorHotspotX, _cursorHotspotY, _cursorWidth, _cursorHeight; diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp index 2fa7c228eb..f071bdcce0 100644 --- a/scumm/scummvm.cpp +++ b/scumm/scummvm.cpp @@ -471,6 +471,10 @@ int Scumm::scummLoop(int delta) } processDrawQue(); + + if (_verbRedraw) + redrawVerbs(); + setActorRedrawFlags(true, true); resetActorBgs(); @@ -1480,6 +1484,8 @@ void Scumm::launch() _maxHeapThreshold = 450000; _minHeapThreshold = 400000; + _verbRedraw = false; + // Create a primary virtual screen _videoBuffer = (byte *)calloc((_realWidth + 8) * _realHeight, 1); diff --git a/scumm/verbs.cpp b/scumm/verbs.cpp index f3b82cbf37..507701e8c5 100644 --- a/scumm/verbs.cpp +++ b/scumm/verbs.cpp @@ -31,6 +31,7 @@ void Scumm::redrawVerbs() for (i = 0; i < _maxVerbs; i++) drawVerb(i, 0); verbMouseOver(0); + _verbRedraw = false; } void Scumm::checkExecVerbs() |