aboutsummaryrefslogtreecommitdiff
path: root/engines/gob
diff options
context:
space:
mode:
authorSven Hesse2008-03-04 20:06:46 +0000
committerSven Hesse2008-03-04 20:06:46 +0000
commit17642259709a4f0b3d81dc83b7294df15e3920aa (patch)
tree7739dd271429ea324ecc51630dddd57044a1f2dd /engines/gob
parent4b4e93b19047b2319d77938696511dd6573bcd4f (diff)
downloadscummvm-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.h3
-rw-r--r--engines/gob/draw_v2.cpp22
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;