From d9c113c3153fc9a2466a477c6d14b312a3a7a6f5 Mon Sep 17 00:00:00 2001 From: ziplantil Date: Tue, 13 Aug 2019 22:31:41 +0300 Subject: [PATCH] load .s11,.s22 when loading D2 mission to allow custom sounds --- common/main/piggy.h | 2 ++ similar/main/mission.cpp | 11 ++++++++++- similar/main/piggy.cpp | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/common/main/piggy.h b/common/main/piggy.h index 1debcd4a0..a0c6b262a 100644 --- a/common/main/piggy.h +++ b/common/main/piggy.h @@ -165,6 +165,7 @@ extern void remove_char( char * s, char c ); // in piggy.c #define REMOVE_COMMENTS(s) remove_char((s),';') #define REMOVE_DOTS(s) remove_char((s),'.') +extern int Piggy_hamfile_version; extern unsigned Num_bitmap_files; extern int Num_sound_files; extern ubyte bogus_bitmap_initialized; @@ -183,6 +184,7 @@ extern array AllBitmaps; #endif void piggy_init_pigfile(const char *filename); int read_hamfile(); +int read_sndfile(); void swap_0_255(grs_bitmap &bmp); #endif diff --git a/similar/main/mission.cpp b/similar/main/mission.cpp index a23cf4c0b..480066bfa 100644 --- a/similar/main/mission.cpp +++ b/similar/main/mission.cpp @@ -753,7 +753,16 @@ static mission_list_type build_mission_list(int anarchy_mode) int load_mission_ham() { - read_hamfile(); + read_hamfile(); // intentionally can also read from the HOG + + if (Piggy_hamfile_version >= 3) + { + // re-read sounds in case mission has custom .sXX + Num_sound_files = 0; + read_sndfile(); + piggy_read_sounds(); + } + if (Current_mission->descent_version == Mission::descent_version_type::descent2a && Current_mission->alternate_ham_file) { diff --git a/similar/main/piggy.cpp b/similar/main/piggy.cpp index fe8cad77f..e9ccb77a3 100644 --- a/similar/main/piggy.cpp +++ b/similar/main/piggy.cpp @@ -1045,7 +1045,7 @@ int read_hamfile() return 1; } -static int read_sndfile() +int read_sndfile() { int snd_id,snd_version; int N_sounds;