From 8a174f652092b95403ea0f982da5f59567a5fc26 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 28 Jul 2021 11:20:45 +0200 Subject: [PATCH] all monsters can study skills by default --- res/e3a/races.xml | 32 +++++++++++++-------------- res/eressea/races.xml | 50 +++++++++++++++++++++---------------------- src/kernel/race.h | 2 +- src/monsters.c | 6 +++++- 4 files changed, 47 insertions(+), 43 deletions(-) diff --git a/res/e3a/races.xml b/res/e3a/races.xml index c93d8f03b..26ece569c 100644 --- a/res/e3a/races.xml +++ b/res/e3a/races.xml @@ -5,7 +5,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -45,7 +45,7 @@ - + @@ -76,7 +76,7 @@ capacity="540" speed="1.0" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes"> - + @@ -102,7 +102,7 @@ - + @@ -125,7 +125,7 @@ speed="1.0" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes" > - + @@ -143,7 +143,7 @@ - + @@ -169,7 +169,7 @@ speed="1.0" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes"> - + @@ -598,13 +598,13 @@ - + - + @@ -628,7 +628,7 @@ - + @@ -656,13 +656,13 @@ - + - + @@ -684,14 +684,14 @@ - + - + @@ -832,7 +832,7 @@ - + diff --git a/res/eressea/races.xml b/res/eressea/races.xml index 7ff0cc92b..0867adbe4 100644 --- a/res/eressea/races.xml +++ b/res/eressea/races.xml @@ -12,7 +12,7 @@ - + @@ -579,13 +579,13 @@ - + - + @@ -617,7 +617,7 @@ - + @@ -653,13 +653,13 @@ - + - + @@ -680,7 +680,7 @@ - + @@ -693,12 +693,12 @@ - + - + @@ -708,7 +708,7 @@ - + @@ -718,7 +718,7 @@ - + @@ -734,7 +734,7 @@ - + @@ -752,7 +752,7 @@ - + @@ -777,7 +777,7 @@ - + @@ -809,7 +809,7 @@ - + @@ -840,7 +840,7 @@ maintenance="10" weight="1000" capacity="540" speed="1" hp="50" ac="2" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + @@ -870,7 +870,7 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + @@ -900,7 +900,7 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + @@ -957,7 +957,7 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + @@ -1075,7 +1075,7 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + @@ -1086,7 +1086,7 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + @@ -1115,7 +1115,7 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + @@ -1141,7 +1141,7 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + @@ -1172,7 +1172,7 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + @@ -1202,7 +1202,7 @@ giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes"> - + diff --git a/src/kernel/race.h b/src/kernel/race.h index 8f4f5523b..344f2f015 100644 --- a/src/kernel/race.h +++ b/src/kernel/race.h @@ -218,7 +218,7 @@ extern "C" { #define RCF_ATTACK_MOVED (1<<27) /* may attack if it has moved */ #define RCF_MIGRANTS (1<<28) /* may have migrant units (human bonus) */ -#define RCF_DEFAULT RCF_CANSAIL +#define RCF_DEFAULT (RCF_CANSAIL|RCF_AI_LEARN) /* Economic flags */ #define ECF_GIVEPERSON (1<<0) /* Uebergibt Personen */ diff --git a/src/monsters.c b/src/monsters.c index 39cbc91cb..f3f6ccc11 100644 --- a/src/monsters.c +++ b/src/monsters.c @@ -770,6 +770,10 @@ void monster_cannibalism(unit *u) } } +static bool monster_can_learn(const race *rc) { + return (rc->flags & (RCF_NOLEARN|RCF_AI_LEARN)) == RCF_AI_LEARN; +} + void plan_monsters(faction * f) { region *r; @@ -870,7 +874,7 @@ void plan_monsters(faction * f) long_order = create_order(K_PIRACY, f->locale, NULL); } else { - if (rc->flags & RCF_AI_LEARN) { + if (monster_can_learn(rc)) { long_order = monster_learn(u); } }