Fix collision detection for liquids on top of streamlines

This commit is contained in:
jacksonmj 2015-10-13 00:49:42 +01:00
parent 59377e49e5
commit d88c18adaf

View File

@ -4492,7 +4492,7 @@ killed:
break; break;
} }
// A particle of a different type, or a wall, was found. Stop trying to move any further horizontally unless the wall should be completely invisible to particles. // A particle of a different type, or a wall, was found. Stop trying to move any further horizontally unless the wall should be completely invisible to particles.
if (bmap[ny/CELL][nx/CELL]!=WL_STREAM) if ((pmap[ny][nx]&0xFF)!=t || bmap[ny/CELL][nx/CELL]!=WL_STREAM)
break; break;
} }
} }
@ -4542,7 +4542,7 @@ killed:
if ((pmap[ny][nx]&0xFF)!=t || bmap[ny/CELL][nx/CELL]) if ((pmap[ny][nx]&0xFF)!=t || bmap[ny/CELL][nx/CELL])
{ {
s = do_move(i, clear_x, clear_y, nxf, nyf); s = do_move(i, clear_x, clear_y, nxf, nyf);
if (s || bmap[ny/CELL][nx/CELL]!=WL_STREAM) if (s || (pmap[ny][nx]&0xFF)!=t || bmap[ny/CELL][nx/CELL]!=WL_STREAM)
break; // found the edge of the liquid and movement into it succeeded, so stop moving down break; // found the edge of the liquid and movement into it succeeded, so stop moving down
} }
} }