From: "Enrico Weigelt, metux IT consult" <[email protected]>
---
src/net/sf/freecol/common/model/Unit.java | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/src/net/sf/freecol/common/model/Unit.java
b/src/net/sf/freecol/common/model/Unit.java
index 577341356f6..0660ebe3ac4 100644
--- a/src/net/sf/freecol/common/model/Unit.java
+++ b/src/net/sf/freecol/common/model/Unit.java
@@ -98,14 +98,6 @@ public class Unit extends GoodsLocation
public static final Comparator<Unit> decreasingSkillComparator
= increasingSkillComparator.reversed();
- /**
- * Comparator to rank settlements by accessibility by sea to Europe.
- */
- private static final Comparator<Settlement> settlementStartComparator
- = cachingIntComparator(s ->
- (s == null || !s.getTile().isHighSeasConnected()) ? INFINITY
- : s.getTile().getHighSeasCount());
-
/** A state a Unit can have. */
public static enum UnitState {
ACTIVE,
@@ -2634,8 +2626,19 @@ public class Unit extends GoodsLocation
// Must be a land unit not on the map. May have a carrier.
// Get our nearest settlement to Europe, fallback to any other.
final Player owner = getOwner();
- Settlement sett = minimize(owner.getSettlements(),
- settlementStartComparator);
+ Settlement sett = null;
+ int sett_dist = INFINITY;
+ for (Settlement s : owner.getSettlements()) {
+ int hsc = s.getTile().getHighSeasCount();
+ int dist = (hsc < 0 ? INFINITY : hsc);
+
+ if ((sett == null) || (dist < sett_dist)) {
+ sett = s;
+ sett_dist = dist;
+ continue;
+ }
+ }
+
if (sett == null) sett = owner.getFirstSettlement();
if (sett != null) return sett;
--
2.11.0.rc0.7.gbe5a750
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Freecol-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freecol-developers