diff options
author | Sven Hesse | 2016-07-20 21:53:29 +0200 |
---|---|---|
committer | Sven Hesse | 2016-07-20 21:59:22 +0200 |
commit | aca13f7ba95f0707d6d68fb52bfa36b1d420a42c (patch) | |
tree | 908575b0f0f08c46000cdee7d7d5ff0df9e6c27b /engines/gob | |
parent | 46aadaa0e02e1b9a3b1778c2cddb0f96fbe78eac (diff) | |
download | scummvm-rg350-aca13f7ba95f0707d6d68fb52bfa36b1d420a42c.tar.gz scummvm-rg350-aca13f7ba95f0707d6d68fb52bfa36b1d420a42c.tar.bz2 scummvm-rg350-aca13f7ba95f0707d6d68fb52bfa36b1d420a42c.zip |
GOB: Work around broken resource sizes in Gobliiins EGA
The EGA version of Gobliiins, similar to Little Red Riding Hood,
claims a few resources are larger than they actually are. The original
happily reads past the resource structure, but we'll instead fix
the size of the resource after loading.
This fixes bug #7162.
Diffstat (limited to 'engines/gob')
-rw-r--r-- | engines/gob/gob.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp index b51a6382e6..dfbff33c63 100644 --- a/engines/gob/gob.cpp +++ b/engines/gob/gob.cpp @@ -429,6 +429,23 @@ Common::Error GobEngine::initGameParts() { _map = new Map_v1(this); _goblin = new Goblin_v1(this); _scenery = new Scenery_v1(this); + + // WORKAROUND: The EGA version of Gobliiins claims a few resources are + // larger than they actually are. The original happily reads + // past the resource structure boundary, but we don't. + // To make sure we don't throw an error like we normally do + // (which leads to these resources not loading), we enable + // this workaround that automatically fixes the resources + // sizes. + // + // This glitch is visible in levels + // - 03 (ICIGCAA) + // - 09 (ICVGCGT) + // - 16 (TCVQRPM) + // - 20 (NNGWTTO) + // See also ScummVM bug report #7162. + if (isEGA()) + _resourceSizeWorkaround = true; break; case kGameTypeGeisha: |