diff --git a/mini.cpp b/mini.cpp index 176c6fb..2074823 100644 --- a/mini.cpp +++ b/mini.cpp @@ -268,7 +268,10 @@ int surfh(uint8_t surface) { void recalculate_clip() { - ds::clip[0] = ds::clp[0]; ds::clip[1] = ds::clp[1]; ds::clip[2] = ds::clp[2]-ds::clp[0]-1; ds::clip[3] = ds::clp[3]-ds::clp[1]-1; + ds::clip[0] = ds::clp[0]; + ds::clip[1] = ds::clp[1]; + ds::clip[2] = ds::clp[2]+ds::clp[0]-1; + ds::clip[3] = ds::clp[3]+ds::clp[1]-1; if (ds::clip[0]<0) ds::clip[0]=0; if (ds::clip[1]<0) ds::clip[1]=0; if (ds::clip[2]>=dest_surface->w) ds::clip[2]=dest_surface->w-1; @@ -519,7 +522,7 @@ int main(int argc,char*argv[]){ } void simple_pset(int x, int y, uint8_t color) { - x -= ds::origin[0]; y -= ds::origin[1]; + x += ds::origin[0]; y += ds::origin[1]; if (x < ds::clip[0] || x > ds::clip[2] || y < ds::clip[1] || y > ds::clip[3]) return; if (x < 0 || x >= dest_surface->w || y < 0 || y >= dest_surface->h) return; DEST(x, y) = color; @@ -623,7 +626,7 @@ void palt(uint8_t col, bool t) { */ void pset(int x, int y) { - x -= ds::origin[0]; y -= ds::origin[1]; + x += ds::origin[0]; y += ds::origin[1]; if (x < ds::clip[0] || x > ds::clip[2] || y < ds::clip[1] || y > ds::clip[3]) return; do_pset(x,y); } @@ -634,7 +637,7 @@ void pset(int x, int y, uint8_t color) { } uint8_t pget(int x, int y) { - x -= ds::origin[0]; y -= ds::origin[1]; + x += ds::origin[0]; y += ds::origin[1]; //if (x < 0 || x > (dest_surface->w-1) || y < 0 || y > (dest_surface->h-1)) return 0; if (x < ds::clip[0] || x > ds::clip[2] || y < ds::clip[1] || y > ds::clip[3]) return 0; return DEST(x, y); @@ -1073,7 +1076,7 @@ void map() { //int celx, int cely, int sx, int sy, uint8_t celw, uint8_t celh, u int celx = 0; int cely = 0; //if (celw <= 0 || celh <= 0 || celw >= TILES_WIDTH || celh >= TILES_HEIGHT) return; - int sx = -ds::origin[0]; int sy = -ds::origin[1]; + int sx = ds::origin[0]; int sy = ds::origin[1]; if (sx+celw*8 < ds::clip[0] || sx > ds::clip[2] || sy+celh*8 < ds::clip[1] || sy > ds::clip[3]) return; if (sx<0) { int diff = -sx/8; @@ -1087,7 +1090,7 @@ void map() { //int celx, int cely, int sx, int sy, uint8_t celw, uint8_t celh, u celh -= diff; sy += diff*8; } - sx += ds::origin[0]; sy += ds::origin[1]; + sx -= ds::origin[0]; sy -= ds::origin[1]; for (int y=0; y