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);
}
}