Follow-up Comment #2, patch #4679 (project freeciv):

Is the transition important from an engine perspective or a ruleset
perspective?  If the former, there are bugs to fix, and if the latter, parsing
nreqs-using rulesets doesn't need to be linked to having nreqs support in the

There are currently several ways in which nreqs are special:

1) shortcut termination of adjust_improvement_wants_by_effects() (whereas
present==FALSE is usefully parsed, and may reduce wants, rather than ignoring
them completely)

2) Means to indicate redundancy rather than obsolescence for city improvements
(bug #21992)

3) Invisible to requirement_list iteration routines in aicity.c, helpdata.c,
and advdata.c.  May not be considered in some requirement_list iteration
routines in effects.c.  (I'm glad to have checked this, as advdata.c appears
to have present==FALSE issues as well, for which I'll file a bug once I've
validated my initial reaction).

    In the event that we want true support for nreqs, there's a fair amount of
work to be done in all these places to ensure that nreqs are properly
considered (and not just ignored, either explicitly or implicitly), which work
then ought be undone for 2.7.  In the event we just want ruleset authors to be
able to use nreqs clauses for 2.6 rulesets, I'd much rather just flip the
"present" bit on ruleset load, and add them to normal reqs, deferring any
other significant changes to reqs specification (e.g. disjunction) to 2.7,
allowing for a smoother transition (sensible deprecation semantics).


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to