decluttering config.c (rules go into laws.c)

This commit is contained in:
Enno Rehling 2016-11-16 22:46:01 +01:00
parent 413f70d1a1
commit a88bfa7a9a
6 changed files with 43 additions and 38 deletions

View File

@ -39,5 +39,5 @@ echo "build eressea"
cd $ROOT/$BUILD
VERSION=$(git describe --match 'v*.*.*' --tags | sed 's/^v//')
cmake -DERESSEA_VERSION="$VERSION" ..
make $MAKEOPTS && make test
make -k $MAKEOPTS && make test
cd $OLDPWD

View File

@ -105,37 +105,6 @@ FILE *logfile;
bool battledebug = false;
int turn = -1;
int NewbieImmunity(void)
{
return config_get_int("NewbieImmunity", 0);
}
bool IsImmune(const faction * f)
{
return !fval(f, FFL_NPC) && f->age < NewbieImmunity();
}
bool ExpensiveMigrants(void)
{
return config_get_int("study.expensivemigrants", 0) != 0;
}
int LongHunger(const struct unit *u)
{
if (u != NULL) {
if (!fval(u, UFL_HUNGER))
return false;
if (u_race(u) == get_race(RC_DAEMON))
return false;
}
return config_get_int("hunger.long", 0);
}
int NMRTimeout(void)
{
return config_get_int("nmr.timeout", 0);
}
helpmode helpmodes[] = {
{ "all", HELP_ALL }
,

View File

@ -164,11 +164,6 @@ struct param;
bool config_changed(int *cache_key);
char * join_path(const char *p1, const char *p2, char *dst, size_t len);
bool ExpensiveMigrants(void);
int NMRTimeout(void);
int LongHunger(const struct unit *u);
int NewbieImmunity(void);
bool IsImmune(const struct faction *f);
struct order *default_order(const struct locale *lang);

View File

@ -117,6 +117,32 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* - exported global symbols ----------------------------------- */
int NewbieImmunity(void)
{
return config_get_int("NewbieImmunity", 0);
}
bool IsImmune(const faction * f)
{
return !fval(f, FFL_NPC) && f->age < NewbieImmunity();
}
int NMRTimeout(void)
{
return config_get_int("nmr.timeout", 0);
}
bool LongHunger(const struct unit *u)
{
if (u != NULL) {
if (!fval(u, UFL_HUNGER))
return false;
if (u_race(u) == get_race(RC_DAEMON))
return false;
}
return config_get_int("hunger.long", 0) != 0;
}
static bool RemoveNMRNewbie(void)
{
int value = config_get_int("nmr.removenewbie", 0);

View File

@ -108,6 +108,10 @@ extern "C" {
#define FORCE_LEAVE_POSTCOMBAT 1
#define FORCE_LEAVE_ALL 2
bool rule_force_leave(int flag);
bool LongHunger(const struct unit *u);
int NMRTimeout(void);
int NewbieImmunity(void);
bool IsImmune(const struct faction *f);
bool help_enter(struct unit *uo, struct unit *u);
#ifdef __cplusplus

View File

@ -22,6 +22,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <platform.h>
#include <kernel/config.h>
#include "study.h"
#include "laws.h"
#include "move.h"
#include "monster.h"
#include "alchemy.h"
@ -531,6 +532,16 @@ static double study_speedup(unit * u, skill_t s, study_rule_t rule)
return 1.0;
}
static bool ExpensiveMigrants(void)
{
static bool rule;
static int cache;
if (config_changed(&cache)) {
rule = config_get_int("study.expensivemigrants", 0) != 0;
}
return rule;
}
int study_cmd(unit * u, order * ord)
{
region *r = u->region;
@ -772,7 +783,7 @@ int study_cmd(unit * u, order * ord)
a_remove(&u->attribs, a);
a = NULL;
}
fset(u, UFL_LONGACTION | UFL_NOTMOVING);
u->flags |= (UFL_LONGACTION | UFL_NOTMOVING);
/* Anzeigen neuer Traenke */
/* Spruchlistenaktualiesierung ist in Regeneration */