diff options
| -rw-r--r-- | engines/agi/agi.cpp | 19 | 
1 files changed, 18 insertions, 1 deletions
diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp index a50241e70c..109278fb94 100644 --- a/engines/agi/agi.cpp +++ b/engines/agi/agi.cpp @@ -24,7 +24,7 @@   */ - +#include "common/md5.h"  #include "common/events.h"  #include "common/file.h"  #include "common/savefile.h" @@ -515,6 +515,23 @@ int AgiEngine::agiLoadResource(int r, int n) {  	i = _loader->loadResource(r, n); +	// WORKAROUND: Patches broken picture 147 in a corrupted Amiga version of Gold Rush! (v2.05 1989-03-09). +	// The picture can be seen in room 147 after dropping through the outhouse's hole in room 146. +	if (i == errOK && getGameID() == GID_GOLDRUSH && r == rPICTURE && n == 147 && _game.dirPic[n].len == 1982) { +		uint8 *pic = _game.pictures[n].rdata; +		Common::MemoryReadStream picStream(pic, _game.dirPic[n].len); +		char md5str[32+1]; +		Common::md5_file_string(picStream, md5str, _game.dirPic[n].len); +		if (scumm_stricmp(md5str, "1c685eb048656cedcee4eb6eca2cecea") == 0) { +			pic[0x042] = 0x4B; // 0x49 -> 0x4B +			pic[0x043] = 0x66; // 0x26 -> 0x66 +			pic[0x204] = 0x68; // 0x28 -> 0x68 +			pic[0x6C0] = 0x2D; // 0x25 -> 0x2D +			pic[0x6F0] = 0xF0; // 0x70 -> 0xF0 +			pic[0x734] = 0x6F; // 0x2F -> 0x6F +		} +	} +  	return i;  }  | 
