Summary: update_player_tile_knowledge() doesn't handle
foggedborders correctly
                 Project: Freeciv
            Submitted by: jtn
            Submitted on: Sun Dec 29 13:18:03 2013
                Category: None
                Severity: 3 - Normal
                Priority: 5 - Normal
                  Status: In Progress
             Assigned to: jtn
        Originator Email: 
             Open/Closed: Open
         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
that now.)

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


File Attachments:

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

Reply via email to