forked from github/server
refactor some get_param lookups
kill unused global.functions.maintenance
This commit is contained in:
parent
1122bb70a4
commit
b0c79b9978
|
@ -110,13 +110,12 @@ int turn = -1;
|
||||||
|
|
||||||
int NewbieImmunity(void)
|
int NewbieImmunity(void)
|
||||||
{
|
{
|
||||||
static int value = -1;
|
static int update = -1;
|
||||||
static int gamecookie = -1;
|
if (update != global.cookie) {
|
||||||
if (value < 0 || gamecookie != global.cookie) {
|
update = global.cookie;
|
||||||
gamecookie = global.cookie;
|
global.newbie_immunity_ = get_param_int(global.parameters, "NewbieImmunity", 0);
|
||||||
value = get_param_int(global.parameters, "NewbieImmunity", 0);
|
|
||||||
}
|
}
|
||||||
return value;
|
return global.newbie_immunity_;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsImmune(const faction * f)
|
bool IsImmune(const faction * f)
|
||||||
|
@ -185,48 +184,46 @@ int AllianceAuto(void)
|
||||||
*/
|
*/
|
||||||
int HelpMask(void)
|
int HelpMask(void)
|
||||||
{
|
{
|
||||||
static int rule = -1;
|
|
||||||
static int gamecookie = -1;
|
static int gamecookie = -1;
|
||||||
if (rule < 0 || gamecookie != global.cookie) {
|
if (gamecookie != global.cookie) {
|
||||||
const char *str = get_param(global.parameters, "rules.help.mask");
|
const char *str = get_param(global.parameters, "rules.help.mask");
|
||||||
gamecookie = global.cookie;
|
gamecookie = global.cookie;
|
||||||
rule = 0;
|
global.help_mask_ = 0;
|
||||||
if (str != NULL) {
|
if (str != NULL) {
|
||||||
char *sstr = _strdup(str);
|
char *sstr = _strdup(str);
|
||||||
char *tok = strtok(sstr, " ");
|
char *tok = strtok(sstr, " ");
|
||||||
while (tok) {
|
while (tok) {
|
||||||
rule |= ally_flag(tok, -1);
|
global.help_mask_ |= ally_flag(tok, -1);
|
||||||
tok = strtok(NULL, " ");
|
tok = strtok(NULL, " ");
|
||||||
}
|
}
|
||||||
free(sstr);
|
free(sstr);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rule = HELP_ALL;
|
global.help_mask_ = HELP_ALL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return rule;
|
return global.help_mask_;
|
||||||
}
|
}
|
||||||
|
|
||||||
int AllianceRestricted(void)
|
int AllianceRestricted(void)
|
||||||
{
|
{
|
||||||
static int rule = -1;
|
|
||||||
static int gamecookie = -1;
|
static int gamecookie = -1;
|
||||||
if (rule < 0 || gamecookie != global.cookie) {
|
if (gamecookie != global.cookie) {
|
||||||
const char *str = get_param(global.parameters, "alliance.restricted");
|
const char *str = get_param(global.parameters, "alliance.restricted");
|
||||||
gamecookie = global.cookie;
|
gamecookie = global.cookie;
|
||||||
rule = 0;
|
global.alliance_restricted_ = 0;
|
||||||
if (str != NULL) {
|
if (str != NULL) {
|
||||||
char *sstr = _strdup(str);
|
char *sstr = _strdup(str);
|
||||||
char *tok = strtok(sstr, " ");
|
char *tok = strtok(sstr, " ");
|
||||||
while (tok) {
|
while (tok) {
|
||||||
rule |= ally_flag(tok, -1);
|
global.alliance_restricted_ |= ally_flag(tok, -1);
|
||||||
tok = strtok(NULL, " ");
|
tok = strtok(NULL, " ");
|
||||||
}
|
}
|
||||||
free(sstr);
|
free(sstr);
|
||||||
}
|
}
|
||||||
rule &= HelpMask();
|
global.alliance_restricted_ &= HelpMask();
|
||||||
}
|
}
|
||||||
return rule;
|
return global.alliance_restricted_;
|
||||||
}
|
}
|
||||||
|
|
||||||
int LongHunger(const struct unit *u)
|
int LongHunger(const struct unit *u)
|
||||||
|
@ -1506,11 +1503,6 @@ int maintenance_cost(const struct unit *u)
|
||||||
{
|
{
|
||||||
if (u == NULL)
|
if (u == NULL)
|
||||||
return MAINTENANCE;
|
return MAINTENANCE;
|
||||||
if (global.functions.maintenance) {
|
|
||||||
int retval = global.functions.maintenance(u);
|
|
||||||
if (retval >= 0)
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
return u_race(u)->maintenance * u->number;
|
return u_race(u)->maintenance * u->number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -253,16 +253,17 @@ extern "C" {
|
||||||
void *vm_state;
|
void *vm_state;
|
||||||
int data_version; /* TODO: eliminate in favor of gamedata.version */
|
int data_version; /* TODO: eliminate in favor of gamedata.version */
|
||||||
struct _dictionary_ *inifile;
|
struct _dictionary_ *inifile;
|
||||||
|
|
||||||
struct global_functions {
|
|
||||||
int(*wage) (const struct region * r, const struct faction * f,
|
|
||||||
const struct race * rc, int in_turn);
|
|
||||||
int(*maintenance) (const struct unit * u);
|
|
||||||
} functions;
|
|
||||||
/* the following are some cached values, because get_param can be slow.
|
/* the following are some cached values, because get_param can be slow.
|
||||||
* you should almost never need to touch them */
|
* you should almost never need to touch them */
|
||||||
int cookie;
|
int cookie;
|
||||||
double producexpchance_;
|
double producexpchance_;
|
||||||
|
int newbie_immunity_;
|
||||||
|
int alliance_restricted_;
|
||||||
|
int help_mask_;
|
||||||
|
struct global_functions {
|
||||||
|
int(*wage) (const struct region * r, const struct faction * f,
|
||||||
|
const struct race * rc, int in_turn);
|
||||||
|
} functions;
|
||||||
} settings;
|
} settings;
|
||||||
|
|
||||||
typedef struct helpmode {
|
typedef struct helpmode {
|
||||||
|
|
|
@ -891,9 +891,6 @@ static int parse_rules(xmlDocPtr doc)
|
||||||
(int(*)(const struct region *, const struct faction *,
|
(int(*)(const struct region *, const struct faction *,
|
||||||
const struct race *, int))fun;
|
const struct race *, int))fun;
|
||||||
}
|
}
|
||||||
else if (strcmp((const char *)propValue, "maintenance") == 0) {
|
|
||||||
global.functions.maintenance = (int(*)(const struct unit *))fun;
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
log_error("unknown function for rule '%s'\n", (const char *)propValue);
|
log_error("unknown function for rule '%s'\n", (const char *)propValue);
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,6 @@ void test_cleanup(void)
|
||||||
|
|
||||||
free_terrains();
|
free_terrains();
|
||||||
free_resources();
|
free_resources();
|
||||||
global.functions.maintenance = NULL;
|
|
||||||
global.functions.wage = NULL;
|
global.functions.wage = NULL;
|
||||||
free_params(&global.parameters);
|
free_params(&global.parameters);
|
||||||
default_locale = 0;
|
default_locale = 0;
|
||||||
|
|
Loading…
Reference in New Issue