Ah ok, I think I know already
know the cause of bug ...
@Nightinggale
As it seems the "Sail to Logic" cosiders all Cities that are at a Water Area with
getMIN_WATER_SIZE_FOR_OCEAN()
(So it will also consider
unreachable ports that are at
really large Lake.)
By the way:
If
my old design would have been used, that would not be a problem because the bug would
not even exist. (see
here).

Because it would have checked for
actual Ocean Access (Europe Plots) - since it would have been
need for "Inland Cities" anyways.
Comment to my old design:
It was intended to have
"Harbours Cities" (sailing directly) and
"Inland Cities" (just sailing to closest Europe Plot) in
different colours in the
"Sail to List".
And the
"Harbour Cities" should also be listed
at the top of the selection list. (The inland Cities at the bottom.)
As I said should allow to select both kinds as "destinations". I still consider it as extremely helpful
especially for "Gigantic Empires".
- It would e.g. make shipping Colonists to Inland Cities easier because you would not need to worry about the specific port anymore. (You would target the closest arrival point anyways.)
- It would also allow to e.g. easily send troops to a Continent or Island (that still has some of your Cities) if all Port Cities have been taken. (You would also target the closest arrival point.)
- It would ...
----
Edit:
Sorry, I start hijacking the
"bugs" thread with a
feature concept.

(In this case it however also contains the
bugfix:
checking actual Ocean Access.)
Adapting the current code to something like this should do the trick:
(Not yet the correct code - it is
just an example from another code.)
if (pPortCity->isCoastal(
GC.getMIN_WATER_SIZE_FOR_OCEAN()) && pPortCityPlot->
isEuropeAccessable())
@Nightinggale:
What do you think should we implement?
The
bug itself is
easy to fix. (A couple of minutes.)
But I could also implement my
suggested concept above ...
It is in the "Europe Screens" (Europe, Africa, Port Royal)
see here:
Code:
while (city):
if city.isCoastal(gc.getMIN_WATER_SIZE_FOR_OCEAN()):
if unit.getGroup().generatePath(plotEast, city.plot(), 0, false, None, true):
self.CityPlotList.append([city, None])
elif unit.getGroup().generatePath(plotWest, city.plot(), 0, false, None, true):
self.CityPlotList.append([city, None])
(city, iter) = player.nextCity(iter, false)
This check is simply not enough:
gc.getMIN_WATER_SIZE_FOR_OCEAN()
----
Sometimes I also get
lost in all these old designs I still have and
do not even remember anymore what was already
implemented and what was not ...

It is actually not even that difficult to implement - it was basically just a bit more effort than the
simple "List all Harbour Cities" (at Water areas large enough)- that as we see now also
caused this bug.
@Raubwuerger
Thanks for the bug report.
It is easy to fix and
maybe we will even create an
improved version of "Sail To".
