From 789276be25da81aa4b7bb6b41f36cbe164bfade0 Mon Sep 17 00:00:00 2001 From: Dino Date: Sat, 31 Jan 2026 14:28:21 -0500 Subject: [PATCH] Fix in save_terrain_ruleset(): save first_reqs and integrates RM #1925 --- tools/ruleutil/rulesave.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tools/ruleutil/rulesave.c b/tools/ruleutil/rulesave.c index 4b19cca547..08fe674711 100644 --- a/tools/ruleutil/rulesave.c +++ b/tools/ruleutil/rulesave.c @@ -2991,6 +2991,8 @@ static bool save_terrain_ruleset(const char *filename, const char *name) secfile_insert_str(sfile, extra_rule_name(pextra), "%s.extra", path); + save_reqs_vector(sfile, &(proad->first_reqs), path, "first_reqs"); + secfile_insert_int(sfile, proad->move_cost, "%s.move_cost", path); if (proad->move_mode != RMM_FAST_ALWAYS) { @@ -3042,6 +3044,22 @@ static bool save_terrain_ruleset(const char *filename, const char *name) secfile_insert_str_vec(sfile, flag_names, set_count, "%s.flags", path); } + + if (extra_type_list_size(proad->integrators) > 0) { + const char *integrate_names[extra_type_list_size(proad->integrators)]; + + set_count = 0; + extra_type_list_iterate(proad->integrators, iextra) { + if (iextra != pextra) { + integrate_names[set_count++] = extra_rule_name(iextra); + } + } extra_type_list_iterate_end; + + if (set_count > 0) { + secfile_insert_str_vec(sfile, integrate_names, set_count, + "%s.integrates", path); + } + } } } extra_type_by_cause_iterate_end; -- 2.31.0