diff options
Diffstat (limited to 'engines/cine/anim.cpp')
-rw-r--r-- | engines/cine/anim.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/cine/anim.cpp b/engines/cine/anim.cpp index c2c815596e..e628c4512e 100644 --- a/engines/cine/anim.cpp +++ b/engines/cine/anim.cpp @@ -53,7 +53,6 @@ Common::Array<AnimData> animDataTable; static const AnimDataEntry transparencyData[] = { {"ALPHA", 0xF}, - {"TITRE", 0xF}, {"TITRE2", 0xF}, {"ET", 0xC}, {"L311", 0x3}, @@ -586,6 +585,14 @@ int loadAni(const char *resourceName, int16 idx) { transparentColor = getAnimTransparentColor(resourceName); + // TODO: Merge this special case hack into getAnimTransparentColor somehow. + // HACK: Versions of TITRE.ANI with height 37 use color 0xF for transparency. + // Versions of TITRE.ANI with height 57 use color 0x0 for transparency. + // Fixes bug #2057619: FW: Glitches in title display of demo (regression). + if (scumm_stricmp(resourceName, "TITRE.ANI") == 0 && animHeader.frameHeight == 37) { + transparentColor = 0xF; + } + entry = idx < 0 ? emptyAnimSpace() : idx; assert(entry >= 0); @@ -761,7 +768,7 @@ int loadResource(const char *resourceName, int16 idx) { } else if (strstr(resourceName, ".AMI")) { warning("loadResource: Ignoring file '%s' (Load at %d)", resourceName, idx); } else if (strstr(resourceName, "ECHEC")) { // Echec (French) means failure - g_cine->quitGame(); + exitEngine = 1; } else { error("loadResource: Cannot determine type for '%s'", resourceName); } |