From cda9b45c1c8c56e71a719b3e1f052f7c314066f5 Mon Sep 17 00:00:00 2001 From: Christian Schlittchen Date: Sun, 21 Apr 2002 17:44:17 +0000 Subject: [PATCH] - Guard-Konvertierung. --- src/common/kernel/eressea.c | 6 ++++++ src/common/settings-tutorial.h | 1 + src/common/settings-vinyambar-classic.h | 1 + src/common/settings-vinyambar-murder.h | 2 ++ src/common/settings-vinyambar.h | 1 + src/eressea/korrektur.c | 21 +++++++++++++++++++++ 6 files changed, 32 insertions(+) diff --git a/src/common/kernel/eressea.c b/src/common/kernel/eressea.c index dd61117af..c86de647c 100644 --- a/src/common/kernel/eressea.c +++ b/src/common/kernel/eressea.c @@ -2510,6 +2510,12 @@ void guard(unit * u, unsigned int mask) { int flags = GUARD_CREWS | GUARD_LANDING | GUARD_TRAVELTHRU | GUARD_TAX; +#if GUARD_DISABLES_PRODUCTION == 1 + flags |= GUARD_PRODUCE; +#endif +#if GUARD_DISABLES_RECRUIT == 1 + flags |= GUARD_RECRUIT; +#endif switch (old_race(u->race)) { case RC_ELF: if (u->faction->race != u->race) break; diff --git a/src/common/settings-tutorial.h b/src/common/settings-tutorial.h index 1f4b0dcca..d494bea02 100644 --- a/src/common/settings-tutorial.h +++ b/src/common/settings-tutorial.h @@ -32,5 +32,6 @@ #define PEASANTS_DO_NOT_STARVE 0 #define GUARD_DISABLES_RECRUIT 0 +#define GUARD_DISABLES_PRODUCTION 0 #define RESOURCE_QUANTITY 1.0 diff --git a/src/common/settings-vinyambar-classic.h b/src/common/settings-vinyambar-classic.h index a06072598..d61e87ba7 100644 --- a/src/common/settings-vinyambar-classic.h +++ b/src/common/settings-vinyambar-classic.h @@ -31,6 +31,7 @@ #define PEASANT_ADJUSTMENT 0 #define GUARD_DISABLES_RECRUIT 0 +#define GUARD_DISABLES_PRODUCTION 0 #define RESOURCE_QUANTITY 1.0 diff --git a/src/common/settings-vinyambar-murder.h b/src/common/settings-vinyambar-murder.h index 58e8c3d08..81ea9c9e9 100644 --- a/src/common/settings-vinyambar-murder.h +++ b/src/common/settings-vinyambar-murder.h @@ -31,6 +31,8 @@ #define NEW_MIGRATION 1 #define PEASANTS_DO_NOT_STARVE 0 #define GUARD_DISABLES_RECRUIT 1 +#define GUARD_DISABLES_PRODUCTION 1 +#define RESOURCE_QUANTITY 1.0 #define VICTORY_CONDITION VICTORY_MURDER #define VICTORY_DELAY 4 diff --git a/src/common/settings-vinyambar.h b/src/common/settings-vinyambar.h index 5829a1f71..1a2250db2 100644 --- a/src/common/settings-vinyambar.h +++ b/src/common/settings-vinyambar.h @@ -31,5 +31,6 @@ #define PEASANT_ADJUSTMENT 0 #define GUARD_DISABLES_RECRUIT 0 +#define GUARD_DISABLES_PRODUCTION 0 #define RESOURCE_QUANTITY 1.0 diff --git a/src/eressea/korrektur.c b/src/eressea/korrektur.c index 735e69cea..46ec1262c 100644 --- a/src/eressea/korrektur.c +++ b/src/eressea/korrektur.c @@ -2717,6 +2717,26 @@ fix_seeds(void) return 0; } +static int +guard_conversion(void) +{ + faction *f; + unit *u; + int mask = GUARD_CREWS | GUARD_LANDING | GUARD_TRAVELTHRU | GUARD_TAX; + + for(f=factions; f; f=f->next) { + for(u=f->units; u; u=u->nextF) { + int g = getguard(u); + + if( (g & mask) == mask) { + setguard(u, g | GUARD_PRODUCE | GUARD_RECRUIT); + } + } + } + + return 0; +} + void korrektur(void) { @@ -2766,6 +2786,7 @@ korrektur(void) do_once("fsee", fix_seeds()); do_once("orc2", orc_conversion2()); do_once("witm", warn_items()); + do_once("guac", guard_conversion()); warn_password(); /* seems something fishy is going on, do this just