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.
This commit is contained in:
Sven Hesse 2016-07-20 21:53:29 +02:00
parent 46aadaa0e0
commit aca13f7ba9

View File

@ -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: