diff --git a/scripts/tests/e3/rules.lua b/scripts/tests/e3/rules.lua index 902a91741..2ed0e9e5c 100644 --- a/scripts/tests/e3/rules.lua +++ b/scripts/tests/e3/rules.lua @@ -146,6 +146,21 @@ function test_no_stealth() assert_equal(-1, u:get_skill("stealth")) end +function test_no_teach() + local r = region.create(0,0, "plain") + local f = faction.create("noreply@eressea.de", "human", "de") + local u1 = unit.create(f, r, 1) + local u2 = unit.create(f, r, 1) + + u1:clear_orders() + u2:clear_orders() + u1:set_skill("riding", 3) + u2:add_order("LERNE Reiten") + u1:add_order("LEHRE " .. itoa36(u2.id)) + process_orders() + -- TODO: assert something (reflecting skills sucks!) +end + function test_seecast() local r = region.create(0,0, "plain") for i = 1,10 do diff --git a/src/kernel/xmlreader.c b/src/kernel/xmlreader.c index faf1de423..2deb15be7 100644 --- a/src/kernel/xmlreader.c +++ b/src/kernel/xmlreader.c @@ -2231,6 +2231,7 @@ static int parse_main(xmlDocPtr doc) xmlXPathFreeObject(result); + xpath->node = node; /* reading eressea/game/order */ result = xmlXPathEvalExpression(BAD_CAST "order", xpath); nodes = result->nodesetval; diff --git a/src/util/language.c b/src/util/language.c index 9409ab3c7..1972b38da 100644 --- a/src/util/language.c +++ b/src/util/language.c @@ -270,10 +270,10 @@ void init_translations(const struct locale *lang, int ut, const char * (*string_ for (i = 0; i != maxstrings; ++i) { // TODO: swap the name of s and key const char * s = string_cb(i); - const char * key = s ? locale_string(lang, s, false) : 0; - key = key ? key : s; - if (key) { + if (s) { struct critbit_tree ** cb = (struct critbit_tree **)tokens; + const char * key = locale_string(lang, s, false); + if (!key) key = s; add_translation(cb, key, i); } }