From 2a4195c839c9a5ec60d440593ed6f90ce0e2e9d4 Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Tue, 17 Jun 2025 11:34:30 +0200 Subject: [PATCH] =?UTF-8?q?VERSI=C3=93=201.0.1=20-=20[FIX]=20view.clip()?= =?UTF-8?q?=20calculaba=20mal=20el=20ample=20i=20el=20alt=20de=20la=20zona?= =?UTF-8?q?=20clipada.=20-=20[FIX]=20view.origin()=20funcionava=20al=20rev?= =?UTF-8?q?es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mini.cpp | 15 +++++++++------ version.h | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) 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