Follow-up Comment #6, bug #18394 (project freeciv):

The following patch to player_invention_reachable() seems to fix this for me
(still on S2_4). I think it's a correct change we should make, but I'm not
sure by what mechanism it was causing this particular symptom.


@@ -303,8 +303,10 @@ bool player_invention_reachable(const struct player
*pplayer,
   if (A_NONE != root) {
     if (root == tech) {
       /* This tech requires itself; it can only be reached by special means
-       * (lua script). */
-      return FALSE;
+       * (init_techs, lua script, ...).
+       * If you already know it, you can "reach" it; if not, not. (This
case
+       * is needed for descendants of this tech.) */
+      return TECH_KNOWN == player_invention_state(pplayer, tech);
     } else if (allow_prereqs) {
       /* Recursive check if the player can ever reach this tech (root tech
        * and both requirements). */


    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?18394>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/


_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to