diff options
Diffstat (limited to 'engines/sci/sfx/iterator.cpp')
-rw-r--r-- | engines/sci/sfx/iterator.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/engines/sci/sfx/iterator.cpp b/engines/sci/sfx/iterator.cpp index 5c458b4200..12f6850e7f 100644 --- a/engines/sci/sfx/iterator.cpp +++ b/engines/sci/sfx/iterator.cpp @@ -31,7 +31,6 @@ #include "sci/sfx/iterator_internal.h" #include "sci/engine/state.h" // for sfx_player_tell_synth :/ #include "sci/sfx/core.h" // for sfx_player_tell_synth -#include "sci/tools.h" #include "sound/audiostream.h" #include "sound/mixer.h" @@ -46,6 +45,21 @@ static const int MIDI_cmdlen[16] = {0, 0, 0, 0, 0, 0, 0, 0, /*#define DEBUG_DECODING*/ /*#define DEBUG_VERBOSE*/ +/** Find first set bit in bits and return its index. Returns 0 if bits is 0. */ +static int sci_ffs(int bits) { + if (!bits) + return 0; + + int retval = 1; + + while (!(bits & 1)) { + retval++; + bits >>= 1; + } + + return retval; +} + static void print_tabs_id(int nr, songit_id_t id) { while (nr-- > 0) fprintf(stderr, "\t"); |