Freeciv-3.4
Loading...
Searching...
No Matches
comments.c
Go to the documentation of this file.
1/***********************************************************************
2 Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 2, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12***********************************************************************/
13
14#ifdef HAVE_CONFIG_H
15#include <fc_config.h>
16#endif
17
18/* utility */
19#include "fcintl.h"
20#include "mem.h"
21#include "registry.h"
22#include "section_file.h"
23
24#include "comments.h"
25
26static struct {
27 /* Comment sections */
29 char *buildings;
31 char *techs;
32 char *govs;
33 char *policies;
34 char *uclasses;
35 char *utypes;
36 char *terrains;
37 char *resources;
38 char *extras;
39 char *bases;
40 char *roads;
41 char *tiledefs;
42 char *styles;
45 char *effects;
46 char *ueffs;
47 char *disasters;
57 char *goods;
58 char *actions;
59 char *enablers;
61 char *nations;
64 char *clauses;
65 char *counters;
66
67 /* Other section entries */
69
70 /* Comment entries */
103
106
107/**********************************************************************/
111{
113 const char *fullpath;
114
116
117 if (fullpath == NULL) {
118 log_error(_("Can't find the comments file"));
119 return FALSE;
120 }
121
123 if (comment_file == NULL) {
124 log_error(_("Can't parse the comments file"));
125 return FALSE;
126 }
127
128#define comment_load(target, comment_file, comment_path) \
129{ \
130 const char *comment; \
131 \
132 if ((comment = secfile_lookup_str(comment_file, comment_path))) { \
133 target = fc_strdup(comment); \
134 } else { \
135 log_error(_("Can't read %s from comments file"), comment_path); \
136 return FALSE; \
137 } \
138}
139
140 comment_load(comments_storage.file_header, comment_file, "common.header");
142 comment_file, "typedoc.buildings");
143 comment_load(comments_storage.tech_classes,
144 comment_file, "typedoc.tech_classes");
145 comment_load(comments_storage.techs, comment_file, "typedoc.techs");
146 comment_load(comments_storage.govs, comment_file, "typedoc.governments");
147 comment_load(comments_storage.policies, comment_file, "typedoc.policies");
148 comment_load(comments_storage.uclasses, comment_file, "typedoc.uclasses");
149 comment_load(comments_storage.utypes, comment_file, "typedoc.utypes");
150 comment_load(comments_storage.terrains, comment_file, "typedoc.terrains");
152 comment_file, "typedoc.resources");
153 comment_load(comments_storage.extras, comment_file, "typedoc.extras");
154 comment_load(comments_storage.bases, comment_file, "typedoc.bases");
155 comment_load(comments_storage.roads, comment_file, "typedoc.roads");
156 comment_load(comments_storage.tiledefs, comment_file, "typedoc.tiledefs");
157 comment_load(comments_storage.styles, comment_file, "typedoc.styles");
159 comment_file, "typedoc.citystyles");
160 comment_load(comments_storage.musicstyles,
161 comment_file, "typedoc.musicstyles");
162 comment_load(comments_storage.effects, comment_file, "typedoc.effects");
163 comment_load(comments_storage.ueffs, comment_file, "typedoc.ueffs");
165 comment_file, "typedoc.disasters");
166 comment_load(comments_storage.achievements,
167 comment_file, "typedoc.achievements");
168 comment_load(comments_storage.uflags_utype,
169 comment_file, "uflag_types.utype");
170 comment_load(comments_storage.uflags_uclass,
171 comment_file, "uflag_types.uclass");
172 comment_load(comments_storage.uflags_terrain,
173 comment_file, "uflag_types.terrain");
174 comment_load(comments_storage.uflags_extra,
175 comment_file, "uflag_types.extra");
176 comment_load(comments_storage.uflags_tech,
177 comment_file, "uflag_types.tech");
178 comment_load(comments_storage.uflags_building,
179 comment_file, "uflag_types.building");
180 comment_load(comments_storage.uflags_government,
181 comment_file, "uflag_types.government");
182 comment_load(comments_storage.trade_settings,
183 comment_file, "typedoc.trade_settings");
184 comment_load(comments_storage.goods, comment_file, "typedoc.goods");
185 comment_load(comments_storage.actions, comment_file, "typedoc.actions");
186 comment_load(comments_storage.enablers, comment_file, "typedoc.enablers");
187 comment_load(comments_storage.specialists,
188 comment_file, "typedoc.specialists");
189 comment_load(comments_storage.nations, comment_file, "typedoc.nations");
190 comment_load(comments_storage.nationgroups,
191 comment_file, "typedoc.nationgroups");
193 comment_file, "typedoc.nationsets");
194 comment_load(comments_storage.clauses, comment_file, "typedoc.clauses");
196 "typedoc.counters");
197
199 "sectiondoc.nations_ruledit");
200
202 "entrydoc.granary");
203 comment_load(comments_storage.civstyle_ransom_gold, comment_file,
204 "entrydoc.ransom_gold");
205 comment_load(comments_storage.civstyle_gameloss_style, comment_file,
206 "entrydoc.gameloss_style");
207 comment_load(comments_storage.civstyle_gold_upkeep_style, comment_file,
208 "entrydoc.gold_upkeep_style");
209 comment_load(comments_storage.civstyle_airlift_always, comment_file,
210 "entrydoc.airlift_always_enabled");
211 comment_load(comments_storage.wonder_visibility_small_wonders, comment_file,
212 "entrydoc.wv_small_wonders");
214 "entrydoc.incite_cost");
215 comment_load(comments_storage.combat_rules_tired_attack, comment_file,
216 "entrydoc.tired_attack");
217 comment_load(comments_storage.combat_rules_only_killing_veteran, comment_file,
218 "entrydoc.only_killing_makes_veteran");
219 comment_load(comments_storage.combat_rules_only_real_fight_veteran, comment_file,
220 "entrydoc.only_real_fight_makes_veteran");
221 comment_load(comments_storage.combat_rules_scaled_veterancy, comment_file,
222 "entrydoc.combat_odds_scaled_veterancy");
223 comment_load(comments_storage.combat_rules_damage_reduces_bombard_rate, comment_file,
224 "entrydoc.damage_reduces_bombard_rate");
225 comment_load(comments_storage.combat_rules_low_fp_badwallattacker, comment_file,
226 "entrydoc.low_firepower_badwallattacker");
227 comment_load(comments_storage.combat_rules_low_fp_pearl_harbor, comment_file,
228 "entrydoc.low_firepower_pearl_harbor");
229 comment_load(comments_storage.combat_rules_low_fp_combat_bonus, comment_file,
230 "entrydoc.low_firepower_combat_bonus");
231 comment_load(comments_storage.combat_rules_low_fp_nonnat_bombard, comment_file,
232 "entrydoc.low_firepower_nonnat_bombard");
233 comment_load(comments_storage.combat_rules_nuke_pop_loss, comment_file,
234 "entrydoc.nuke_pop_loss_pct");
235 comment_load(comments_storage.combat_rules_nuke_defender_survival,
237 "entrydoc.nuke_defender_survival_chance_pct");
239 "entrydoc.auto_attack");
240 comment_load(comments_storage.actions_dc_initial_odds, comment_file,
241 "entrydoc.dc_initial_odds");
242 comment_load(comments_storage.actions_quiet_actions, comment_file,
243 "entrydoc.quiet_actions");
244 comment_load(comments_storage.borders_radius_permanent, comment_file,
245 "entrydoc.radius_permanent");
246 comment_load(comments_storage.research_tech_cost_style, comment_file,
247 "entrydoc.tech_cost_style");
248 comment_load(comments_storage.research_base_tech_cost, comment_file,
249 "entrydoc.base_tech_cost");
250 comment_load(comments_storage.research_min_tech_cost, comment_file,
251 "entrydoc.min_tech_cost");
252 comment_load(comments_storage.research_tech_leakage, comment_file,
253 "entrydoc.tech_leakage");
254 comment_load(comments_storage.research_upkeep_style, comment_file,
255 "entrydoc.tech_upkeep_style");
256 comment_load(comments_storage.research_free_tech_method, comment_file,
257 "entrydoc.free_tech_method");
258 comment_load(comments_storage.culture_history_interest, comment_file,
259 "entrydoc.history_interest_pml");
260 comment_load(comments_storage.culture_migration_pml, comment_file,
261 "entrydoc.migration_pml");
262 comment_load(comments_storage.world_peace_turns, comment_file,
263 "entrydoc.world_peace_turns");
264 comment_load(comments_storage.calendar_fragments, comment_file,
265 "entrydoc.calendar_fragments");
266 comment_load(comments_storage.std_tileset_compat, comment_file,
267 "entrydoc.std_tileset_compat");
268
271
272 return TRUE;
273}
274
275/**********************************************************************/
279{
280 free(comments_storage.file_header);
281}
282
283/**********************************************************************/
286static void comment_write(struct section_file *sfile, const char *comment,
287 const char *name)
288{
289 if (comment == NULL) {
290 log_error(_("Comment for %s missing."), name);
291 return;
292 }
293
294 secfile_insert_long_comment(sfile, comment);
295}
296
297/**********************************************************************/
300static void comment_entry_write(struct section_file *sfile,
301 const char *comment, const char *section)
302{
303 if (comment == NULL) {
304 log_error(_("Comment to section %s missing."), section);
305 return;
306 }
307
308 secfile_insert_comment(sfile, comment, "%s", section);
309}
310
311/**********************************************************************/
315{
316 comment_write(sfile, comments_storage.file_header, "File header");
317}
318
319/**********************************************************************/
323{
324 comment_write(sfile, comments_storage.buildings, "Buildings");
325}
326
327/**********************************************************************/
331{
332 comment_write(sfile, comments_storage.tech_classes, "Tech Classes");
333}
334
335/**********************************************************************/
338void comment_techs(struct section_file *sfile)
339{
340 comment_write(sfile, comments_storage.techs, "Techs");
341}
342
343/**********************************************************************/
346void comment_govs(struct section_file *sfile)
347{
348 comment_write(sfile, comments_storage.govs, "Governments");
349}
350
351/**********************************************************************/
355{
356 comment_write(sfile, comments_storage.policies, "Policies");
357}
358
359/**********************************************************************/
363{
364 comment_write(sfile, comments_storage.uclasses, "Unit classes");
365}
366
367/**********************************************************************/
370void comment_utypes(struct section_file *sfile)
371{
372 comment_write(sfile, comments_storage.utypes, "Unit types");
373}
374
375/**********************************************************************/
379{
380 comment_write(sfile, comments_storage.terrains, "Terrains");
381}
382
383/**********************************************************************/
387{
388 comment_write(sfile, comments_storage.resources, "Resources");
389}
390
391/**********************************************************************/
394void comment_extras(struct section_file *sfile)
395{
396 comment_write(sfile, comments_storage.extras, "Extras");
397}
398
399/**********************************************************************/
402void comment_bases(struct section_file *sfile)
403{
404 comment_write(sfile, comments_storage.bases, "Bases");
405}
406
407/**********************************************************************/
410void comment_roads(struct section_file *sfile)
411{
412 comment_write(sfile, comments_storage.roads, "Roads");
413}
414
415/**********************************************************************/
419{
420 comment_write(sfile, comments_storage.tiledefs, "Tiledefs");
421}
422
423/**********************************************************************/
426void comment_styles(struct section_file *sfile)
427{
428 comment_write(sfile, comments_storage.styles, "Styles");
429}
430
431/**********************************************************************/
435{
436 comment_write(sfile, comments_storage.citystyles, "City Styles");
437}
438
439/**********************************************************************/
443{
444 comment_write(sfile, comments_storage.musicstyles, "Music Styles");
445}
446
447/**********************************************************************/
450void comment_effects(struct section_file *sfile)
451{
452 comment_write(sfile, comments_storage.effects, "Effects");
453}
454
455/**********************************************************************/
458void comment_ueffs(struct section_file *sfile)
459{
460 comment_write(sfile, comments_storage.ueffs, "User Effects");
461}
462
463/**********************************************************************/
467{
468 comment_write(sfile, comments_storage.disasters, "Disasters");
469}
470
471/**********************************************************************/
475{
476 comment_write(sfile, comments_storage.achievements, "Achievements");
477}
478
479/**********************************************************************/
483{
484 comment_entry_write(sfile, comments_storage.uflags_utype, "control");
485}
486
487/**********************************************************************/
491{
492 comment_entry_write(sfile, comments_storage.uflags_uclass, "control");
493}
494
495/**********************************************************************/
499{
500 comment_entry_write(sfile, comments_storage.uflags_terrain, "control");
501}
502
503/**********************************************************************/
507{
508 comment_entry_write(sfile, comments_storage.uflags_extra, "control");
509}
510
511/**********************************************************************/
515{
516 comment_entry_write(sfile, comments_storage.uflags_tech, "control");
517}
518
519/**********************************************************************/
523{
524 comment_entry_write(sfile, comments_storage.uflags_building, "control");
525}
526
527/**********************************************************************/
531{
532 comment_entry_write(sfile, comments_storage.uflags_government, "control");
533}
534
535/**********************************************************************/
539{
540 comment_write(sfile, comments_storage.trade_settings, "Trade settings");
541}
542
543/**********************************************************************/
546void comment_goods(struct section_file *sfile)
547{
548 comment_write(sfile, comments_storage.goods, "Goods");
549}
550
551/**********************************************************************/
554void comment_actions(struct section_file *sfile)
555{
556 comment_write(sfile, comments_storage.actions, "Actions");
557}
558
559/**********************************************************************/
563{
564 comment_write(sfile, comments_storage.enablers, "Action Enablers");
565}
566
567/**********************************************************************/
571{
572 comment_write(sfile, comments_storage.specialists, "Specialists");
573}
574
575/**********************************************************************/
578void comment_nations(struct section_file *sfile)
579{
580 comment_write(sfile, comments_storage.nations, "Nations");
581}
582
583/**********************************************************************/
587{
588 comment_write(sfile, comments_storage.nationgroups, "Nationgroups");
589}
590
591/**********************************************************************/
595{
596 comment_write(sfile, comments_storage.nationsets, "Nationsets");
597}
598
599/**********************************************************************/
602void comment_clauses(struct section_file *sfile)
603{
604 comment_write(sfile, comments_storage.clauses, "Clauses");
605}
606
607/**********************************************************************/
611{
612 comment_write(sfile, comments_storage.counters,
613 "counters");
614}
615
616/**********************************************************************/
620{
621 comment_write(sfile, comments_storage.nations_ruledit, "Ruledit");
622}
623
624/**********************************************************************/
628{
629 comment_entry_write(sfile, comments_storage.civstyle_granary,
630 "civstyle");
631}
632
633/**********************************************************************/
637{
638 comment_entry_write(sfile, comments_storage.civstyle_ransom_gold,
639 "civstyle");
640}
641
642/**********************************************************************/
646{
647 comment_entry_write(sfile, comments_storage.civstyle_gameloss_style,
648 "civstyle");
649}
650
651/**********************************************************************/
655{
656 comment_entry_write(sfile, comments_storage.civstyle_gold_upkeep_style,
657 "civstyle");
658}
659
660/**********************************************************************/
664{
665 comment_entry_write(sfile, comments_storage.civstyle_airlift_always,
666 "civstyle");
667}
668
669/**********************************************************************/
673{
674 comment_entry_write(sfile, comments_storage.wonder_visibility_small_wonders,
675 "wonder_visibility");
676}
677
678/**********************************************************************/
682{
683 comment_entry_write(sfile, comments_storage.incite_cost,
684 "incite_cost");
685}
686
687/**********************************************************************/
691{
692 comment_entry_write(sfile, comments_storage.combat_rules_tired_attack,
693 "combat_rules");
694}
695
696/**********************************************************************/
700{
702 comments_storage.combat_rules_only_killing_veteran,
703 "combat_rules");
704}
705
706/**********************************************************************/
710{
712 comments_storage.combat_rules_only_real_fight_veteran,
713 "combat_rules");
714}
715
716/**********************************************************************/
720{
722 comments_storage.combat_rules_scaled_veterancy,
723 "combat_rules");
724}
725
726/**********************************************************************/
730{
732 comments_storage.combat_rules_damage_reduces_bombard_rate,
733 "combat_rules");
734}
735
736/**********************************************************************/
740{
742 comments_storage.combat_rules_low_fp_badwallattacker,
743 "combat_rules");
744}
745
746/**********************************************************************/
750{
752 comments_storage.combat_rules_low_fp_pearl_harbor,
753 "combat_rules");
754}
755
756/**********************************************************************/
760{
762 comments_storage.combat_rules_low_fp_combat_bonus,
763 "combat_rules");
764}
765
766/**********************************************************************/
770{
772 comments_storage.combat_rules_low_fp_nonnat_bombard,
773 "combat_rules");
774}
775
776/**********************************************************************/
780{
781 comment_entry_write(sfile, comments_storage.combat_rules_nuke_pop_loss,
782 "combat_rules");
783}
784
785/**********************************************************************/
789{
791 comments_storage.combat_rules_nuke_defender_survival,
792 "combat_rules");
793}
794
795/**********************************************************************/
799{
800 comment_entry_write(sfile, comments_storage.auto_attack, "auto_attack");
801}
802
803/**********************************************************************/
807{
808 comment_entry_write(sfile, comments_storage.actions_dc_initial_odds,
809 "actions");
810}
811
812/**********************************************************************/
816{
817 comment_entry_write(sfile, comments_storage.actions_quiet_actions,
818 "actions");
819}
820
821/**********************************************************************/
825{
826 comment_entry_write(sfile, comments_storage.borders_radius_permanent,
827 "borders");
828}
829
830/**********************************************************************/
834{
835 comment_entry_write(sfile, comments_storage.research_tech_cost_style,
836 "research");
837}
838
839/**********************************************************************/
843{
844 comment_entry_write(sfile, comments_storage.research_base_tech_cost,
845 "research");
846}
847
848/**********************************************************************/
852{
853 comment_entry_write(sfile, comments_storage.research_min_tech_cost,
854 "research");
855}
856
857/**********************************************************************/
861{
862 comment_entry_write(sfile, comments_storage.research_tech_leakage,
863 "research");
864}
865
866/**********************************************************************/
870{
871 comment_entry_write(sfile, comments_storage.research_upkeep_style,
872 "research");
873}
874
875/**********************************************************************/
879{
880 comment_entry_write(sfile, comments_storage.research_free_tech_method,
881 "research");
882}
883
884/**********************************************************************/
888{
889 comment_entry_write(sfile, comments_storage.culture_history_interest,
890 "culture");
891}
892
893/**********************************************************************/
897{
898 comment_entry_write(sfile, comments_storage.culture_migration_pml,
899 "culture");
900}
901
902/**********************************************************************/
906{
907 comment_entry_write(sfile, comments_storage.world_peace_turns,
908 "world_peace");
909}
910
911/**********************************************************************/
915{
916 comment_entry_write(sfile, comments_storage.calendar_fragments,
917 "calendar");
918}
919
920
921/**********************************************************************/
925{
926 comment_entry_write(sfile, comments_storage.std_tileset_compat,
927 "std_tileset_compat");
928}
void comments_free(void)
Definition comments.c:278
char * calendar_fragments
Definition comments.c:102
char * uflags_government
Definition comments.c:55
char * nationgroups
Definition comments.c:62
void comment_borders_radius_permanent(struct section_file *sfile)
Definition comments.c:824
char * uflags_building
Definition comments.c:54
void comment_uflags_utype(struct section_file *sfile)
Definition comments.c:482
void comment_uflags_uclass(struct section_file *sfile)
Definition comments.c:490
char * resources
Definition comments.c:37
void comment_world_peace_turns(struct section_file *sfile)
Definition comments.c:905
char * combat_rules_low_fp_combat_bonus
Definition comments.c:85
char * nations_ruledit
Definition comments.c:68
void comment_combat_rules_nuke_defender_survival(struct section_file *sfile)
Definition comments.c:788
void comment_roads(struct section_file *sfile)
Definition comments.c:410
void comment_civstyle_granary(struct section_file *sfile)
Definition comments.c:627
char * uflags_terrain
Definition comments.c:51
void comment_research_tech_leakage(struct section_file *sfile)
Definition comments.c:860
void comment_uclasses(struct section_file *sfile)
Definition comments.c:362
void comment_uflags_extra(struct section_file *sfile)
Definition comments.c:506
char * goods
Definition comments.c:57
char * culture_history_interest
Definition comments.c:99
char * specialists
Definition comments.c:60
char * achievements
Definition comments.c:48
char * terrains
Definition comments.c:36
void comment_calendar_fragments(struct section_file *sfile)
Definition comments.c:914
void comment_actions_quiet_actions(struct section_file *sfile)
Definition comments.c:815
void comment_uflags_terrain(struct section_file *sfile)
Definition comments.c:498
char * combat_rules_only_killing_veteran
Definition comments.c:79
char * combat_rules_tired_attack
Definition comments.c:78
char * civstyle_ransom_gold
Definition comments.c:72
char * styles
Definition comments.c:42
char * combat_rules_only_real_fight_veteran
Definition comments.c:80
void comment_combat_rules_low_fp_pearl_harbor(struct section_file *sfile)
Definition comments.c:749
char * civstyle_airlift_always
Definition comments.c:75
void comment_citystyles(struct section_file *sfile)
Definition comments.c:434
char * extras
Definition comments.c:38
void comment_std_tileset_compat(struct section_file *sfile)
Definition comments.c:924
char * civstyle_gold_upkeep_style
Definition comments.c:74
void comment_govs(struct section_file *sfile)
Definition comments.c:346
void comment_tiledefs(struct section_file *sfile)
Definition comments.c:418
char * enablers
Definition comments.c:59
void comment_research_base_tech_cost(struct section_file *sfile)
Definition comments.c:842
char * world_peace_turns
Definition comments.c:101
void comment_research_tech_cost_style(struct section_file *sfile)
Definition comments.c:833
char * actions_quiet_actions
Definition comments.c:91
char * actions
Definition comments.c:58
void comment_combat_rules_only_killing_veteran(struct section_file *sfile)
Definition comments.c:699
char * research_base_tech_cost
Definition comments.c:94
void comment_bases(struct section_file *sfile)
Definition comments.c:402
void comment_terrains(struct section_file *sfile)
Definition comments.c:378
void comment_uflags_tech(struct section_file *sfile)
Definition comments.c:514
char * file_header
Definition comments.c:28
static void comment_write(struct section_file *sfile, const char *comment, const char *name)
Definition comments.c:286
void comment_file_header(struct section_file *sfile)
Definition comments.c:314
char * policies
Definition comments.c:33
void comment_effects(struct section_file *sfile)
Definition comments.c:450
void comment_actions_dc_initial_odds(struct section_file *sfile)
Definition comments.c:806
char * effects
Definition comments.c:45
char * civstyle_granary
Definition comments.c:71
void comment_combat_rules_scaled_veterancy(struct section_file *sfile)
Definition comments.c:719
void comment_research_upkeep_style(struct section_file *sfile)
Definition comments.c:869
void comment_disasters(struct section_file *sfile)
Definition comments.c:466
void comment_clauses(struct section_file *sfile)
Definition comments.c:602
void comment_goods(struct section_file *sfile)
Definition comments.c:546
char * uflags_tech
Definition comments.c:53
char * combat_rules_damage_reduces_bombard_rate
Definition comments.c:82
char * research_min_tech_cost
Definition comments.c:95
char * combat_rules_low_fp_nonnat_bombard
Definition comments.c:86
void comment_civstyle_gameloss_style(struct section_file *sfile)
Definition comments.c:645
char * uflags_extra
Definition comments.c:52
void comment_civstyle_gold_upkeep_style(struct section_file *sfile)
Definition comments.c:654
void comment_extras(struct section_file *sfile)
Definition comments.c:394
void comment_uflags_government(struct section_file *sfile)
Definition comments.c:530
char * utypes
Definition comments.c:35
void comment_combat_rules_low_fp_nonnat_bombard(struct section_file *sfile)
Definition comments.c:769
char * clauses
Definition comments.c:64
char * combat_rules_low_fp_pearl_harbor
Definition comments.c:84
void comment_ueffs(struct section_file *sfile)
Definition comments.c:458
char * nationsets
Definition comments.c:63
void comment_techs(struct section_file *sfile)
Definition comments.c:338
void comment_nations(struct section_file *sfile)
Definition comments.c:578
char * counters
Definition comments.c:65
void comment_trade_settings(struct section_file *sfile)
Definition comments.c:538
char * auto_attack
Definition comments.c:89
char * disasters
Definition comments.c:47
void comment_combat_rules_low_fp_combat_bonus(struct section_file *sfile)
Definition comments.c:759
char * research_tech_cost_style
Definition comments.c:93
void comment_nations_ruledit(struct section_file *sfile)
Definition comments.c:619
char * govs
Definition comments.c:32
void comment_nationgroups(struct section_file *sfile)
Definition comments.c:586
char * roads
Definition comments.c:40
static void comment_entry_write(struct section_file *sfile, const char *comment, const char *section)
Definition comments.c:300
char * bases
Definition comments.c:39
void comment_specialists(struct section_file *sfile)
Definition comments.c:570
char * combat_rules_nuke_pop_loss
Definition comments.c:87
char * ueffs
Definition comments.c:46
void comment_musicstyles(struct section_file *sfile)
Definition comments.c:442
char * research_upkeep_style
Definition comments.c:97
char * buildings
Definition comments.c:29
void comment_civstyle_airlift_always(struct section_file *sfile)
Definition comments.c:663
void comment_resources(struct section_file *sfile)
Definition comments.c:386
char * wonder_visibility_small_wonders
Definition comments.c:76
void comment_civstyle_ransom_gold(struct section_file *sfile)
Definition comments.c:636
static struct @287 comments_storage
void comment_tech_classes(struct section_file *sfile)
Definition comments.c:330
char * tech_classes
Definition comments.c:30
char * nations
Definition comments.c:61
void comment_culture_migration_pml(struct section_file *sfile)
Definition comments.c:896
void comment_combat_rules_only_real_fight_veteran(struct section_file *sfile)
Definition comments.c:709
char * uflags_uclass
Definition comments.c:50
void comment_research_free_tech_method(struct section_file *sfile)
Definition comments.c:878
char * borders_radius_permanent
Definition comments.c:92
void comment_combat_rules_nuke_pop_loss(struct section_file *sfile)
Definition comments.c:779
void comment_utypes(struct section_file *sfile)
Definition comments.c:370
char * uflags_utype
Definition comments.c:49
char * actions_dc_initial_odds
Definition comments.c:90
char * combat_rules_scaled_veterancy
Definition comments.c:81
#define comment_load(target, comment_file, comment_path)
void comment_research_min_tech_cost(struct section_file *sfile)
Definition comments.c:851
char * research_tech_leakage
Definition comments.c:96
bool comments_load(void)
Definition comments.c:110
void comment_culture_history_interest(struct section_file *sfile)
Definition comments.c:887
char * musicstyles
Definition comments.c:44
char * culture_migration_pml
Definition comments.c:100
void comment_policies(struct section_file *sfile)
Definition comments.c:354
void comment_combat_rules_low_fp_badwallattacker(struct section_file *sfile)
Definition comments.c:739
void comment_achievements(struct section_file *sfile)
Definition comments.c:474
char * trade_settings
Definition comments.c:56
void comment_combat_rules_damage_reduces_bombard_rate(struct section_file *sfile)
Definition comments.c:729
char * combat_rules_low_fp_badwallattacker
Definition comments.c:83
char * citystyles
Definition comments.c:43
char * research_free_tech_method
Definition comments.c:98
char * tiledefs
Definition comments.c:41
void comment_actions(struct section_file *sfile)
Definition comments.c:554
void comment_counters(struct section_file *sfile)
Definition comments.c:610
void comment_styles(struct section_file *sfile)
Definition comments.c:426
void comment_combat_rules_tired_attack(struct section_file *sfile)
Definition comments.c:690
void comment_uflags_building(struct section_file *sfile)
Definition comments.c:522
char * techs
Definition comments.c:31
void comment_buildings(struct section_file *sfile)
Definition comments.c:322
void comment_enablers(struct section_file *sfile)
Definition comments.c:562
void comment_nationsets(struct section_file *sfile)
Definition comments.c:594
char * combat_rules_nuke_defender_survival
Definition comments.c:88
char * uclasses
Definition comments.c:34
void comment_wonder_visibility_small_wonders(struct section_file *sfile)
Definition comments.c:672
void comment_incite_cost(struct section_file *sfile)
Definition comments.c:681
void comment_auto_attack(struct section_file *sfile)
Definition comments.c:798
char * civstyle_gameloss_style
Definition comments.c:73
char * incite_cost
Definition comments.c:77
char * std_tileset_compat
Definition comments.c:104
#define COMMENTS_FILE_NAME
Definition comments.h:20
#define _(String)
Definition fcintl.h:67
const char * name
Definition inputfile.c:127
#define log_error(message,...)
Definition log.h:104
struct section_file * secfile_load(const char *filename, bool allow_duplicates)
Definition registry.c:51
void secfile_destroy(struct section_file *secfile)
void secfile_check_unused(const struct section_file *secfile)
struct section * secfile_insert_long_comment(struct section_file *secfile, const char *comment)
struct entry * secfile_insert_comment(struct section_file *secfile, const char *str, const char *path,...)
const char * fileinfoname(const struct strvec *dirs, const char *filename)
Definition shared.c:1094
const struct strvec * get_data_dirs(void)
Definition shared.c:886
#define TRUE
Definition support.h:46
#define FALSE
Definition support.h:47