Summary: Conflicting definitions of "ferry"
                 Project: Freeciv
            Submitted by: cazfi
            Submitted on: Sun 22 Sep 2013 04:34:42 AM EEST
                Category: ai
                Severity: 3 - Normal
                Priority: 5 - Normal
                  Status: None
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: None
         Planned Release: 



This is probably just tip of the iceberg that I happened to find when
debugging ferry stats errors caused by experimental ruleset trireme.
Most places updating ferry stats (in aiferry.c) only consider
is_sailing_unit() units ferries. This includes initialization to ferry system,
so UTM_BOTH (also rivers) moving experimental trireme does not even get
FERRY_AVAILABLE set initially (I think we're in luck that it's guaranteed to
have value 0 instead - never something that would be real unit id, breaking
havoc to that unit). OTOH dai_manage_ferryboat() gets called to non-sailing
units too (there the move_type does not matter at all, only if unit has
transporter capacity). There's no additional checks inside
dai_manage_ferryboat() but when feeded such
not-a-ferry-as-understood-by-aiferry.c it happily mess up the stats (freeing
the ferry that never has been assigned as one). In addition to different views
on is_sailing_unit() as part of ferry defition, there's also difference on
what must be potential cargo - aiferry.c considers only land unit transports
as ferries, aiunit.c considers also non-missile both moving unit transports
(Carrier) ferries.


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to