summaryrefslogtreecommitdiff
path: root/src/elements
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-05-11 16:58:25 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-05-11 16:58:25 (GMT)
commit835d6bbfb92b224e91428ea4f36ea16f568371d3 (patch)
treed19961520e49f1525f6a1b81e8dbecc10d189c62 /src/elements
parent0c8fae82c7f98e815cb70b771cbf76cbd06d94c1 (diff)
downloadpowder-835d6bbfb92b224e91428ea4f36ea16f568371d3.zip
powder-835d6bbfb92b224e91428ea4f36ea16f568371d3.tar.gz
Fix for PUMP
Diffstat (limited to 'src/elements')
-rw-r--r--src/elements/pump.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/elements/pump.c b/src/elements/pump.c
index 26b376c..77369c2 100644
--- a/src/elements/pump.c
+++ b/src/elements/pump.c
@@ -26,16 +26,13 @@ int update_PUMP(UPDATE_FUNC_ARGS) {
if (parts[i].temp<= -256.0+273.15)
parts[i].temp = -256.0+273.15;
- if (pv[y/CELL][x/CELL]<(parts[i].temp-273.15))
- pv[y/CELL][x/CELL] += 0.1f*((parts[i].temp-273.15)-pv[y/CELL][x/CELL]);
- if (y+CELL<YRES && pv[y/CELL+1][x/CELL]<(parts[i].temp-273.15))
- pv[y/CELL+1][x/CELL] += 0.1f*((parts[i].temp-273.15)-pv[y/CELL+1][x/CELL]);
- if (x+CELL<XRES)
- {
- pv[y/CELL][x/CELL+1] += 0.1f*((parts[i].temp-273.15)-pv[y/CELL][x/CELL+1]);
- if (y+CELL<YRES)
- pv[y/CELL+1][x/CELL+1] += 0.1f*((parts[i].temp-273.15)-pv[y/CELL+1][x/CELL+1]);
- }
+ for (rx=-1; rx<2; rx++)
+ for (ry=-1; ry<2; ry++)
+ if ((x+rx)-CELL>=0 && (y+ry)-CELL>0 && (x+rx)+CELL<XRES && (y+ry)+CELL<YRES && !(rx && ry))
+ {
+ pv[(y/CELL)+ry][(x/CELL)+rx] += 0.1f*((parts[i].temp-273.15)-pv[(y/CELL)+ry][(x/CELL)+rx]);
+ }
+
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))