diff --git a/mini.cpp b/mini.cpp index ee3f6ea..9225e6e 100644 --- a/mini.cpp +++ b/mini.cpp @@ -165,33 +165,33 @@ uint8_t loadsurf(const char* filename) { switch(header.bpp) { case 1: for (int x=0; x<(surfaces[i].w/8); ++x) { - CURRENT(x*8 , surfaces[i].w-1-y) = buffer[x+y*(surfaces[i].w/8)] >> 7; - CURRENT(x*8+1, surfaces[i].w-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 6 ) & 0x1; - CURRENT(x*8+2, surfaces[i].w-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 5 ) & 0x1; - CURRENT(x*8+3, surfaces[i].w-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 4 ) & 0x1; - CURRENT(x*8+4, surfaces[i].w-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 3 ) & 0x1; - CURRENT(x*8+5, surfaces[i].w-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 2 ) & 0x1; - CURRENT(x*8+6, surfaces[i].w-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 1 ) & 0x1; - CURRENT(x*8+7, surfaces[i].w-1-y) = buffer[x+y*(surfaces[i].w/8)] & 0x1; + CURRENT(x*8 , surfaces[i].h-1-y) = buffer[x+y*(surfaces[i].w/8)] >> 7; + CURRENT(x*8+1, surfaces[i].h-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 6 ) & 0x1; + CURRENT(x*8+2, surfaces[i].h-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 5 ) & 0x1; + CURRENT(x*8+3, surfaces[i].h-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 4 ) & 0x1; + CURRENT(x*8+4, surfaces[i].h-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 3 ) & 0x1; + CURRENT(x*8+5, surfaces[i].h-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 2 ) & 0x1; + CURRENT(x*8+6, surfaces[i].h-1-y) = ( buffer[x+y*(surfaces[i].w/8)] >> 1 ) & 0x1; + CURRENT(x*8+7, surfaces[i].h-1-y) = buffer[x+y*(surfaces[i].w/8)] & 0x1; } break; case 2: for (int x=0; x<(surfaces[i].w/4); ++x) { - CURRENT(x*4 , surfaces[i].w-1-y) = buffer[x+y*(surfaces[i].w/4)] >> 6; - CURRENT(x*4+1, surfaces[i].w-1-y) = ( buffer[x+y*(surfaces[i].w/4)] >> 4 ) & 0x3; - CURRENT(x*4+2, surfaces[i].w-1-y) = ( buffer[x+y*(surfaces[i].w/4)] >> 2 ) & 0x3; - CURRENT(x*4+3, surfaces[i].w-1-y) = buffer[x+y*(surfaces[i].w/4)] & 0x3; + CURRENT(x*4 , surfaces[i].h-1-y) = buffer[x+y*(surfaces[i].w/4)] >> 6; + CURRENT(x*4+1, surfaces[i].h-1-y) = ( buffer[x+y*(surfaces[i].w/4)] >> 4 ) & 0x3; + CURRENT(x*4+2, surfaces[i].h-1-y) = ( buffer[x+y*(surfaces[i].w/4)] >> 2 ) & 0x3; + CURRENT(x*4+3, surfaces[i].h-1-y) = buffer[x+y*(surfaces[i].w/4)] & 0x3; } break; case 4: for (int x=0; x<(surfaces[i].w/2); ++x) { - CURRENT(x*2, surfaces[i].w-1-y) = buffer[x+y*(surfaces[i].w/2)] >> 4; - CURRENT(x*2+1, surfaces[i].w-1-y) = buffer[x+y*(surfaces[i].w/2)] & 0xf; + CURRENT(x*2, surfaces[i].h-1-y) = buffer[x+y*(surfaces[i].w/2)] >> 4; + CURRENT(x*2+1, surfaces[i].h-1-y) = buffer[x+y*(surfaces[i].w/2)] & 0xf; } break; case 8: for (int x=0; x<(surfaces[i].w); ++x) { - CURRENT(x, surfaces[i].w-1-y) = buffer[x+y*(surfaces[i].w)]; + CURRENT(x, surfaces[i].h-1-y) = buffer[x+y*(surfaces[i].w)]; } break; }