From d06023576dc3089d6bbb93114bf308aa3cd28aa5 Mon Sep 17 00:00:00 2001 From: n-a-c-h <> Date: Sun, 15 May 2005 23:10:42 +0000 Subject: [PATCH] Improved bit buffer loader, mouse playback now functional. --- zsnes/src/zmovie.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/zsnes/src/zmovie.c b/zsnes/src/zmovie.c index a53f7153..960303fe 100644 --- a/zsnes/src/zmovie.c +++ b/zsnes/src/zmovie.c @@ -1211,14 +1211,11 @@ static void replay_pad(unsigned char pad, unsigned char flag, unsigned char *buf if (flag & bit_mask) { - if (*skip_bits && ((*skip_bits&7) < 4)) - { - fread(buffer + *skip_bits/8, 1, 1, zmv_vars.fp); - } - else - { - fread(buffer + *skip_bits/8, 1, 2, zmv_vars.fp); - } + size_t bits_needed = pad_bit_decoder(pad, buffer, 0); + size_t leftover_bits = (8 - (*skip_bits&7)) & 7; + bits_needed -= leftover_bits; + + fread(buffer + (*skip_bits>>3), 1, (bits_needed>>3) + ((bits_needed&7) ? 1 : 0), zmv_vars.fp); *skip_bits = pad_bit_decoder(pad, buffer, *skip_bits); } *current_state = *last_state;