URL:
<http://gna.org/bugs/?16597>
Summary: Client assumes perfect knowledge of foreign capital
locations
Project: Freeciv
Submitted by: jtn
Submitted on: Monday 08/30/10 at 16:42
Category: None
Severity: 2 - Minor
Priority: 1 - Later
Status: None
Assigned to: None
Originator Email:
Open/Closed: Open
Release:
Discussion Lock: Any
Operating System: None
Planned Release:
_______________________________________________________
Details:
I think there are places in the code where the client assumes it knows where
foreign capitals are. Since it works this out via find_palace(), which
iterates over the cities known to it looking for palaces, I think it can be
inaccurate in the presence of fog-of-war.
(I haven't tested either of these yet, so I could be wrong, but I couldn't
see any special case in the code which would keep clients apprised of capital
location regardless of FoW.)
The one consequence of this I've found is minor. In the diplomacy dialog,
foreign capitals are calculated by calling find_palace(), which returns the
first city it finds which is_capital(). However, a nation could have built a
new Palace in a city you've seen recently, but you could also think there's
still a Palace in a city you haven't seen recently; in this case the client
will choose one of the two randomly. find_palace() should probably count the
number of "capitals" and return NULL if it finds more than one.
The attached (contrived) savegame illustrates this: on my machine, when I
reloaded the save, the Burmese view of the Hungarian capital is correct, but
the Hungarian view of the Burmese capital is wrong.
(It generally seems a bit awkward that this part of the diplomacy dialog
displays potentially-stale information, whereas everything else you can see
there is guaranteed to be up-to-date if you can see it at all.)
(There's another place where find_palace() is used, in city_waste() which is
in common. It turns out that this is only ever used in the client by the CMA
at the moment, which only ever works on your empire and thus has perfect
knowledge; I think investigating a foreign city uses server-supplied values
for corruption etc. This design is skirting close to the edge of a bug, but I
don't have any suggestions for doing anything about it; the CMA presumably
needs to be able to do the calculations on the fly on the client side.)
_______________________________________________________
Reply to this item at:
<http://gna.org/bugs/?16597>
_______________________________________________
Message sent via/by Gna!
http://gna.org/
_______________________________________________
Freeciv-dev mailing list
[email protected]
https://mail.gna.org/listinfo/freeciv-dev