mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-21 19:51:49 +00:00
CRYO: Add handling for the cryo.dat aux data file
This commit is contained in:
parent
29616127b3
commit
248e5d3c59
@ -48,6 +48,8 @@
|
||||
|
||||
namespace Cryo {
|
||||
|
||||
#define CRYO_DAT_VER 1 // 1 byte
|
||||
|
||||
int16 _torchTick = 0;
|
||||
int16 _glowIndex = 0;
|
||||
int16 _torchCurIndex = 0;
|
||||
@ -4733,11 +4735,23 @@ void EdenGame::loadpermfiles() {
|
||||
// Since PC version stores hotspots and rooms info in the executable, load them from premade resource file
|
||||
Common::File f;
|
||||
|
||||
if (f.open("led.dat")) {
|
||||
if (f.open("cryo.dat")) {
|
||||
const int kNumIcons = 136;
|
||||
const int kNumRooms = 424;
|
||||
if (f.size() != kNumIcons * sizeof(Icon) + kNumRooms * sizeof(Room))
|
||||
error("Mismatching aux data");
|
||||
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 (dataSize != kNumIcons * sizeof(Icon) + kNumRooms * sizeof(Room))
|
||||
error("Mismatching data in aux data file");
|
||||
|
||||
for (int i = 0; i < kNumIcons; i++) {
|
||||
_gameIcons[i].sx = f.readSint16LE();
|
||||
_gameIcons[i].sy = f.readSint16LE();
|
||||
|
Loading…
x
Reference in New Issue
Block a user