diff options
| author | Simon 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) |
| commit | 835d6bbfb92b224e91428ea4f36ea16f568371d3 (patch) | |
| tree | d19961520e49f1525f6a1b81e8dbecc10d189c62 /src/elements | |
| parent | 0c8fae82c7f98e815cb70b771cbf76cbd06d94c1 (diff) | |
| download | powder-835d6bbfb92b224e91428ea4f36ea16f568371d3.zip powder-835d6bbfb92b224e91428ea4f36ea16f568371d3.tar.gz | |
Fix for PUMP
Diffstat (limited to 'src/elements')
| -rw-r--r-- | src/elements/pump.c | 17 |
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)) |
