]> git.draconx.ca Git - liblbx.git/blobdiff - src/image.c
liblbx: Clear the image mask when backtracking frames.
[liblbx.git] / src / image.c
index 83bac2149dc0d8b02075a8c6c30b39603e756898..76fbfed3528ccf2d8561c7ee1bf9502e7d6eef99 100644 (file)
 #include "image.h"
 
 #define FLAG_OVERWRITE 0x0400 /* Draw each frame on a clean slate (unsure). */
+#define FLAG_BUILDING  0x0800 /* Buildings have this, related to shadow? */
 #define FLAG_PALETTE   0x1000 /* Image contains embedded palette. */
 #define FLAG_LOOPING   0x2000 /* Loop over all frames in the image (unsure). */
-#define FLAG_ALL (FLAG_OVERWRITE|FLAG_PALETTE|FLAG_LOOPING)
+
+#define FLAG_ALL (FLAG_OVERWRITE|FLAG_BUILDING|FLAG_PALETTE|FLAG_LOOPING)
 
 #define HDR_LEN 12
 
@@ -289,8 +291,10 @@ unsigned char **lbximg_getframe(struct lbx_image *img, int frame)
                memset(img->mask[0],      0, img->width * img->height);
        } else {
                /* Start over if we are backtracking. */
-               if (img->currentframe > frame)
+               if (img->currentframe > frame) {
+                       memset(img->mask[0], 0, img->width * img->height);
                        img->currentframe = -1;
+               }
 
                /* We must have previous frame decoded to continue. */
                if (frame > img->currentframe + 1) {