summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-05-14 12:02:36 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-05-14 12:02:36 (GMT)
commit550d270af28ba701931572182cc920d82de58999 (patch)
treee7a887d500877b2a4c1e43bf4c058000774b672b /src
parent3196690b03941b4781ee5bff55f082303618e3a3 (diff)
downloadpowder-550d270af28ba701931572182cc920d82de58999.zip
powder-550d270af28ba701931572182cc920d82de58999.tar.gz
-a
Diffstat (limited to 'src')
-rw-r--r--src/powder.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/powder.c b/src/powder.c
index f31e115..db9160d 100644
--- a/src/powder.c
+++ b/src/powder.c
@@ -1472,10 +1472,13 @@ void update_particles_i(pixel *vid, int start, int inc)
if (nx||ny) {
surround[j] = r = pmap[y+ny][x+nx];
j++;
- if (!(r&0xFF))
- surround_space = 1;//there is empty space
- if ((r&0xFF)!=t)
- nt = 1;//there is nothing or a different particle
+ if (!bmap[(y+ny)/CELL][(x+nx)/CELL] || bmap[(y+ny)/CELL][(x+nx)/CELL]==WL_STREAM)
+ {
+ if (!(r&0xFF))
+ surround_space = 1;//there is empty space
+ if ((r&0xFF)!=t)
+ nt = 1;//there is nothing or a different particle
+ }
}
}
@@ -1980,7 +1983,9 @@ killed:
goto movedone;
}
}
- if (ptypes[t].falldown>1 && (parts[i].vy>fabsf(parts[i].vx) || gravityMode==2))
+ else s = 0;
+ // s==0 means particle has not yet moved, allow liquids code to run
+ if (s==0 && ptypes[t].falldown>1 && (parts[i].vy>fabs(parts[i].vx) || gravityMode==2))
{
// TODO: rewrite to operate better with radial gravity
s = 0;