1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-02-22 22:42:49 +01:00
This commit is contained in:
XProger 2020-01-03 03:09:51 +03:00
commit eccadd7cd3
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);
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);
if (magic != MAGIC_TR1_PC &&
@ -4068,12 +4068,16 @@ namespace TR {
LOG("! unknown face type: %d\n", type);
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;
}
}
}
data.fCount = fIndex;

View File

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

View File

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