From 8ed0a70b0622bcb1daf86975f18a9b932eccd8de Mon Sep 17 00:00:00 2001 From: Arnaud Boutonné Date: Tue, 17 Aug 2010 07:41:15 +0000 Subject: Fascination - Fix the texts not cleaned up (eg Hotel Hall). Thanks SylvainTV for identifying the problem svn-id: r52135 --- engines/gob/draw_v2.cpp | 5 ++++- engines/gob/gob.cpp | 2 +- engines/gob/init.h | 2 +- engines/gob/init_fascin.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++ engines/gob/module.mk | 1 + 5 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 engines/gob/init_fascin.cpp (limited to 'engines/gob') diff --git a/engines/gob/draw_v2.cpp b/engines/gob/draw_v2.cpp index 5d001f4b59..4ecb759e9d 100644 --- a/engines/gob/draw_v2.cpp +++ b/engines/gob/draw_v2.cpp @@ -230,7 +230,10 @@ void Draw_v2::printTotText(int16 id) { destX = (READ_LE_UINT16(ptr) & 0x7FFF) * 2; spriteRight = READ_LE_UINT16(ptr + 4) * 2 + 1; } else { - destX = READ_LE_UINT16(ptr) & 0x7FFF; +// No mask used for Fascination + destX = READ_LE_UINT16(ptr); + if (_vm->getGameType() != kGameTypeFascination) + destX &= 0x7FFF; spriteRight = READ_LE_UINT16(ptr + 4); } diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp index f904c8c802..02a8af92bc 100644 --- a/engines/gob/gob.cpp +++ b/engines/gob/gob.cpp @@ -376,7 +376,7 @@ bool GobEngine::initGameParts() { break; case kGameTypeFascination: - _init = new Init_v2(this); + _init = new Init_Fascination(this); _video = new Video_v2(this); _inter = new Inter_Fascination(this); _mult = new Mult_v2(this); diff --git a/engines/gob/init.h b/engines/gob/init.h index d4481d8e16..8716c5e67d 100644 --- a/engines/gob/init.h +++ b/engines/gob/init.h @@ -96,7 +96,7 @@ public: Init_Fascination(GobEngine *vm); ~Init_Fascination(); - void initGame(); + void updateConfig(); }; } // End of namespace Gob diff --git a/engines/gob/init_fascin.cpp b/engines/gob/init_fascin.cpp new file mode 100644 index 0000000000..3f049e14db --- /dev/null +++ b/engines/gob/init_fascin.cpp @@ -0,0 +1,49 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +#include "common/endian.h" + +#include "gob/gob.h" +#include "gob/init.h" +#include "gob/game.h" +#include "gob/global.h" + +namespace Gob { + +Init_Fascination::Init_Fascination(GobEngine *vm) : Init_v2(vm) { +} + +Init_Fascination::~Init_Fascination() { +} + +void Init_Fascination::updateConfig() { +// In Fascination, some empty texts are present and used to clean up the text area. +// Using _doSubtitles does the trick. +// The first obvious example is in the hotel hall: 'Use ...' is displayed at the same +// place than the character dialogs. + _vm->_global->_doSubtitles = true; +} + +} // End of namespace Gob diff --git a/engines/gob/module.mk b/engines/gob/module.mk index 69e7dbcf52..862d1424a8 100644 --- a/engines/gob/module.mk +++ b/engines/gob/module.mk @@ -23,6 +23,7 @@ MODULE_OBJS := \ init.o \ init_v1.o \ init_v2.o \ + init_fascin.o \ init_v3.o \ init_v4.o \ init_v6.o \ -- cgit v1.2.3