diff --git a/src/java/com/threerings/miso/client/SceneBlock.java b/src/java/com/threerings/miso/client/SceneBlock.java index 2e8bbed7e..cf85319e8 100644 --- a/src/java/com/threerings/miso/client/SceneBlock.java +++ b/src/java/com/threerings/miso/client/SceneBlock.java @@ -1,5 +1,5 @@ // -// $Id: SceneBlock.java,v 1.22 2003/11/12 23:05:40 ray Exp $ +// $Id: SceneBlock.java,v 1.23 2003/11/12 23:13:45 ray Exp $ package com.threerings.miso.client; @@ -371,16 +371,15 @@ public class SceneBlock return false; } + // null base or impassable base kills traversal BaseTile base = getBaseTile(tx, ty); if ((base == null) || !base.isPassable()) { return false; } + // fringe can only kill traversal if it is present BaseTile fringe = getFringeTile(tx, ty); - if (fringe != null) { - return fringe.isPassable(); - } - return true; + return (fringe == null) || fringe.isPassable(); } /** diff --git a/src/java/com/threerings/miso/tile/AutoFringer.java b/src/java/com/threerings/miso/tile/AutoFringer.java index 0eaecaae3..cdb065e11 100644 --- a/src/java/com/threerings/miso/tile/AutoFringer.java +++ b/src/java/com/threerings/miso/tile/AutoFringer.java @@ -1,5 +1,5 @@ // -// $Id: AutoFringer.java,v 1.26 2003/11/12 23:05:41 ray Exp $ +// $Id: AutoFringer.java,v 1.27 2003/11/12 23:13:45 ray Exp $ package com.threerings.miso.tile; @@ -95,17 +95,17 @@ public class AutoFringer // now turn on the appropriate fringebits fringer.bits |= FLAGMATRIX[y - row + 1][x - col + 1]; - // and see if this base tile kills passability - if (passable) { - if (btid > 0) { - try { - BaseTile bt = (BaseTile) _tmgr.getTile(btid); - passable = bt.isPassable(); - } catch (NoSuchTileSetException nstse) { - Log.warning("Autofringer couldn't find a base " + - "set while attempting to figure passability " + - "[error=" + nstse + "]."); - } + // See if a tile that fringes on us kills our passability, + // but don't count the default base tile against us, as + // we allow users to splash in the water. + if (passable && (btid > 0)) { + try { + BaseTile bt = (BaseTile) _tmgr.getTile(btid); + passable = bt.isPassable(); + } catch (NoSuchTileSetException nstse) { + Log.warning("Autofringer couldn't find a base " + + "set while attempting to figure passability " + + "[error=" + nstse + "]."); } } }