Author: cazfi Date: Fri Sep 16 08:11:47 2016 New Revision: 33814 URL: http://svn.gna.org/viewcvs/freeciv?rev=33814&view=rev Log: Implemented requirement value editing for remaining requirement types.
See patch #7686 Modified: trunk/common/achievements.c trunk/common/achievements.h trunk/common/fc_types.h trunk/common/terrain.h trunk/tools/ruledit/tab_misc.cpp trunk/tools/ruledit/univ_value.c Modified: trunk/common/achievements.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/achievements.c?rev=33814&r1=33813&r2=33814&view=diff ============================================================================== --- trunk/common/achievements.c (original) +++ trunk/common/achievements.c Fri Sep 16 08:11:47 2016 @@ -43,6 +43,7 @@ for (i = 0; i < ARRAY_SIZE(achievements); i++) { achievements[i].id = i; + achievements[i].disabled = FALSE; achievements[i].first = NULL; achievements[i].value = 0; achievements[i].culture = 0; Modified: trunk/common/achievements.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/achievements.h?rev=33814&r1=33813&r2=33814&view=diff ============================================================================== --- trunk/common/achievements.h (original) +++ trunk/common/achievements.h Fri Sep 16 08:11:47 2016 @@ -1,4 +1,4 @@ -/********************************************************************** +/*********************************************************************** Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,6 +26,7 @@ { int id; struct name_translation name; + bool disabled; enum achievement_type type; int value; bool unique; @@ -70,6 +71,15 @@ } \ } +#define achievements_active_iterate(_p) \ + achievements_iterate(_p) { \ + if (!_p->disabled) { + +#define achievements_active_iterate_end \ + } \ + } achievements_iterate_end; + + #ifdef __cplusplus } #endif /* __cplusplus */ Modified: trunk/common/fc_types.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/fc_types.h?rev=33814&r1=33813&r2=33814&view=diff ============================================================================== --- trunk/common/fc_types.h (original) +++ trunk/common/fc_types.h Fri Sep 16 08:11:47 2016 @@ -324,6 +324,7 @@ #define SPECENUM_VALUE2NAME N_("ISO") #define SPECENUM_VALUE3 TF_HEX #define SPECENUM_VALUE3NAME N_("Hex") +#define TOPO_FLAG_BITS 4 #include "specenum_gen.h" /* Used in the network protocol. */ @@ -336,6 +337,7 @@ #define SPECENUM_VALUE2NAME "Improvement" #define SPECENUM_VALUE3 IG_SPECIAL #define SPECENUM_VALUE3NAME "Special" +#define SPECENUM_COUNT IG_COUNT #include "specenum_gen.h" /* Sometimes we don't know (or don't care) if some requirements for effect Modified: trunk/common/terrain.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/terrain.h?rev=33814&r1=33813&r2=33814&view=diff ============================================================================== --- trunk/common/terrain.h (original) +++ trunk/common/terrain.h Fri Sep 16 08:11:47 2016 @@ -95,6 +95,7 @@ /* Can build roads and/or railroads */ #define SPECENUM_VALUE2 TA_CAN_ROAD #define SPECENUM_VALUE2NAME N_("CanRoad") +#define SPECENUM_COUNT TA_COUNT #include "specenum_gen.h" /* Used in the network protocol. */ Modified: trunk/tools/ruledit/tab_misc.cpp URL: http://svn.gna.org/viewcvs/freeciv/trunk/tools/ruledit/tab_misc.cpp?rev=33814&r1=33813&r2=33814&view=diff ============================================================================== --- trunk/tools/ruledit/tab_misc.cpp (original) +++ trunk/tools/ruledit/tab_misc.cpp Fri Sep 16 08:11:47 2016 @@ -30,6 +30,7 @@ #include "registry.h" // common +#include "achievements.h" #include "game.h" #include "government.h" #include "specialist.h" @@ -304,7 +305,12 @@ // Third column row = 0; - stats->item(row++, 7)->setText(QString::number(game.control.num_achievement_types)); + + count = 0; + achievements_active_iterate(pach) { + count++; + } achievements_active_iterate_end; + stats->item(row++, 7)->setText(QString::number(count)); count = 0; base_count = 0; Modified: trunk/tools/ruledit/univ_value.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/tools/ruledit/univ_value.c?rev=33814&r1=33813&r2=33814&view=diff ============================================================================== --- trunk/tools/ruledit/univ_value.c (original) +++ trunk/tools/ruledit/univ_value.c Fri Sep 16 08:11:47 2016 @@ -324,15 +324,54 @@ } break; case VUT_TERRAINALTER: + for (i = 0; i < TA_COUNT; i++) { + cb(terrain_alteration_name(i), univ->value.terrainalter == i, data); + } + break; case VUT_CITYTILE: + for (i = 0; i < CITYT_LAST; i++) { + cb(citytile_type_name(i), univ->value.citytile == i, data); + } + break; case VUT_ACHIEVEMENT: + achievements_active_iterate(pach) { + cb(achievement_rule_name(pach), univ->value.achievement == pach, data); + } achievements_active_iterate_end; + break; case VUT_DIPLREL: + for (i = 0; i < DS_LAST; i++) { + cb(diplstate_type_name(i), univ->value.diplrel == i, data); + } + for (; i < DRO_LAST; i++) { + cb(diplrel_other_name(i), univ->value.diplrel == i, data); + } + break; case VUT_UNITSTATE: + for (i = 0; i < USP_COUNT; i++) { + cb(ustate_prop_name(i), univ->value.unit_state == i, data); + } + break; case VUT_NATIONGROUP: + nation_groups_iterate(pgroup) { + cb(nation_group_rule_name(pgroup), univ->value.nationgroup == pgroup, data); + } nation_groups_iterate_end; + break; case VUT_TOPO: + for (i = 0; i < TOPO_FLAG_BITS; i++) { + cb(topo_flag_name(1 << i), univ->value.topo_property == 1 << i, data); + } + break; case VUT_IMPR_GENUS: + for (i = 0; i < IG_COUNT; i++) { + cb(impr_genus_id_name(i), univ->value.impr_genus == i, data); + } + break; case VUT_ACTION: - /* Not yet implemented */ + action_iterate(act) { + struct action *pact = action_by_number(act); + + cb(action_rule_name(pact), univ->value.action == pact, data); + } action_iterate_end; break; case VUT_MINSIZE: case VUT_MINYEAR: _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits