diff options
author | Sven Hesse | 2008-03-04 20:06:46 +0000 |
---|---|---|
committer | Sven Hesse | 2008-03-04 20:06:46 +0000 |
commit | 17642259709a4f0b3d81dc83b7294df15e3920aa (patch) | |
tree | 7739dd271429ea324ecc51630dddd57044a1f2dd /engines/gob | |
parent | 4b4e93b19047b2319d77938696511dd6573bcd4f (diff) | |
download | scummvm-rg350-17642259709a4f0b3d81dc83b7294df15e3920aa.tar.gz scummvm-rg350-17642259709a4f0b3d81dc83b7294df15e3920aa.tar.bz2 scummvm-rg350-17642259709a4f0b3d81dc83b7294df15e3920aa.zip |
Added a workaround for the swapped dialog lines when talking to the mayor in some versions Gob2
svn-id: r31042
Diffstat (limited to 'engines/gob')
-rw-r--r-- | engines/gob/draw.h | 3 | ||||
-rw-r--r-- | engines/gob/draw_v2.cpp | 22 |
2 files changed, 25 insertions, 0 deletions
diff --git a/engines/gob/draw.h b/engines/gob/draw.h index 786d85694e..9ba589aa53 100644 --- a/engines/gob/draw.h +++ b/engines/gob/draw.h @@ -194,6 +194,9 @@ public: Draw_v2(GobEngine *vm); virtual ~Draw_v2() {} + +private: + uint8 _mayorWorkaroundStatus; }; class Draw_Bargon: public Draw_v2 { diff --git a/engines/gob/draw_v2.cpp b/engines/gob/draw_v2.cpp index 3dc2140026..a4417f7f1d 100644 --- a/engines/gob/draw_v2.cpp +++ b/engines/gob/draw_v2.cpp @@ -38,6 +38,7 @@ namespace Gob { Draw_v2::Draw_v2(GobEngine *vm) : Draw_v1(vm) { + _mayorWorkaroundStatus = 0; } void Draw_v2::initScreen() { @@ -207,6 +208,27 @@ void Draw_v2::printTotText(int16 id) { _vm->validateLanguage(); + // WORKAROUND: In the scripts of some Gobliins 2 versions, the dialog text IDs + // for Fingus and the mayor are swapped. + if ((_vm->getGameType() == kGameTypeGob2) && !_vm->isCD() && + (!scumm_stricmp(_vm->_game->_curTotFile, "gob07.tot"))) { + + if (id == 24) { + if (_mayorWorkaroundStatus == 1) { + _mayorWorkaroundStatus = 0; + id = 31; + } else + _mayorWorkaroundStatus = 2; + } else if (id == 31) { + if (_mayorWorkaroundStatus == 0) { + _mayorWorkaroundStatus = 1; + id = 24; + } else + _mayorWorkaroundStatus = 0; + } + + } + size = _vm->_game->_totTextData->items[id].size; dataPtr = _vm->_game->_totTextData->dataPtr + _vm->_game->_totTextData->items[id].offset; |