Fix gravity field drawing

This commit is contained in:
Simon Robertshaw 2011-10-21 17:25:14 +01:00
parent 29fa590f00
commit c1eb40af61

View File

@ -1519,22 +1519,23 @@ void draw_grav_zones(pixel * vid)
void draw_grav(pixel *vid) void draw_grav(pixel *vid)
{ {
int x, y, i; int x, y, i, ca;
float nx, ny, dist; float nx, ny, dist;
for (y=0; y<YRES/CELL; y++) for (y=0; y<YRES/CELL; y++)
{ {
for (x=0; x<XRES/CELL; x++) for (x=0; x<XRES/CELL; x++)
{ {
if(fabsf(gravpf[(y*XRES)+x]) <= 0.001f && fabsf(gravyf[((y*CELL)*XRES)+(x*CELL)]) <= 0.001f) ca = ((y*CELL)*XRES)+(x*CELL);
if(fabsf(gravpf[ca]) <= 0.001f && fabsf(gravyf[ca]) <= 0.001f)
continue; continue;
nx = x*CELL; nx = x*CELL;
ny = y*CELL; ny = y*CELL;
dist = fabsf(gravyf[(y*XRES)+x])+fabsf(gravxf[(y*XRES)+x]); dist = fabsf(gravyf[ca])+fabsf(gravxf[ca]);
for(i = 0; i < 4; i++) for(i = 0; i < 4; i++)
{ {
nx -= gravxf[((y*CELL)*XRES)+(x*CELL)]*0.5f; nx -= gravxf[ca]*0.5f;
ny -= gravyf[((y*CELL)*XRES)+(x*CELL)]*0.5f; ny -= gravyf[ca]*0.5f;
addpixel(vid, (int)(nx+0.5f), (int)(ny+0.5f), 255, 255, 255, (int)(dist*20.0f)); addpixel(vid, (int)(nx+0.5f), (int)(ny+0.5f), 255, 255, 255, (int)(dist*20.0f));
} }
} }