From ade7b2ef43ceae42890b2b15c6f646cba94aee10 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 10 Jun 2018 09:51:08 +0200 Subject: [PATCH] BUG 2446: trade prices not getting read from XML. --- scripts/tests/e2/e2features.lua | 23 ++++++++++++++++++++++- src/exparse.c | 4 +++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/scripts/tests/e2/e2features.lua b/scripts/tests/e2/e2features.lua index 4758fce39..be09ec448 100644 --- a/scripts/tests/e2/e2features.lua +++ b/scripts/tests/e2/e2features.lua @@ -491,8 +491,29 @@ function test_dwarf_mining() local f = faction.create('dwarf') local r = region.create(0, 0, 'plain') local u = unit.create(f, r) - u.name = 'Xolgrim' u:set_skill('mining', 2) assert_equal(2, u:get_skill('mining')) assert_equal(4, u:eff_skill('mining')) end + +function test_buy_sell() + local f = faction.create('human') + local r = region.create(0, 0, 'plain') + local u = unit.create(f, r) + local lux = r.luxury + local b = building.create(r, 'castle') + b.size = 10 + u:set_skill('trade', 1) + item = 'silk' + name = 'Seide' + if lux == 'silk' then + item = 'balm' + name = 'Balsam' + end + u:add_item(item, 5) + u:add_order('VERKAUFE 1 ' .. name) + assert_equal(0, u:get_item('money')) + process_orders() + assert_equal(4, u:get_item(item)) + assert_not_equal(0, u:get_item('money')) +end diff --git a/src/exparse.c b/src/exparse.c index e6975fc17..ed6452e40 100644 --- a/src/exparse.c +++ b/src/exparse.c @@ -818,7 +818,9 @@ static void start_resources(parseinfo *pi, const XML_Char *el, const XML_Char ** handle_requirement(pi, el, attr); } else if (xml_strcmp(el, "luxury") == 0) { - rtype->ltype = new_luxurytype(itype, 0); + int price = atoi(attr_get(attr, "price")); + assert(price > 0); + rtype->ltype = new_luxurytype(itype, price); } else if (xml_strcmp(el, "potion") == 0) { int i, level = 0;