From 1ee5520854db0f7097554da048c28b389326a0c6 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 4 Oct 2009 18:52:34 +0000 Subject: (svn r17698) -Fix (r17140) [FS#3205]: Convert endian after loading sounds from file. --- src/sound.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/sound.cpp') diff --git a/src/sound.cpp b/src/sound.cpp index 5be043eee..3b81af08b 100644 --- a/src/sound.cpp +++ b/src/sound.cpp @@ -130,6 +130,16 @@ static bool SetBankSource(MixerChannel *mc, const SoundEntry *sound) } } +#if TTD_ENDIAN == TTD_BIG_ENDIAN + if (sound->bits_per_sample == 16) { + uint num_samples = sound->file_size / 2; + int16 *samples = (int16 *)mem; + for (uint i = 0; i < num_samples; i++) { + samples[i] = BSWAP16(samples[i]); + } + } +#endif + assert(sound->bits_per_sample == 8 || sound->bits_per_sample == 16); assert(sound->channels == 1); assert(sound->file_size != 0 && sound->rate != 0); -- cgit v1.2.3-54-g00ecf