From de820e36f8032ed699065a0bc0fc425d66ef42f9 Mon Sep 17 00:00:00 2001 From: jacksonmj Date: Wed, 17 Aug 2011 23:40:42 +0100 Subject: Only do grav lensing when N-grav is on, and round coordinates correctly diff --git a/src/graphics.c b/src/graphics.c index 0b6dfd7..6225c6f 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -4009,12 +4009,12 @@ void render_gravlensing(pixel *src, pixel * dst) { for(ny = 0; ny < YRES; ny++) { - rx = nx-(gravxf[(ny*XRES)+nx]*0.75f); - ry = ny-(gravyf[(ny*XRES)+nx]*0.75f); - gx = nx-(gravxf[(ny*XRES)+nx]*0.875f); - gy = ny-(gravyf[(ny*XRES)+nx]*0.875f); - bx = nx-(gravxf[(ny*XRES)+nx]); - by = ny-(gravyf[(ny*XRES)+nx]); + rx = (int)(nx-gravxf[(ny*XRES)+nx]*0.75f+0.5f); + ry = (int)(ny-gravyf[(ny*XRES)+nx]*0.75f+0.5f); + gx = (int)(nx-gravxf[(ny*XRES)+nx]*0.875f+0.5f); + gy = (int)(ny-gravyf[(ny*XRES)+nx]*0.875f+0.5f); + bx = (int)(nx-gravxf[(ny*XRES)+nx]+0.5f); + by = (int)(ny-gravyf[(ny*XRES)+nx]+0.5f); if(rx > 0 && rx < XRES && ry > 0 && ry < YRES && gx > 0 && gx < XRES && gy > 0 && gy < YRES && bx > 0 && bx < XRES && by > 0 && by < YRES) { t = dst[ny*(XRES+BARSIZE)+nx]; diff --git a/src/main.c b/src/main.c index 19aa160..c865cde 100644 --- a/src/main.c +++ b/src/main.c @@ -1848,7 +1848,7 @@ int main(int argc, char *argv[]) ClearScreen(); #else - if(cmode==CM_FANCY) + if(ngrav_enable && cmode==CM_FANCY) { part_vbuf = part_vbuf_store; memset(vid_buf, 0, (XRES+BARSIZE)*YRES*PIXELSIZE); @@ -1955,7 +1955,7 @@ int main(int argc, char *argv[]) render_signs(part_vbuf); - if(cmode==CM_FANCY) + if(ngrav_enable && cmode==CM_FANCY) render_gravlensing(part_vbuf, vid_buf); memset(vid_buf+((XRES+BARSIZE)*YRES), 0, (PIXELSIZE*(XRES+BARSIZE))*MENUSIZE);//clear menu areas -- cgit v0.9.2-21-gd62e