diff options
author | Travis Howell | 2006-04-15 23:23:55 +0000 |
---|---|---|
committer | Travis Howell | 2006-04-15 23:23:55 +0000 |
commit | e83841e8c790cf79341ab95fa793613e898b16d1 (patch) | |
tree | 0234e06ad268faa30b84acab4fc8989959d0ca47 /engines/simon/items.cpp | |
parent | 5b388fc48e8293dd4d6bb30538c00c3051f87164 (diff) | |
download | scummvm-rg350-e83841e8c790cf79341ab95fa793613e898b16d1.tar.gz scummvm-rg350-e83841e8c790cf79341ab95fa793613e898b16d1.tar.bz2 scummvm-rg350-e83841e8c790cf79341ab95fa793613e898b16d1.zip |
Fix speech id for o_screenTextMsg() in FF
svn-id: r21927
Diffstat (limited to 'engines/simon/items.cpp')
-rw-r--r-- | engines/simon/items.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/engines/simon/items.cpp b/engines/simon/items.cpp index 648d5b2fc2..e4437e8a55 100644 --- a/engines/simon/items.cpp +++ b/engines/simon/items.cpp @@ -1285,25 +1285,29 @@ void SimonEngine::o_screenTextMsg() { uint color = getVarOrByte(); uint stringId = getNextStringID(); const byte *string_ptr = NULL; - uint speech_id = 0; + uint speechId = 0; TextLocation *tl; if (stringId != 0xFFFF) string_ptr = getStringPtrByID(stringId); - if (getFeatures() & GF_TALKIE) - speech_id = (uint16)getNextWord(); + if (getFeatures() & GF_TALKIE) { + if (getGameType() == GType_FF) + speechId = (uint16)getVarOrWord(); + else + speechId = (uint16)getNextWord(); + } if (getGameType() == GType_FF) vgaSpriteId = 1; tl = getTextLocation(vgaSpriteId); - if (_speech && speech_id != 0) - playSpeech(speech_id, vgaSpriteId); - if ((getGameType() == GType_SIMON2) && (getFeatures() & GF_TALKIE) && speech_id == 0) + if (_speech && speechId != 0) + playSpeech(speechId, vgaSpriteId); + if ((getGameType() == GType_SIMON2) && (getFeatures() & GF_TALKIE) && speechId == 0) kill_sprite_simon2(2, vgaSpriteId + 2); - if (string_ptr != NULL && (speech_id == 0 || _subtitles)) + if (string_ptr != NULL && (speechId == 0 || _subtitles)) printScreenText(vgaSpriteId, color, (const char *)string_ptr, tl->x, tl->y, tl->width); } |