Author: cazfi
Date: Wed Aug 24 09:43:34 2016
New Revision: 33695

URL: http://svn.gna.org/viewcvs/freeciv?rev=33695&view=rev
Log:
Added value editing for Unit class, Output type, and Good requirement types.

See patch #7646

Modified:
    trunk/common/unittype.c
    trunk/common/unittype.h
    trunk/tools/ruledit/tab_misc.cpp
    trunk/tools/ruledit/univ_value.c
    trunk/tools/ruleutil/rulesave.c

Modified: trunk/common/unittype.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/common/unittype.c?rev=33695&r1=33694&r2=33695&view=diff
==============================================================================
--- trunk/common/unittype.c     (original)
+++ trunk/common/unittype.c     Wed Aug 24 09:43:34 2016
@@ -1709,6 +1709,7 @@
     unit_classes[i].cache.bonus_roads = NULL;
     unit_classes[i].cache.subset_movers = NULL;
     unit_classes[i].helptext = NULL;
+    unit_classes[i].disabled = FALSE;
   }
 }
 

Modified: trunk/common/unittype.h
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/common/unittype.h?rev=33695&r1=33694&r2=33695&view=diff
==============================================================================
--- trunk/common/unittype.h     (original)
+++ trunk/common/unittype.h     Wed Aug 24 09:43:34 2016
@@ -134,6 +134,7 @@
 struct unit_class {
   Unit_Class_id item_number;
   struct name_translation name;
+  bool disabled;
   enum unit_move_type move_type;
   int min_speed;           /* Minimum speed after damage and effects */
   int hp_loss_pct;         /* Percentage of hitpoints lost each turn not in 
city or airbase */
@@ -789,6 +790,14 @@
   }                                                                    \
 }
 
+#define unit_active_class_iterate(_p)                                    \
+  unit_class_iterate(_p) {                                               \
+    if (!_p->disabled) {
+
+#define unit_active_class_iterate_end                                    \
+    }                                                                    \
+  } unit_class_iterate_end;
+
 #define SPECLIST_TAG unit_class
 #define SPECLIST_TYPE struct unit_class
 #include "speclist.h"

Modified: trunk/tools/ruledit/tab_misc.cpp
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/tools/ruledit/tab_misc.cpp?rev=33695&r1=33694&r2=33695&view=diff
==============================================================================
--- trunk/tools/ruledit/tab_misc.cpp    (original)
+++ trunk/tools/ruledit/tab_misc.cpp    Wed Aug 24 09:43:34 2016
@@ -257,7 +257,11 @@
   } advance_active_iterate_end;
   stats->item(row++, 1)->setText(QString::number(count));
 
-  stats->item(row++, 
1)->setText(QString::number(game.control.num_unit_classes));
+  count = 0;
+  unit_active_class_iterate(pclass) {
+    count++;
+  } unit_active_class_iterate_end;
+  stats->item(row++, 1)->setText(QString::number(count));
 
   count = 0;
   unit_active_type_iterate(ptype) {

Modified: trunk/tools/ruledit/univ_value.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/tools/ruledit/univ_value.c?rev=33695&r1=33694&r2=33695&view=diff
==============================================================================
--- trunk/tools/ruledit/univ_value.c    (original)
+++ trunk/tools/ruledit/univ_value.c    Wed Aug 24 09:43:34 2016
@@ -241,16 +241,28 @@
       cb(utype_rule_name(putype), univ->value.utype == putype, data);
     } unit_active_type_iterate_end;
     break;
+  case VUT_UCLASS:
+    unit_active_class_iterate(pclass) {
+      cb(uclass_rule_name(pclass), univ->value.uclass == pclass, data);
+    } unit_active_class_iterate_end;
+    break;
+  case VUT_OTYPE:
+    output_type_iterate(otype) {
+      cb(get_output_name(otype), univ->value.outputtype == otype, data);
+    } output_type_iterate_end;
+    break;
+  case VUT_GOOD:
+    goods_active_type_iterate(pgood) {
+      cb(goods_rule_name(pgood), univ->value.good == pgood, data);
+    } goods_active_type_iterate_end;
+    break;
   case VUT_UTFLAG:
-  case VUT_UCLASS:
   case VUT_UCFLAG:
-  case VUT_OTYPE:
   case VUT_SPECIALIST:
   case VUT_AI_LEVEL:
   case VUT_TERRAINCLASS:
   case VUT_TERRAINALTER:
   case VUT_CITYTILE:
-  case VUT_GOOD:
   case VUT_TERRFLAG:
   case VUT_NATIONALITY:
   case VUT_BASEFLAG:

Modified: trunk/tools/ruleutil/rulesave.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/tools/ruleutil/rulesave.c?rev=33695&r1=33694&r2=33695&view=diff
==============================================================================
--- trunk/tools/ruleutil/rulesave.c     (original)
+++ trunk/tools/ruleutil/rulesave.c     Wed Aug 24 09:43:34 2016
@@ -2458,7 +2458,7 @@
   comment_uclasses(sfile);
 
   sect_idx = 0;
-  unit_class_iterate(puc) {
+  unit_active_class_iterate(puc) {
     char path[512];
     char *hut_str = NULL;
     const char *flag_names[UCF_COUNT];
@@ -2506,7 +2506,7 @@
 
     save_strvec(sfile, puc->helptext, path, "helptext");
 
-  } unit_class_iterate_end;
+  } unit_active_class_iterate_end;
 
   comment_utypes(sfile);
 


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

Reply via email to