Summary: World-ranged tech requirements have implicit
"survives" flag
                 Project: Freeciv
            Submitted by: jtn
            Submitted on: Sat 18 Oct 2014 12:41:20 BST
                Category: None
                Severity: 3 - Normal
                Priority: 5 - Normal
                  Status: None
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
        Operating System: None
         Planned Release: 2.6.0



I think bits in the global_advances[] cache, once set, are never cleared.

On S2_5 and prior, this cache is used to obsolete great wonders. That's good;
if a tech is lost by all players, we wouldn't want the wonder coming back to
life. (Certainly found_new_tech() wouldn't cope with this, when notifying

global_advances[] is also used to implement world-ranged tech requirements
(is_tech_in_range()). So this is currently a "survives" type effect, and an
equivalent non-"survives" effect is not available.

I think we should move to only use global_advances[] when the "survives" flag
is set in a requirement, and implement a non-"survives" world-ranged player
tech requirement that really iterates over all players. (I don't think this
will be used often enough to warrant a cache at first.)

>From 2.6, wonder obsoletion is generalised to use effects. If we made this
change, we'd have to change rulesets to add a "survives" flag to these
requirements (and document this in the ruleset upgrade notes).


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to