From 3420f58f6d082ba93bd22999fb9327a2ed3b4d5e Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Fri, 29 Mar 2002 08:57:06 +0000 Subject: [PATCH] * regatta-sichtweite gilt nur auf see. * bei doppelter sichtweite kann man nicht durch unpassierbares terrain gucken. --- src/common/gamecode/report.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/common/gamecode/report.c b/src/common/gamecode/report.c index 17d40ae14..c455e5ebe 100644 --- a/src/common/gamecode/report.c +++ b/src/common/gamecode/report.c @@ -2615,16 +2615,18 @@ view_neighbours(region * r, faction * f) } if (!b) { if (add_seen(r2, see_far, false)) { - direction_t dir; - for (dir=0;dir!=MAXDIRECTIONS;++dir) { - region * r3 = rconnect(r2, dir); - if (r3) { - border * b = get_borders(r2, r3); - while (b) { - if (!b->type->transparent(b, f)) break; - b = b->next; + if (!(terrain[rterrain(r2)].flags & FORBIDDEN_LAND)) { + direction_t dir; + for (dir=0;dir!=MAXDIRECTIONS;++dir) { + region * r3 = rconnect(r2, dir); + if (r3) { + border * b = get_borders(r2, r3); + while (b) { + if (!b->type->transparent(b, f)) break; + b = b->next; + } + if (!b) add_seen(r3, see_neighbour, false); } - if (!b) add_seen(r3, see_neighbour, false); } } } @@ -2643,7 +2645,7 @@ recurse_regatta(region *center, region *r, faction *f, int maxdist) region * r2 = rconnect(r, dir); if (r2) { int ndist = distance(center, r2); - if (ndist>dist) { + if (ndist>dist && r2->terrain==T_OCEAN) { border * b = get_borders(r, r2); while (b) { if (!b->type->transparent(b, f)) break;