return img->framedata;
}
-int lbximg_loadpalette(FILE *f, struct lbx_colour palette[static 256])
+int
+lbximg_loadpalette(void *f, const struct lbx_file_ops *fops,
+ struct lbx_colour palette[static 256])
{
unsigned char entry[4];
int i;
for (i = 0; i < 256; i++) {
- if (fread(entry, sizeof entry, 1, f) != 1) {
+ if (fops->read(entry, sizeof entry, f) != sizeof entry) {
lbx_errno = (feof(f)) ? LBX_EEOF : -errno;
return -1;
}
return -1;
}
- palette[i] = (struct lbx_colour){
+ palette[i] = (struct lbx_colour) {
.red = entry[1] << 2,
.green = entry[2] << 2,
.blue = entry[3] << 2,
unsigned char **lbximg_getframe(LBX_IMG *img, int frame);
unsigned char **lbximg_getmask(LBX_IMG *img);
-int lbximg_loadpalette(FILE *f, struct lbx_colour palette[static 256]);
+int lbximg_loadpalette(void *f, const struct lbx_file_ops *fops,
+ struct lbx_colour palette[static 256]);
int lbximg_getpalette(LBX_IMG *img, struct lbx_colour palette[static 256]);
void lbximg_getinfo(LBX_IMG *img, struct lbx_imginfo *info);
}
/* Read the external palette, if any. */
- if (palf && lbximg_loadpalette(palf, palette) == -1) {
+ if (palf && lbximg_loadpalette(palf, &lbx_default_fops, palette) != 0) {
errmsg("error reading external palette: %s\n", lbx_strerror());
return -1;
}