Project

General

Profile

Feature #1410 ยป 3_4-superspecialist_comment.patch

Alexandr Ignatiev, 06/29/2025 08:37 PM

View differences:

data/alien/cities.ruleset
Government Merchants produce two gold for the government each turn, \
four once Specialist Training tech is known.")
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/civ1/cities.ruleset
per turn.\
")
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/civ2/cities.ruleset
per turn.\
")
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/civ2civ3/cities.ruleset
A.Smith's Trading Co.\
")
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/classic/cities.ruleset
per turn.\
")
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/goldkeep/cities.ruleset
per turn.\
")
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/granularity/cities.ruleset
"Tech", "Science", "Player"
}
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/multiplayer/cities.ruleset
per turn.\
")
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/ruledit/comments-3.4.txt
; */ <-- avoid gettext warnings\n\
"
superspecialists = "\
\n\
; Superspecialists are similar to specialists but they are not counted\n\
; within citizens. Players and CMA can't manage them.\n\
; The tag name in super_specialist_* doesn't matter so long as it's unique.\n\
; [super_specialist_great_artist]\n\
; (same parameters as for normal specialist follow)\n\
"
nations = "\
\n\
; See doc/README.nations for information on how to\n\
data/sandbox/cities.ruleset
A.Smith's Trading Co.\
")
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/stub/cities.ruleset
; No requirements
}
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
data/webperimental/cities.ruleset
per turn.\
")
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in superspecialist_* doesn't matter so long as it's unique.
; [superspecialist_great_artist]
; (same parameters as for normal specialist follow)
; Superspecialists are similar to specialists but they are not counted
; within citizens. Players and CMA can't manage them.
; The tag name in super_specialist_* doesn't matter so long as it's unique.
; [super_specialist_great_artist]
; (same parameters as for normal specialist follow)
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
tools/ruleutil/comments.c
char *actions;
char *enablers;
char *specialists;
char *superspecialists;
char *nations;
char *nationgroups;
char *nationsets;
......
comment_load(comments_storage.enablers, comment_file, "typedoc.enablers");
comment_load(comments_storage.specialists,
comment_file, "typedoc.specialists");
comment_load(comments_storage.superspecialists,
comment_file, "typedoc.superspecialists");
comment_load(comments_storage.nations, comment_file, "typedoc.nations");
comment_load(comments_storage.nationgroups,
comment_file, "typedoc.nationgroups");
......
comment_write(sfile, comments_storage.specialists, "Specialists");
}
/**********************************************************************//**
Write superspecialists header.
**************************************************************************/
void comment_superspecialists(struct section_file *sfile)
{
comment_write(sfile, comments_storage.superspecialists, "Superspecialists");
}
/**********************************************************************//**
Write nations header.
**************************************************************************/
tools/ruleutil/comments.h
void comment_actions(struct section_file *sfile);
void comment_enablers(struct section_file *sfile);
void comment_specialists(struct section_file *sfile);
void comment_superspecialists(struct section_file *sfile);
void comment_nationsets(struct section_file *sfile);
void comment_nationgroups(struct section_file *sfile);
void comment_nations(struct section_file *sfile);
tools/ruleutil/rulesave.c
{
struct section_file *sfile = create_ruleset_file(name, "cities");
int sect_idx;
bool supers = FALSE;
if (sfile == nullptr) {
return FALSE;
......
specialist_type_iterate(sp) {
struct specialist *s = specialist_by_number(sp);
char path[512];
bool is_super = is_super_specialist_id(sp);
if (is_super && !supers) {
/* Superspecialists started */
comment_superspecialists(sfile);
supers = TRUE;
}
fc_snprintf(path, sizeof(path),
is_super_specialist_id(sp)
? "super_specialist_%d" : "specialist_%d", sect_idx++);
is_super ? "super_specialist_%d" : "specialist_%d", sect_idx++);
save_name_translation(sfile, &(s->name), path);
......
save_strvec(sfile, s->helptext, path, "helptext");
} specialist_type_iterate_end;
if (!supers) {
/* Just leave it here */
comment_superspecialists(sfile);
}
if (game.info.celebratesize != GAME_DEFAULT_CELEBRATESIZE) {
secfile_insert_int(sfile, game.info.celebratesize,
    (1-1/1)