X-Git-Url: https://jasonwoof.com/gitweb/?p=vor.git;a=blobdiff_plain;f=shape.c;h=f29bd6ed0a6edcbb59d68d4b784a193f71ee757e;hp=5aa7fb763b5a1600e6ce87313ea9c4ada83e27d0;hb=cd7fb220b16a73c15ff9dff7a5627bf78478875f;hpb=1f33a47c0e3b72d6050b72926643812237dc3f49 diff --git a/shape.c b/shape.c index 5aa7fb7..f29bd6e 100644 --- a/shape.c +++ b/shape.c @@ -7,7 +7,7 @@ get_shape(SDL_Surface *img, struct shape *s) { int x, y; uint16_t *px, transp; - uint32_t bits, bit, *p; + uint32_t bits = 0, bit, *p; if(img->format->BytesPerPixel != 2) { fprintf(stderr, "get_shape(): not a 16-bit image!\n"); @@ -116,6 +116,6 @@ pixel_collide(unsigned int xoff, unsigned int yoff, struct shape *r) if(xoff >= r->w || yoff >= r->h) return 0; - pmask = 1 << (xoff & 31); xoff >>= 5; - return r->mask[yoff*r->mw + xoff] & pmask; + pmask = 0x80000000 >> (xoff&0x1f); + return r->mask[(yoff*r->mw) + (xoff>>5)] & pmask; }