From 46db2b264a98f9afb46ba3c4c088f89a93e88dd1 Mon Sep 17 00:00:00 2001 From: elsid Date: Mon, 2 Nov 2020 23:28:42 +0100 Subject: [PATCH] Draw ridges for border tiles --- src/haven/MapSource.java | 8 ++++---- src/haven/resutil/Ridges.java | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/haven/MapSource.java b/src/haven/MapSource.java index 8a12484a4f..c5d6229e23 100644 --- a/src/haven/MapSource.java +++ b/src/haven/MapSource.java @@ -71,16 +71,16 @@ public static BufferedImage drawmap(MapSource m, Area a) { buf.setRGB(c.x, c.y, rgb); } } - for(c.y = 1; c.y < sz.y - 1; c.y++) { - for(c.x = 1; c.x < sz.x - 1; c.x++) { + for(c.y = 0; c.y < sz.y; c.y++) { + for(c.x = 0; c.x < sz.x; c.x++) { int t = m.gettile(a.ul.add(c)); if(t < 0) continue; Tiler tl = m.tiler(t); if(tl instanceof haven.resutil.Ridges.RidgeTile) { if(haven.resutil.Ridges.brokenp(m, a.ul.add(c))) { - for(int y = c.y - 1; y <= c.y + 1; y++) { - for(int x = c.x - 1; x <= c.x + 1; x++) { + for(int y = Math.max(c.y - 1, 0), ny = Math.min(c.y + 1, sz.y - 1); y <= ny; y++) { + for(int x = Math.max(c.x - 1, 0), nx = Math.min(c.x + 1, sz.x - 1); x <= nx; x++) { Color cc = new Color(buf.getRGB(x, y)); buf.setRGB(x, y, Utils.blendcol(cc, Color.BLACK, ((x == c.x) && (y == c.y))?1:0.1).getRGB()); } diff --git a/src/haven/resutil/Ridges.java b/src/haven/resutil/Ridges.java index 95c9e2c990..ce0315d506 100644 --- a/src/haven/resutil/Ridges.java +++ b/src/haven/resutil/Ridges.java @@ -709,11 +709,16 @@ public static boolean brokenp(MapSource map, Coord tc) { return(false); double bz = ((RidgeTile)t).breakz() + EPSILON; for(Coord ec : tecs) { - t = map.tiler(map.gettile(tc.add(ec))); + int tile = map.gettile(tc.add(ec)); + if(tile < 0) + continue; + t = map.tiler(tile); if(t instanceof RidgeTile) bz = Math.min(bz, ((RidgeTile)t).breakz() + EPSILON); } for(int i = 0; i < 4; i++) { + if(map.getfz(tc.add(tccs[(i + 1) % 4])) == 0.0 || map.getfz(tc.add(tccs[i])) == 0.0) + continue; if(Math.abs(map.getfz(tc.add(tccs[(i + 1) % 4])) - map.getfz(tc.add(tccs[i]))) > bz) return(true); }