summaryrefslogtreecommitdiff
path: root/src/elements
diff options
context:
space:
mode:
authorSimon 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)
commit810adc81fe672cab81a6d5f412961e9c4c682bbd (patch)
tree425e5a83791150427296f1ed053674f0abb77bb3 /src/elements
parenta523dcab798722f569f801ee7190bbff1d104770 (diff)
downloadpowder-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.c4
-rw-r--r--src/elements/gpmp.c4
-rw-r--r--src/elements/nbhl.c2
-rw-r--r--src/elements/nwhl.c2
-rw-r--r--src/elements/stkm.c4
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;