Summary: update_player_tile_knowledge() doesn't handle
Submitted by: jtn
Submitted on: Sun Dec 29 13:18:03 2013
Severity: 3 - Normal
Priority: 5 - Normal
Status: In Progress
Assigned to: jtn
Discussion Lock: Any
Operating System: Any
Planned Release: 2.4.2,2.5.0,2.6.0
In a game with foggedborders enabled, if update_player_tile_knowledge() is
called to refresh a player's knowledge without unfogging a tile, border
information is not updated correctly.
The current invariant is that player_tile owner information is valid iff
foggedborders is enabled *and* the tile is currently fogged -- otherwise, the
owner information comes directly from the real map.
(This is a bit of a crazy way round IMO -- it would probably be less confusing
to always keep the player map up to date -- but I'm not going to try to fix
update_player_tile_knowledge() is confused about this invariant, with the
result that it will never refresh owner information for fogged tiles.
I noticed this when fixing bug #21392. Other situations where this can occur
are rare; one is when paradropping to your death, which calls
map_show_circle() ("Your Paratroopers paradropped into the Lake and was
lost.") -- I've verified this in testing (trunk savegame demonstrating this
Date: Sun Dec 29 13:18:03 2013 Name: foggedborders_paradrop_doom.sav.bz2
Size: 16kB By: jtn
trunk r23912 savegame demonstrating the paradrop bug
Reply to this item at:
Message sent via/by Gna!
Freeciv-dev mailing list