1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-10 23:24:06 +02:00

Support opentomb audio mapping (TR1) (#145)

This commit is contained in:
Alfredo Monclus
2018-12-06 18:19:06 -03:00
committed by Timur Gagiev
parent 698d931e8d
commit e75106d2af

View File

@@ -896,6 +896,16 @@ namespace TR {
ASSERT(track < COUNT(TR2_TRACK_MAPPING));
return TR2_TRACK_MAPPING[track];
}
static const uint8 TR1_TRACK_MAPPING[] = {
2, 2, 2, 11, 12, 3, 13, 14, 15, 16, 17, 18, 19, 60, 20, 21, 22, 23, 24, 25, 26, 27,
7, 8, 9, 10, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 28, 4, 5, 6
};
if (version & VER_TR1) {
ASSERT(track < COUNT(TR1_TRACK_MAPPING));
return TR1_TRACK_MAPPING[track];
}
return track;
}
@@ -920,7 +930,6 @@ namespace TR {
}
void getGameTrack(Version version, int track, Stream::Callback callback, void *userData) {
track = remapTrack(version, track);
char title[32];
if (useEasyStart) {
@@ -930,8 +939,12 @@ namespace TR {
case VER_TR1_PSX :
sprintf(title, "track_%02d", track);
if (!checkTrack("", title) && !checkTrack("audio/1/", title) && !checkTrack("audio/", title)) {
callback(NULL, userData);
return;
track = remapTrack(version, track);
sprintf(title, "%03d", track);
if (!checkTrack("", title) && !checkTrack("audio/1/", title) && !checkTrack("audio/", title)) {
callback(NULL, userData);
return;
}
}
break;
case VER_TR2_PC :
@@ -940,6 +953,7 @@ namespace TR {
// callback(Sound::openCDAudioMP3("audio/cdaudio.dat", "audio/cdaudio.mp3", track), userData);
// return;
//}
track = remapTrack(version, track);
sprintf(title, "track_%02d", track);
if (!checkTrack("", title) && !checkTrack("audio/2/", title) && !checkTrack("audio/", title)) {
callback(NULL, userData);
@@ -958,9 +972,14 @@ namespace TR {
case VER_TR1_PC :
case VER_TR1_PSX :
sprintf(title, "audio/1/track_%02d.ogg", track);
if (Stream::existsContent(title))
break;
track = remapTrack(version, track);
sprintf(title, "audio/1/%03d.ogg", track);
break;
case VER_TR2_PC :
case VER_TR2_PSX :
track = remapTrack(version, track);
sprintf(title, "audio/2/track_%02d.ogg", track);
break;
case VER_TR3_PC :