get16le
get16le(s); // discard reserved
get16le(s); // discard reserved
get16le(s); // discard reserved
get16le(s); // discard reserved
s->img_x = get16le(s);
s->img_y = get16le(s);
if (get16le(s) != 1) return epuc("bad BMP", "bad BMP");
bpp = get16le(s);
uint32 v = (bpp == 16 ? get16le(s) : get32le(s));
get16le(s); // discard palette start
get16le(s); // discard palette length
get16le(s); // discard x origin
get16le(s); // discard y origin
tga_w = get16le(s);
tga_h = get16le(s);
int tga_palette_start = get16le(s);
int tga_palette_len = get16le(s);
int tga_x_origin = get16le(s);
int tga_y_origin = get16le(s);
int tga_width = get16le(s);
int tga_height = get16le(s);
g->w = get16le(s);
g->h = get16le(s);
x = get16le(s);
y = get16le(s);
w = get16le(s);
h = get16le(s);
get16le(s); // delay
uint32 z = get16le(s);
return z + (get16le(s) << 16);