1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-12 08:04:09 +02:00
This commit is contained in:
XProger
2020-01-03 03:09:51 +03:00
3 changed files with 21 additions and 7 deletions

View File

@@ -3168,7 +3168,7 @@ namespace TR {
id = TR::getLevelID(stream.size, stream.name, version, isDemoLevel); id = TR::getLevelID(stream.size, stream.name, version, isDemoLevel);
if (version == VER_UNKNOWN || version == VER_TR1_PSX || version == VER_TR3_PSX) { if (version == VER_UNKNOWN || version == VER_TR1_PSX || version == VER_TR1_SAT || version == VER_TR3_PSX) {
stream.read(magic); stream.read(magic);
if (magic != MAGIC_TR1_PC && if (magic != MAGIC_TR1_PC &&
@@ -4068,12 +4068,16 @@ namespace TR {
LOG("! unknown face type: %d\n", type); LOG("! unknown face type: %d\n", type);
ASSERT(false); ASSERT(false);
} }
ASSERT(f.flags.value % 16 == 0);
ASSERT(f.flags.value / 16 < roomTexturesCount);
f.flags.value /= 16;
if (type == TYPE_R_TRANSP) if (type != TYPE_SPRITE) {
ASSERT(f.flags.value % 16 == 0);
ASSERT(f.flags.value / 16 < roomTexturesCount);
f.flags.value /= 16;
}
if (type == TYPE_R_TRANSP) {
roomTextures[f.flags.texture].attribute = 1; roomTextures[f.flags.texture].attribute = 1;
}
} }
} }
data.fCount = fIndex; data.fCount = fIndex;

View File

@@ -1371,10 +1371,12 @@ namespace TR {
CHECK_FILE("DELDATA/AMERTIT.RAW"); // PSX CHECK_FILE("DELDATA/AMERTIT.RAW"); // PSX
CHECK_FILE("DELDATA/JAPTIT.RAW"); // PSX JAP CHECK_FILE("DELDATA/JAPTIT.RAW"); // PSX JAP
CHECK_FILE("BINDATA/USATIT.BIN"); // SEGA CHECK_FILE("BINDATA/USATIT.BIN"); // SEGA
CHECK_FILE("BINDATA/TITLE1.BIN"); // SEGA
return "level/1/AMERTIT.PNG"; // WEB return "level/1/AMERTIT.PNG"; // WEB
case LVL_TR1_GYM : case LVL_TR1_GYM :
CHECK_FILE("DELDATA/GYMLOAD.RAW"); CHECK_FILE("DELDATA/GYMLOAD.RAW");
CHECK_FILE("BINDATA/GYM224.BIN"); CHECK_FILE("BINDATA/GYM224.BIN");
CHECK_FILE("BINDATA/GYM.BIN");
return "level/1/GYMLOAD.PNG"; return "level/1/GYMLOAD.PNG";
case LVL_TR1_1 : case LVL_TR1_1 :
case LVL_TR1_2 : case LVL_TR1_2 :
@@ -1382,6 +1384,7 @@ namespace TR {
case LVL_TR1_3B : case LVL_TR1_3B :
CHECK_FILE("DELDATA/AZTECLOA.RAW"); CHECK_FILE("DELDATA/AZTECLOA.RAW");
CHECK_FILE("BINDATA/AZTEC224.BIN"); CHECK_FILE("BINDATA/AZTEC224.BIN");
CHECK_FILE("BINDATA/AZTEC.BIN");
return "level/1/AZTECLOA.PNG"; return "level/1/AZTECLOA.PNG";
case LVL_TR1_4 : case LVL_TR1_4 :
case LVL_TR1_5 : case LVL_TR1_5 :
@@ -1390,18 +1393,21 @@ namespace TR {
case LVL_TR1_7B : case LVL_TR1_7B :
CHECK_FILE("DELDATA/GREEKLOA.RAW"); CHECK_FILE("DELDATA/GREEKLOA.RAW");
CHECK_FILE("BINDATA/GREEK224.BIN"); CHECK_FILE("BINDATA/GREEK224.BIN");
CHECK_FILE("BINDATA/GREEK.BIN");
return "level/1/GREEKLOA.PNG"; return "level/1/GREEKLOA.PNG";
case LVL_TR1_8A : case LVL_TR1_8A :
case LVL_TR1_8B : case LVL_TR1_8B :
case LVL_TR1_8C : case LVL_TR1_8C :
CHECK_FILE("DELDATA/EGYPTLOA.RAW"); CHECK_FILE("DELDATA/EGYPTLOA.RAW");
CHECK_FILE("BINDATA/EGYPT224.BIN"); CHECK_FILE("BINDATA/EGYPT224.BIN");
CHECK_FILE("BINDATA/EGYPT.BIN");
return "level/1/EGYPTLOA.PNG"; return "level/1/EGYPTLOA.PNG";
case LVL_TR1_10A : case LVL_TR1_10A :
case LVL_TR1_10B : case LVL_TR1_10B :
case LVL_TR1_10C : case LVL_TR1_10C :
CHECK_FILE("DELDATA/ATLANLOA.RAW"); CHECK_FILE("DELDATA/ATLANLOA.RAW");
CHECK_FILE("BINDATA/ATLAN224.BIN"); CHECK_FILE("BINDATA/ATLAN224.BIN");
CHECK_FILE("BINDATA/ATLAN.BIN");
return "level/1/ATLANLOA.PNG"; return "level/1/ATLANLOA.PNG";
// TR2 // TR2
case LVL_TR2_TITLE : case LVL_TR2_TITLE :

View File

@@ -638,8 +638,12 @@ struct Texture : GAPI::Texture {
} }
static uint8* LoadBIN(Stream &stream, uint32 &width, uint32 &height) { static uint8* LoadBIN(Stream &stream, uint32 &width, uint32 &height) {
height = 224; if (strstr(stream.name, "224.")) {
width = stream.size / height / 2; height = 224;
} else {
height = 256;
}
width = stream.size / height / 2;
uint8 *data = new uint8[stream.size]; uint8 *data = new uint8[stream.size];
stream.raw(data, stream.size); stream.raw(data, stream.size);