Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–89 unchanged (89 lines)
90#define SPECENUM_VALUE6 TECH_USER_4
91#define SPECENUM_VALUE7 TECH_USER_5
92#define SPECENUM_VALUE8 TECH_USER_6
93#define SPECENUM_VALUE9 TECH_USER_7
94#define SPECENUM_VALUE10 TECH_USER_8
95#define SPECENUM_VALUE11 TECH_USER_9
96#define SPECENUM_VALUE12 TECH_USER_LAST
97/* Keep this last. */
98#define SPECENUM_COUNT TF_COUNT
99#define SPECENUM_BITVECTOR bv_tech_flags
100#define SPECENUM_NAMEOVERRIDE
101#include "specenum_gen.h"
102
103#define MAX_NUM_USER_TECH_FLAGS (TECH_USER_LAST - TECH_USER_1 + 1)
104
105enum tech_req {
106 AR_ONE = 0,
107 AR_TWO = 1,
108 AR_ROOT = 2,
109 AR_SIZE
…lines 110–322 unchanged (213 lines)

After

…lines 1–89 unchanged (89 lines)
90#define SPECENUM_VALUE6 TECH_USER_4
91#define SPECENUM_VALUE7 TECH_USER_5
92#define SPECENUM_VALUE8 TECH_USER_6
93#define SPECENUM_VALUE9 TECH_USER_7
94#define SPECENUM_VALUE10 TECH_USER_8
95#define SPECENUM_VALUE11 TECH_USER_9
96#define SPECENUM_VALUE12 TECH_USER_10
97/* Keep this last. */
98#define SPECENUM_COUNT TF_COUNT
99#define SPECENUM_BITVECTOR bv_tech_flags
100#define SPECENUM_NAMEOVERRIDE
101#include "specenum_gen.h"
102
103#define TECH_USER_LAST TECH_USER_10
104
105#define MAX_NUM_USER_TECH_FLAGS (TECH_USER_LAST - TECH_USER_1 + 1)
106
107enum tech_req {
108 AR_ONE = 0,
109 AR_TWO = 1,
…lines 110–324 unchanged (215 lines)

Before

translation_unit
comment "/***********************************************************"...
preproc_ifdef
#ifndef "#ifndef"
identifier "FC__TECH_H"
preproc_def
#define "#define"
identifier "FC__TECH_H"
preproc_ifdef
#ifdef "#ifdef"
identifier "__cplusplus"
linkage_specification
extern "extern"
string_literal
" "\""
string_content "C"
" "\""
declaration_list
{ "{"
preproc_call
preproc_directive "#endif"
comment "/* __cplusplus */"
comment "/* utility */"
preproc_include
#include "#include"
string_literal
" "\""
string_content "bitvector.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "shared.h"
" "\""
comment "/* common */"
preproc_include
#include "#include"
string_literal
" "\""
string_content "fc_types.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "name_translation.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "requirements.h"
" "\""
struct_specifier
struct "struct"
type_identifier "strvec"
; ";"
comment "/* Actually defined in \"utility/string_vector.h\". */"
comment "/*\n [kept for amusement and posterity]\ntypedef int Tech_typ"...
comment "/* [more accurately]\n * Unlike most other indices, the Tech_"...
preproc_def
#define "#define"
identifier "A_NONE"
preproc_arg "0"
preproc_def
#define "#define"
identifier "A_FIRST"
preproc_arg "1"
preproc_def
#define "#define"
identifier "A_LAST"
preproc_arg "(MAX_NUM_ADVANCES + 1) "
comment "/* Used in the network protocol. */"
preproc_def
#define "#define"
identifier "A_FUTURE"
preproc_arg "(A_LAST + 1)"
preproc_def
#define "#define"
identifier "A_ARRAY_SIZE"
preproc_arg "(A_FUTURE + 1)"
preproc_def
#define "#define"
identifier "A_UNSET"
preproc_arg "(A_LAST + 2)"
preproc_def
#define "#define"
identifier "A_UNKNOWN"
preproc_arg "(A_LAST + 3)"
preproc_def
#define "#define"
identifier "A_NEVER"
preproc_arg "(NULL)"
comment "/*\n A_NONE is the root tech. All players always know this "...
comment "/* Changing these breaks network compatibility. */"
comment "/* If a new flag is added techtools.c:research_tech_lost() s"...
preproc_def
#define "#define"
identifier "SPECENUM_NAME"
preproc_arg "tech_flag_id"
comment "/* player gets extra tech if rearched first */"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE0"
preproc_arg "TF_BONUS_TECH"
comment "/* TRANS: this and following strings are 'tech flags', which"...
preproc_def
#define "#define"
identifier "SPECENUM_VALUE0NAME"
preproc_arg "N_(\"Bonus_Tech\")"
comment "/* \"Settler\" unit types can build bridges over rivers */"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE1"
preproc_arg "TF_BRIDGE"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE1NAME"
preproc_arg "N_(\"Bridge\")"
comment "/* Player can build air units */"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE2"
preproc_arg "TF_BUILD_AIRBORNE"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE2NAME"
preproc_arg "N_(\"Build_Airborne\")"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE3"
preproc_arg "TECH_USER_1"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE4"
preproc_arg "TECH_USER_2"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE5"
preproc_arg "TECH_USER_3"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE6"
preproc_arg "TECH_USER_4"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE7"
preproc_arg "TECH_USER_5"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE8"
preproc_arg "TECH_USER_6"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE9"
preproc_arg "TECH_USER_7"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE10"
preproc_arg "TECH_USER_8"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE11"
preproc_arg "TECH_USER_9"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE12"
preproc_arg "TECH_USER_LAST"
comment "/* Keep this last. */"
preproc_def
#define "#define"
identifier "SPECENUM_COUNT"
preproc_arg "TF_COUNT"
preproc_def
#define "#define"
identifier "SPECENUM_BITVECTOR"
preproc_arg "bv_tech_flags"
preproc_def
#define "#define"
identifier "SPECENUM_NAMEOVERRIDE"
preproc_include
#include "#include"
string_literal
" "\""
string_content "specenum_gen.h"
" "\""
preproc_def
#define "#define"
identifier "MAX_NUM_USER_TECH_FLAGS"
preproc_arg "(TECH_USER_LAST - TECH_USER_1 + 1)"
enum_specifier (+23 nodes collapsed)
; ";"
struct_specifier (+24 nodes collapsed)
; ";"
struct_specifier (+100 nodes collapsed)
; ";"
expression_statement
call_expression
identifier "BV_DEFINE"
argument_list
( "("
identifier "bv_techs"
, ","
identifier "A_ARRAY_SIZE"
) ")"
; ";"
comment "/* General advance/technology accessor functions. */"
declaration
type_identifier "Tech_type_id"
function_declarator
identifier "advance_count_real"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
comment "/***********************************************************"...
comment "/**\n Inline wrapper for advance_count_real() that makes it "...
function_definition (+38 nodes collapsed)
declaration
type_identifier "Tech_type_id"
function_declarator
identifier "advance_index"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
identifier "padvance"
) ")"
; ";"
declaration
type_identifier "Tech_type_id"
function_declarator
identifier "advance_number"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
identifier "padvance"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "advance_by_number"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
type_identifier "Tech_type_id"
identifier "atype"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "valid_advance"
parameter_list
( "("
parameter_declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
identifier "padvance"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "valid_advance_by_number"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
type_identifier "Tech_type_id"
identifier "atype"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "advance_by_rule_name"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
primitive_type "char"
pointer_declarator
* "*"
identifier "name"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "advance_by_translated_name"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
primitive_type "char"
pointer_declarator
* "*"
identifier "name"
) ")"
; ";"
declaration (+21 nodes collapsed)
declaration (+21 nodes collapsed)
declaration
primitive_type "void"
function_declarator
identifier "tech_classes_init"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "tech_class"
pointer_declarator
* "*"
function_declarator
identifier "tech_class_by_number"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
primitive_type "int"
identifier "idx"
) ")"
; ";"
preproc_function_def
#define "#define"
identifier "tech_class_index"
preproc_params
( "("
identifier "_ptclass_"
) ")"
preproc_arg "(_ptclass_)->idx"
declaration (+21 nodes collapsed)
declaration (+21 nodes collapsed)
declaration
struct_specifier
struct "struct"
type_identifier "tech_class"
pointer_declarator
* "*"
function_declarator
identifier "tech_class_by_rule_name"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
primitive_type "char"
pointer_declarator
* "*"
identifier "name"
) ")"
; ";"
preproc_function_def
#define "#define"
identifier "tech_class_iterate"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "{ "...
preproc_def
#define "#define"
identifier "tech_class_iterate_end"
preproc_arg "} \\\n}"
preproc_function_def
#define "#define"
identifier "tech_class_re_active_iterate"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "tech_class_iterate(_p) { "...
preproc_def
#define "#define"
identifier "tech_class_re_active_iterate_end"
preproc_arg "} "...
declaration
primitive_type "void"
function_declarator
identifier "user_tech_flags_init"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
primitive_type "void"
function_declarator
identifier "user_tech_flags_free"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration (+29 nodes collapsed)
declaration
type_qualifier
const "const"
primitive_type "char"
pointer_declarator
* "*"
function_declarator
identifier "tech_flag_helptxt"
parameter_list
( "("
parameter_declaration
enum_specifier
enum "enum"
type_identifier "tech_flag_id"
identifier "id"
) ")"
; ";"
comment "/* General advance/technology flag accessor routines */"
declaration
primitive_type "bool"
function_declarator
identifier "advance_has_flag"
parameter_list
( "("
parameter_declaration
type_identifier "Tech_type_id"
identifier "tech"
, ","
parameter_declaration
enum_specifier
enum "enum"
type_identifier "tech_flag_id"
identifier "flag"
) ")"
; ";"
comment "/* Ancillary routines */"
declaration
type_identifier "Tech_type_id"
function_declarator
identifier "advance_required"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
type_identifier "Tech_type_id"
identifier "tech"
, ","
parameter_declaration
enum_specifier
enum "enum"
type_identifier "tech_req"
identifier "require"
) ")"
; ";"
declaration (+27 nodes collapsed)
declaration
primitive_type "bool"
function_declarator
identifier "techs_have_fixed_costs"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
primitive_type "bool"
function_declarator
identifier "is_future_tech"
parameter_list
( "("
parameter_declaration
type_identifier "Tech_type_id"
identifier "tech"
) ")"
; ";"
declaration
primitive_type "bool"
function_declarator
identifier "is_regular_advance"
parameter_list
( "("
parameter_declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
identifier "padvance"
) ")"
; ";"
comment "/* Initialization */"
declaration
primitive_type "void"
function_declarator
identifier "techs_init"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
primitive_type "void"
function_declarator
identifier "techs_free"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
primitive_type "void"
function_declarator
identifier "techs_precalc_data"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
comment "/* Iteration */"
comment "/* This iterates over almost all technologies. It includes n"...
preproc_function_def
#define "#define"
identifier "advance_index_iterate"
preproc_params
( "("
identifier "_start"
, ","
identifier "_index"
) ")"
preproc_arg "{ "...
preproc_def
#define "#define"
identifier "advance_index_iterate_end"
preproc_arg "advance_index_iterate_max_end "...
preproc_function_def
#define "#define"
identifier "advance_index_iterate_max"
preproc_params
( "("
identifier "_start"
, ","
identifier "_index"
, ","
identifier "_max"
) ")"
preproc_arg "{ "...
preproc_def
#define "#define"
identifier "advance_index_iterate_max_end"
preproc_arg "} "...
declaration
type_qualifier
const "const"
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "advance_array_last"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
preproc_function_def
#define "#define"
identifier "advance_iterate_base"
preproc_params
( "("
identifier "_start"
, ","
identifier "_p"
) ")"
preproc_arg "{ "...
preproc_def
#define "#define"
identifier "advance_iterate_base_end"
preproc_arg "} "...
preproc_function_def
#define "#define"
identifier "advance_iterate"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "advance_iterate_base(A_FIRST, _p)"
preproc_def
#define "#define"
identifier "advance_iterate_end"
preproc_arg "advance_iterate_base_end"
preproc_function_def
#define "#define"
identifier "advance_iterate_all"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "advance_iterate_base(A_NONE, _p)"
preproc_def
#define "#define"
identifier "advance_iterate_all_end"
preproc_arg "advance_iterate_base_end"
preproc_function_def
#define "#define"
identifier "advance_re_active_iterate"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "advance_iterate(_p) { "...
preproc_def
#define "#define"
identifier "advance_re_active_iterate_end"
preproc_arg "} "...
comment "/* Advance requirements iterator.\n * Iterates over 'goal' an"...
struct_specifier
struct "struct"
type_identifier "advance_req_iter"
; ";"
declaration
primitive_type "size_t"
function_declarator
identifier "advance_req_iter_sizeof"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration (+29 nodes collapsed)
preproc_function_def
#define "#define"
identifier "advance_req_iterate"
preproc_params
( "("
identifier "_goal"
, ","
identifier "_padvance"
) ")"
preproc_arg "generic_iterate(struct advance_req_iter, const struct advanc"...
preproc_def
#define "#define"
identifier "advance_req_iterate_end"
preproc_arg "generic_iterate_end"
comment "/* Iterates over all the root requirements of 'goal'.\n * (No"...
struct_specifier
struct "struct"
type_identifier "advance_root_req_iter"
; ";"
declaration
primitive_type "size_t"
function_declarator
identifier "advance_root_req_iter_sizeof"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration (+29 nodes collapsed)
preproc_function_def
#define "#define"
identifier "advance_root_req_iterate"
preproc_params
( "("
identifier "_goal"
, ","
identifier "_padvance"
) ")"
preproc_arg "generic_iterate(struct advance_root_req_iter, const struct a"...
preproc_def
#define "#define"
identifier "advance_root_req_iterate_end"
preproc_arg "generic_iterate_end"
preproc_ifdef
#ifdef "#ifdef"
identifier "__cplusplus"
#endif ""
} "}"
#endif "#endif"
comment "/* __cplusplus */"
#endif "#endif"
comment "/* FC__TECH_H */"

After

translation_unit
comment "/***********************************************************"...
preproc_ifdef
#ifndef "#ifndef"
identifier "FC__TECH_H"
preproc_def
#define "#define"
identifier "FC__TECH_H"
preproc_ifdef
#ifdef "#ifdef"
identifier "__cplusplus"
linkage_specification
extern "extern"
string_literal
" "\""
string_content "C"
" "\""
declaration_list
{ "{"
preproc_call
preproc_directive "#endif"
comment "/* __cplusplus */"
comment "/* utility */"
preproc_include
#include "#include"
string_literal
" "\""
string_content "bitvector.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "shared.h"
" "\""
comment "/* common */"
preproc_include
#include "#include"
string_literal
" "\""
string_content "fc_types.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "name_translation.h"
" "\""
preproc_include
#include "#include"
string_literal
" "\""
string_content "requirements.h"
" "\""
struct_specifier
struct "struct"
type_identifier "strvec"
; ";"
comment "/* Actually defined in \"utility/string_vector.h\". */"
comment "/*\n [kept for amusement and posterity]\ntypedef int Tech_typ"...
comment "/* [more accurately]\n * Unlike most other indices, the Tech_"...
preproc_def
#define "#define"
identifier "A_NONE"
preproc_arg "0"
preproc_def
#define "#define"
identifier "A_FIRST"
preproc_arg "1"
preproc_def
#define "#define"
identifier "A_LAST"
preproc_arg "(MAX_NUM_ADVANCES + 1) "
comment "/* Used in the network protocol. */"
preproc_def
#define "#define"
identifier "A_FUTURE"
preproc_arg "(A_LAST + 1)"
preproc_def
#define "#define"
identifier "A_ARRAY_SIZE"
preproc_arg "(A_FUTURE + 1)"
preproc_def
#define "#define"
identifier "A_UNSET"
preproc_arg "(A_LAST + 2)"
preproc_def
#define "#define"
identifier "A_UNKNOWN"
preproc_arg "(A_LAST + 3)"
preproc_def
#define "#define"
identifier "A_NEVER"
preproc_arg "(NULL)"
comment "/*\n A_NONE is the root tech. All players always know this "...
comment "/* Changing these breaks network compatibility. */"
comment "/* If a new flag is added techtools.c:research_tech_lost() s"...
preproc_def
#define "#define"
identifier "SPECENUM_NAME"
preproc_arg "tech_flag_id"
comment "/* player gets extra tech if rearched first */"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE0"
preproc_arg "TF_BONUS_TECH"
comment "/* TRANS: this and following strings are 'tech flags', which"...
preproc_def
#define "#define"
identifier "SPECENUM_VALUE0NAME"
preproc_arg "N_(\"Bonus_Tech\")"
comment "/* \"Settler\" unit types can build bridges over rivers */"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE1"
preproc_arg "TF_BRIDGE"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE1NAME"
preproc_arg "N_(\"Bridge\")"
comment "/* Player can build air units */"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE2"
preproc_arg "TF_BUILD_AIRBORNE"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE2NAME"
preproc_arg "N_(\"Build_Airborne\")"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE3"
preproc_arg "TECH_USER_1"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE4"
preproc_arg "TECH_USER_2"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE5"
preproc_arg "TECH_USER_3"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE6"
preproc_arg "TECH_USER_4"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE7"
preproc_arg "TECH_USER_5"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE8"
preproc_arg "TECH_USER_6"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE9"
preproc_arg "TECH_USER_7"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE10"
preproc_arg "TECH_USER_8"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE11"
preproc_arg "TECH_USER_9"
preproc_def
#define "#define"
identifier "SPECENUM_VALUE12"
preproc_arg "TECH_USER_10"
comment "/* Keep this last. */"
preproc_def
#define "#define"
identifier "SPECENUM_COUNT"
preproc_arg "TF_COUNT"
preproc_def
#define "#define"
identifier "SPECENUM_BITVECTOR"
preproc_arg "bv_tech_flags"
preproc_def
#define "#define"
identifier "SPECENUM_NAMEOVERRIDE"
preproc_include
#include "#include"
string_literal
" "\""
string_content "specenum_gen.h"
" "\""
preproc_def
#define "#define"
identifier "TECH_USER_LAST"
preproc_arg "TECH_USER_10"
preproc_def
#define "#define"
identifier "MAX_NUM_USER_TECH_FLAGS"
preproc_arg "(TECH_USER_LAST - TECH_USER_1 + 1)"
enum_specifier (+23 nodes collapsed)
; ";"
struct_specifier (+24 nodes collapsed)
; ";"
struct_specifier (+100 nodes collapsed)
; ";"
expression_statement
call_expression
identifier "BV_DEFINE"
argument_list
( "("
identifier "bv_techs"
, ","
identifier "A_ARRAY_SIZE"
) ")"
; ";"
comment "/* General advance/technology accessor functions. */"
declaration
type_identifier "Tech_type_id"
function_declarator
identifier "advance_count_real"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
comment "/***********************************************************"...
comment "/**\n Inline wrapper for advance_count_real() that makes it "...
function_definition (+38 nodes collapsed)
declaration
type_identifier "Tech_type_id"
function_declarator
identifier "advance_index"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
identifier "padvance"
) ")"
; ";"
declaration
type_identifier "Tech_type_id"
function_declarator
identifier "advance_number"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
identifier "padvance"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "advance_by_number"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
type_identifier "Tech_type_id"
identifier "atype"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "valid_advance"
parameter_list
( "("
parameter_declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
identifier "padvance"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "valid_advance_by_number"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
type_identifier "Tech_type_id"
identifier "atype"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "advance_by_rule_name"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
primitive_type "char"
pointer_declarator
* "*"
identifier "name"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "advance_by_translated_name"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
primitive_type "char"
pointer_declarator
* "*"
identifier "name"
) ")"
; ";"
declaration (+21 nodes collapsed)
declaration (+21 nodes collapsed)
declaration
primitive_type "void"
function_declarator
identifier "tech_classes_init"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
struct_specifier
struct "struct"
type_identifier "tech_class"
pointer_declarator
* "*"
function_declarator
identifier "tech_class_by_number"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
primitive_type "int"
identifier "idx"
) ")"
; ";"
preproc_function_def
#define "#define"
identifier "tech_class_index"
preproc_params
( "("
identifier "_ptclass_"
) ")"
preproc_arg "(_ptclass_)->idx"
declaration (+21 nodes collapsed)
declaration (+21 nodes collapsed)
declaration
struct_specifier
struct "struct"
type_identifier "tech_class"
pointer_declarator
* "*"
function_declarator
identifier "tech_class_by_rule_name"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
primitive_type "char"
pointer_declarator
* "*"
identifier "name"
) ")"
; ";"
preproc_function_def
#define "#define"
identifier "tech_class_iterate"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "{ "...
preproc_def
#define "#define"
identifier "tech_class_iterate_end"
preproc_arg "} \\\n}"
preproc_function_def
#define "#define"
identifier "tech_class_re_active_iterate"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "tech_class_iterate(_p) { "...
preproc_def
#define "#define"
identifier "tech_class_re_active_iterate_end"
preproc_arg "} "...
declaration
primitive_type "void"
function_declarator
identifier "user_tech_flags_init"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
primitive_type "void"
function_declarator
identifier "user_tech_flags_free"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration (+29 nodes collapsed)
declaration
type_qualifier
const "const"
primitive_type "char"
pointer_declarator
* "*"
function_declarator
identifier "tech_flag_helptxt"
parameter_list
( "("
parameter_declaration
enum_specifier
enum "enum"
type_identifier "tech_flag_id"
identifier "id"
) ")"
; ";"
comment "/* General advance/technology flag accessor routines */"
declaration
primitive_type "bool"
function_declarator
identifier "advance_has_flag"
parameter_list
( "("
parameter_declaration
type_identifier "Tech_type_id"
identifier "tech"
, ","
parameter_declaration
enum_specifier
enum "enum"
type_identifier "tech_flag_id"
identifier "flag"
) ")"
; ";"
comment "/* Ancillary routines */"
declaration
type_identifier "Tech_type_id"
function_declarator
identifier "advance_required"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
type_identifier "Tech_type_id"
identifier "tech"
, ","
parameter_declaration
enum_specifier
enum "enum"
type_identifier "tech_req"
identifier "require"
) ")"
; ";"
declaration (+27 nodes collapsed)
declaration
primitive_type "bool"
function_declarator
identifier "techs_have_fixed_costs"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
primitive_type "bool"
function_declarator
identifier "is_future_tech"
parameter_list
( "("
parameter_declaration
type_identifier "Tech_type_id"
identifier "tech"
) ")"
; ";"
declaration
primitive_type "bool"
function_declarator
identifier "is_regular_advance"
parameter_list
( "("
parameter_declaration
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
identifier "padvance"
) ")"
; ";"
comment "/* Initialization */"
declaration
primitive_type "void"
function_declarator
identifier "techs_init"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
primitive_type "void"
function_declarator
identifier "techs_free"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration
primitive_type "void"
function_declarator
identifier "techs_precalc_data"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
comment "/* Iteration */"
comment "/* This iterates over almost all technologies. It includes n"...
preproc_function_def
#define "#define"
identifier "advance_index_iterate"
preproc_params
( "("
identifier "_start"
, ","
identifier "_index"
) ")"
preproc_arg "{ "...
preproc_def
#define "#define"
identifier "advance_index_iterate_end"
preproc_arg "advance_index_iterate_max_end "...
preproc_function_def
#define "#define"
identifier "advance_index_iterate_max"
preproc_params
( "("
identifier "_start"
, ","
identifier "_index"
, ","
identifier "_max"
) ")"
preproc_arg "{ "...
preproc_def
#define "#define"
identifier "advance_index_iterate_max_end"
preproc_arg "} "...
declaration
type_qualifier
const "const"
struct_specifier
struct "struct"
type_identifier "advance"
pointer_declarator
* "*"
function_declarator
identifier "advance_array_last"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
preproc_function_def
#define "#define"
identifier "advance_iterate_base"
preproc_params
( "("
identifier "_start"
, ","
identifier "_p"
) ")"
preproc_arg "{ "...
preproc_def
#define "#define"
identifier "advance_iterate_base_end"
preproc_arg "} "...
preproc_function_def
#define "#define"
identifier "advance_iterate"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "advance_iterate_base(A_FIRST, _p)"
preproc_def
#define "#define"
identifier "advance_iterate_end"
preproc_arg "advance_iterate_base_end"
preproc_function_def
#define "#define"
identifier "advance_iterate_all"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "advance_iterate_base(A_NONE, _p)"
preproc_def
#define "#define"
identifier "advance_iterate_all_end"
preproc_arg "advance_iterate_base_end"
preproc_function_def
#define "#define"
identifier "advance_re_active_iterate"
preproc_params
( "("
identifier "_p"
) ")"
preproc_arg "advance_iterate(_p) { "...
preproc_def
#define "#define"
identifier "advance_re_active_iterate_end"
preproc_arg "} "...
comment "/* Advance requirements iterator.\n * Iterates over 'goal' an"...
struct_specifier
struct "struct"
type_identifier "advance_req_iter"
; ";"
declaration
primitive_type "size_t"
function_declarator
identifier "advance_req_iter_sizeof"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration (+29 nodes collapsed)
preproc_function_def
#define "#define"
identifier "advance_req_iterate"
preproc_params
( "("
identifier "_goal"
, ","
identifier "_padvance"
) ")"
preproc_arg "generic_iterate(struct advance_req_iter, const struct advanc"...
preproc_def
#define "#define"
identifier "advance_req_iterate_end"
preproc_arg "generic_iterate_end"
comment "/* Iterates over all the root requirements of 'goal'.\n * (No"...
struct_specifier
struct "struct"
type_identifier "advance_root_req_iter"
; ";"
declaration
primitive_type "size_t"
function_declarator
identifier "advance_root_req_iter_sizeof"
parameter_list
( "("
parameter_declaration
primitive_type "void"
) ")"
; ";"
declaration (+29 nodes collapsed)
preproc_function_def
#define "#define"
identifier "advance_root_req_iterate"
preproc_params
( "("
identifier "_goal"
, ","
identifier "_padvance"
) ")"
preproc_arg "generic_iterate(struct advance_root_req_iter, const struct a"...
preproc_def
#define "#define"
identifier "advance_root_req_iterate_end"
preproc_arg "generic_iterate_end"
preproc_ifdef
#ifdef "#ifdef"
identifier "__cplusplus"
#endif ""
} "}"
#endif "#endif"
comment "/* __cplusplus */"
#endif "#endif"
comment "/* FC__TECH_H */"