diff options
| author | Filippos Karapetis | 2017-02-10 10:07:51 +0200 | 
|---|---|---|
| committer | Filippos Karapetis | 2017-02-10 10:07:51 +0200 | 
| commit | 3e4710bb209d1647d0cbc6fc6bffc7938a983303 (patch) | |
| tree | 6449fe7a41b2548816c300bd105e7cc00c887c2f | |
| parent | 95feec2aa6f7898cf82c4ebb206e88f9c7abb033 (diff) | |
| download | scummvm-rg350-3e4710bb209d1647d0cbc6fc6bffc7938a983303.tar.gz scummvm-rg350-3e4710bb209d1647d0cbc6fc6bffc7938a983303.tar.bz2 scummvm-rg350-3e4710bb209d1647d0cbc6fc6bffc7938a983303.zip | |
Revert "CRYO: Use cryo.dat for all game versions"
This reverts commit 6ff7ef95d73c29051a675d03bdccd42f0a5a215b.
| -rw-r--r-- | engines/cryo/eden.cpp | 52 | 
1 files changed, 24 insertions, 28 deletions
| diff --git a/engines/cryo/eden.cpp b/engines/cryo/eden.cpp index 214744f530..4ff18bf307 100644 --- a/engines/cryo/eden.cpp +++ b/engines/cryo/eden.cpp @@ -4729,30 +4729,29 @@ void EdenGame::convertMacToPC() {  }  void EdenGame::loadpermfiles() { -	Common::File f; -	const int kNumIcons = 136; -	const int kNumRooms = 424; - -	if (f.open("cryo.dat")) { -		const int dataSize = f.size() - 8 - 1;	// CRYODATA + version -		char headerId[9]; +	switch (_vm->getPlatform()) { +	case Common::kPlatformDOS: +	{ +		// Since PC version stores hotspots and rooms info in the executable, load them from premade resource file +		Common::File f; -		f.read(headerId, 8); -		headerId[8] = '\0'; -		if (strcmp(headerId, "CRYODATA")) -			error("Invalid aux data file"); +		if (f.open("cryo.dat")) { +			const int kNumIcons = 136; +			const int kNumRooms = 424; +			const int dataSize = f.size() - 8 - 1;	// CRYODATA + version +			char headerId[9]; +			 +			f.read(headerId, 8); +			headerId[8] = '\0'; +			if (strcmp(headerId, "CRYODATA")) +				error("Invalid aux data file"); -		if (f.readByte() != CRYO_DAT_VER) -			error("Incorrect aux data version"); +			if (f.readByte() != CRYO_DAT_VER) +				error("Incorrect aux data version"); -		if (dataSize != kNumIcons * sizeof(Icon) + kNumRooms * sizeof(Room)) -			error("Mismatching data in aux data file"); -	} else -		error("Can not load aux data"); +			if (dataSize != kNumIcons * sizeof(Icon) + kNumRooms * sizeof(Room)) +				error("Mismatching data in aux data file"); -	switch (_vm->getPlatform()) { -	case Common::kPlatformDOS: -		// Since PC version stores hotspots and rooms info in the executable, load them from premade resource file  			for (int i = 0; i < kNumIcons; i++) {  				_gameIcons[i].sx = f.readSint16LE();  				_gameIcons[i].sy = f.readSint16LE(); @@ -4775,25 +4774,22 @@ void EdenGame::loadpermfiles() {  				_gameRooms[i]._location = f.readByte();  				_gameRooms[i]._backgroundBankNum = f.readByte();  			} + +			f.close(); +		} else +			error("Can not load aux data"); +	}  		break;  	case Common::kPlatformMacintosh:  		loadIconFile(2498, _gameIcons);  		loadRoomFile(2497, _gameRooms);  		loadRawFile(2486, _gameLipsync);  		convertMacToPC(); - -		// Skip the icons and rooms of the DOS version -		f.skip(kNumIcons * sizeof(Icon) + kNumRooms * sizeof(Room));  		break;  	default:  		error("Unsupported platform");  	} -	// Read the common static data -	// TODO - -	f.close(); -  	loadRawFile(0, _mainBankBuf);  	loadRawFile(402, _gameFont);  	loadRawFile(404, _gameDialogs); | 
