diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2011-12-19 21:35:40 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2011-12-19 21:35:40 (GMT) |
| commit | 810adc81fe672cab81a6d5f412961e9c4c682bbd (patch) | |
| tree | 425e5a83791150427296f1ed053674f0abb77bb3 /src/elements | |
| parent | a523dcab798722f569f801ee7190bbff1d104770 (diff) | |
| download | powder-810adc81fe672cab81a6d5f412961e9c4c682bbd.zip powder-810adc81fe672cab81a6d5f412961e9c4c682bbd.tar.gz | |
Use reduced resolution gravity maps for improved performance
Diffstat (limited to 'src/elements')
| -rw-r--r-- | src/elements/gbmb.c | 4 | ||||
| -rw-r--r-- | src/elements/gpmp.c | 4 | ||||
| -rw-r--r-- | src/elements/nbhl.c | 2 | ||||
| -rw-r--r-- | src/elements/nwhl.c | 2 | ||||
| -rw-r--r-- | src/elements/stkm.c | 4 |
5 files changed, 8 insertions, 8 deletions
diff --git a/src/elements/gbmb.c b/src/elements/gbmb.c index d606312..c31f323 100644 --- a/src/elements/gbmb.c +++ b/src/elements/gbmb.c @@ -19,8 +19,8 @@ int update_GBMB(UPDATE_FUNC_ARGS) { } } if(parts[i].life>20) - gravmap[y/CELL][x/CELL] = 20; + gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = 20; if(parts[i].life<20 && parts[i].life>=1) - gravmap[y/CELL][x/CELL] = -80; + gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = -80; return 0; } diff --git a/src/elements/gpmp.c b/src/elements/gpmp.c index 1766b3b..1f2be1d 100644 --- a/src/elements/gpmp.c +++ b/src/elements/gpmp.c @@ -11,9 +11,9 @@ int update_GPMP(UPDATE_FUNC_ARGS) { if (parts[i].temp<= -256.0+273.15) parts[i].temp = -256.0+273.15; - gravmap[y/CELL][x/CELL] = 0.2f*(parts[i].temp-273.15); + gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] = 0.2f*(parts[i].temp-273.15); if (y+CELL<YRES && pv[y/CELL+1][x/CELL]<(parts[i].temp-273.15)) - gravmap[y/CELL+1][x/CELL] += 0.1f*((parts[i].temp-273.15)-gravmap[y/CELL+1][x/CELL]); + gravmap[(y/CELL+1)*(XRES/CELL)+(x/CELL)] += 0.1f*((parts[i].temp-273.15)-gravmap[(y/CELL+1)*(XRES/CELL)+(x/CELL)]); for (rx=-2; rx<3; rx++) for (ry=-2; ry<3; ry++) if (x+rx>=0 && y+ry>0 && x+rx<XRES && y+ry<YRES && (rx || ry)) diff --git a/src/elements/nbhl.c b/src/elements/nbhl.c index 69b6881..5f2cd46 100644 --- a/src/elements/nbhl.c +++ b/src/elements/nbhl.c @@ -1,6 +1,6 @@ #include <element.h> int update_NBHL(UPDATE_FUNC_ARGS) { - gravmap[y/CELL][x/CELL] += 0.1f; + gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] += 0.1f; return 0; } diff --git a/src/elements/nwhl.c b/src/elements/nwhl.c index 8515542..674ede3 100644 --- a/src/elements/nwhl.c +++ b/src/elements/nwhl.c @@ -1,6 +1,6 @@ #include <element.h> int update_NWHL(UPDATE_FUNC_ARGS) { - gravmap[y/CELL][x/CELL] -= 0.1f; + gravmap[(y/CELL)*(XRES/CELL)+(x/CELL)] -= 0.1f; return 0; } diff --git a/src/elements/stkm.c b/src/elements/stkm.c index 40e4416..08cb1ba 100644 --- a/src/elements/stkm.c +++ b/src/elements/stkm.c @@ -80,8 +80,8 @@ int run_stickman(playerst* playerp, UPDATE_FUNC_ARGS) { } } - gvx += gravxf[XRES*(int)parts[i].y + (int)parts[i].x]; - gvy += gravyf[XRES*(int)parts[i].y + (int)parts[i].x]; + gvx += gravx[((int)parts[i].y/CELL)*(XRES/CELL)+((int)parts[i].x/CELL)]; + gvy += gravy[((int)parts[i].y/CELL)*(XRES/CELL)+((int)parts[i].x/CELL)]; parts[i].vx -= gvx*dt; //Head up! parts[i].vy -= gvy*dt; |
