diff --git a/res/core/messages.xml b/res/core/messages.xml
index 006abd685..a500a41ac 100644
--- a/res/core/messages.xml
+++ b/res/core/messages.xml
@@ -1062,16 +1062,6 @@
"$unit($unit) in $region($region): '$order($command)' - $race($race,0) können nichts stehelen."
"$unit($unit) in $region($region): '$order($command)' - $race($race,0) cannot steal anything."
-
-
-
-
-
-
-
- "$unit($unit) in $region($region): '$order($command)' - $race($race,0) geben nichts weg."
- "$unit($unit) in $region($region): '$order($command)' - $race($race,0) do not give things away."
-
diff --git a/src/give.c b/src/give.c
index 26b193d0d..543d29fc9 100644
--- a/src/give.c
+++ b/src/give.c
@@ -678,11 +678,6 @@ void give_cmd(unit * u, order * ord)
}
else if (p == P_HERBS) {
bool given = false;
- if ((u_race(u)->ec_flags & ECF_KEEP_ITEM) && u2 != NULL) {
- ADDMSG(&u->faction->msgs,
- msg_feedback(u, ord, "race_nogive", "race", u_race(u)));
- return;
- }
if (!can_give(u, u2, NULL, GIVE_HERBS)) {
feedback_give_not_allowed(u, ord);
return;
@@ -741,11 +736,6 @@ void give_cmd(unit * u, order * ord)
if (!s || *s == 0) { /* GIVE ALL items that you have */
/* do these checks once, not for each item we have: */
- if ((u_race(u)->ec_flags & ECF_KEEP_ITEM) && u2 != NULL) {
- ADDMSG(&u->faction->msgs,
- msg_feedback(u, ord, "race_nogive", "race", u_race(u)));
- return;
- }
if (u2 && !(u_race(u2)->ec_flags & GETITEM)) {
ADDMSG(&u->faction->msgs,
msg_feedback(u, ord, "race_notake", "race", u_race(u2)));
@@ -785,10 +775,6 @@ void give_cmd(unit * u, order * ord)
}
}
}
- else if ((u_race(u)->ec_flags & ECF_KEEP_ITEM) && u2 != NULL) {
- ADDMSG(&u->faction->msgs,
- msg_feedback(u, ord, "race_nogive", "race", u_race(u)));
- }
else if (u2 && !(u_race(u2)->ec_flags & GETITEM)) {
ADDMSG(&u->faction->msgs,
msg_feedback(u, ord, "race_notake", "race", u_race(u2)));
@@ -844,11 +830,6 @@ void give_cmd(unit * u, order * ord)
}
if (u2 != NULL) {
- if ((u_race(u)->ec_flags & ECF_KEEP_ITEM)) {
- ADDMSG(&u->faction->msgs,
- msg_feedback(u, ord, "race_nogive", "race", u_race(u)));
- return;
- }
if (!(u_race(u2)->ec_flags & GETITEM)) {
ADDMSG(&u->faction->msgs,
msg_feedback(u, ord, "race_notake", "race", u_race(u2)));
diff --git a/src/kernel/jsonconf.test.c b/src/kernel/jsonconf.test.c
index 2f54eeb8d..d526bc7b8 100644
--- a/src/kernel/jsonconf.test.c
+++ b/src/kernel/jsonconf.test.c
@@ -59,7 +59,6 @@ static void test_flags(CuTest *tc) {
check_flag(tc, "dragon", RCF_DRAGON);
check_flag(tc, "fly", RCF_FLY);
check_ec_flag(tc, "getitem", GETITEM);
- check_ec_flag(tc, "keepitem", ECF_KEEP_ITEM);
check_ec_flag(tc, "giveperson", GIVEPERSON);
check_ec_flag(tc, "giveunit", GIVEUNIT);
test_cleanup();
diff --git a/src/kernel/pool.c b/src/kernel/pool.c
index 8dfd589c3..dae726566 100644
--- a/src/kernel/pool.c
+++ b/src/kernel/pool.c
@@ -179,9 +179,6 @@ int count)
if (u != v) {
int mask;
- if ((u_race(v)->ec_flags & ECF_KEEP_ITEM))
- continue;
-
if (v->faction == f) {
mask = (mode >> 3) & (GET_SLACK | GET_RESERVE);
}
@@ -232,9 +229,6 @@ use_pooled(unit * u, const resource_type * rtype, unsigned int mode, int count)
for (v = r->units; use > 0 && v != NULL; v = v->next) {
if (u != v) {
int mask;
- if ((u_race(v)->ec_flags & ECF_KEEP_ITEM))
- continue;
-
if (v->faction == f) {
mask = (mode >> 3) & (GET_SLACK | GET_RESERVE);
}
diff --git a/src/kernel/race.h b/src/kernel/race.h
index a8933dae8..3980bea72 100644
--- a/src/kernel/race.h
+++ b/src/kernel/race.h
@@ -233,7 +233,6 @@ extern "C" {
#define RCF_FAMILIAR (1<<31) /* may be a familiar */
/* Economic flags */
-#define ECF_KEEP_ITEM (1<<1) /* gibt Gegenst�nde weg */
#define GIVEPERSON (1<<2) /* �bergibt Personen */
#define GIVEUNIT (1<<3) /* Einheiten an andere Partei �bergeben */
#define GETITEM (1<<4) /* nimmt Gegenst�nde an */
diff --git a/src/kernel/unit.c b/src/kernel/unit.c
index bdd5ac232..b4f942a3d 100644
--- a/src/kernel/unit.c
+++ b/src/kernel/unit.c
@@ -225,13 +225,6 @@ static buddy *get_friends(const unit * u, int *numfriends)
nf->number = 0;
*fr = nf;
}
- else if (nf->faction == u2->faction
- && !(u_race(u2)->ec_flags & ECF_KEEP_ITEM)) {
- /* we don't like to gift it to units that won't give it back */
- if ((u_race(nf->unit)->ec_flags & ECF_KEEP_ITEM)) {
- nf->unit = u2;
- }
- }
nf->number += u2->number;
number += u2->number;
}
@@ -269,8 +262,6 @@ int gift_items(unit * u, int flags)
if (u->items == NULL || fval(u_race(u), RCF_ILLUSIONARY))
return 0;
- if ((u_race(u)->ec_flags & ECF_KEEP_ITEM))
- return 0;
/* at first, I should try giving my crap to my own units in this region */
if (u->faction && (u->faction->flags & FFL_QUIT) == 0 && (flags & GIFT_SELF)) {
@@ -279,15 +270,9 @@ int gift_items(unit * u, int flags)
if (u2 != u && u2->faction == u->faction && u2->number > 0) {
/* some units won't take stuff: */
if (u_race(u2)->ec_flags & GETITEM) {
- /* we don't like to gift it to units that won't give it back */
- if (!(u_race(u2)->ec_flags & ECF_KEEP_ITEM)) {
- i_merge(&u2->items, &u->items);
- u->items = NULL;
- break;
- }
- else {
- u3 = u2;
- }
+ i_merge(&u2->items, &u->items);
+ u->items = NULL;
+ break;
}
}
}
diff --git a/src/kernel/xmlreader.c b/src/kernel/xmlreader.c
index 9953f7335..e4f3b960e 100644
--- a/src/kernel/xmlreader.c
+++ b/src/kernel/xmlreader.c
@@ -1423,8 +1423,6 @@ static int parse_races(xmlDocPtr doc)
if (xml_bvalue(node, "irongolem", false))
rc->flags |= RCF_IRONGOLEM;
- if (xml_bvalue(node, "keepitem", false))
- rc->ec_flags |= ECF_KEEP_ITEM;
if (xml_bvalue(node, "giveperson", false))
rc->ec_flags |= GIVEPERSON;
if (xml_bvalue(node, "giveunit", false))
diff --git a/src/laws.c b/src/laws.c
index ba088a8bb..1d24346e6 100644
--- a/src/laws.c
+++ b/src/laws.c
@@ -2823,7 +2823,7 @@ static void age_stonecircle(building *b) {
if (!mage && is_mage(u)) {
mage = u;
}
- if (rtype && (u_race(u)->ec_flags & ECF_KEEP_ITEM) == 0) {
+ if (rtype) {
int n, unicorns = 0;
for (n = 0; n != u->number; ++n) {
if (chance(0.02)) {
diff --git a/src/upkeep.c b/src/upkeep.c
index c4a937a45..d7626084d 100644
--- a/src/upkeep.c
+++ b/src/upkeep.c
@@ -38,11 +38,6 @@ int lifestyle(const unit * u)
return need;
}
-static bool help_money(const unit * u)
-{
- return !(u_race(u)->ec_flags & ECF_KEEP_ITEM);
-}
-
static void help_feed(unit * donor, unit * u, int *need_p)
{
int need = *need_p;
@@ -172,7 +167,7 @@ void get_food(region * r)
unit *v;
for (v = r->units; need && v; v = v->next) {
- if (v->faction == u->faction && help_money(v)) {
+ if (v->faction == u->faction) {
int give = get_money(v) - lifestyle(v);
give = MIN(need, give);
if (give > 0) {
@@ -202,8 +197,7 @@ void get_food(region * r)
faction *owner = region_get_owner(r);
if (owner && owner != u->faction) {
for (v = r->units; v; v = v->next) {
- if (v->faction == owner && alliedunit(v, f, HELP_MONEY)
- && help_money(v)) {
+ if (v->faction == owner && alliedunit(v, f, HELP_MONEY)) {
help_feed(v, u, &need);
break;
}
@@ -211,8 +205,7 @@ void get_food(region * r)
}
}
for (v = r->units; need && v; v = v->next) {
- if (v->faction != f && alliedunit(v, f, HELP_MONEY)
- && help_money(v)) {
+ if (v->faction != f && alliedunit(v, f, HELP_MONEY)) {
help_feed(v, u, &need);
}
}