From 12828f0edde6b2f2e02e593720bbf2a0ed0cfcb7 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Fri, 5 Nov 2010 21:21:49 -0700 Subject: [PATCH] for planes that have no name, do not print a comma after the coordinates (this has irritated me in E3). also: add tests for this, and add a way to assert on content in reports. --- scripts/tests/common.lua | 57 ++++++++++++++++++++++++++++++++++++++++ src/kernel/plane.c | 5 ---- src/kernel/reports.c | 3 ++- 3 files changed, 59 insertions(+), 6 deletions(-) diff --git a/scripts/tests/common.lua b/scripts/tests/common.lua index 1582a179b..c4e2ea88a 100644 --- a/scripts/tests/common.lua +++ b/scripts/tests/common.lua @@ -759,3 +759,60 @@ function test_walk_and_carry_the_cart() process_orders() assert_equal(1, u.region.x) end + +module( "report", package.seeall, lunit.testcase ) + +function setup() + free_game() + settings.set("nmr.removenewbie", "0") + settings.set("nmr.timeout", "0") + settings.set("rules.economy.food", "4") +end + +local function assert_in_report(f, pattern) + write_report(f) + local filename = config.basepath .. "/reports/" .. get_turn() .. "-" .. itoa36(f.id) .. ".nr" + local report = io.open(filename, 'rt'); + t = report:read("*all") + if string.find(t, pattern) == nil then + print(t, pattern) + end + assert_not_equal(nil, string.find(t, pattern)) + report:close() +-- posix.unlink(filename) +end + +function test_coordinates_no_plane() + local r = region.create(0, 0, "mountain") + local f = faction.create("noreply@eressea.de", "human", "de") + local u = unit.create(f, r, 1) + init_reports() + assert_in_report(f, r.name .. " %(0,0%), Berg") +end + +function test_coordinates_named_plane() + local p = plane.create(0, -3, -3, 7, 7, "Hell") + local r = region.create(0, 0, "mountain") + local f = faction.create("noreply@eressea.de", "human", "de") + local u = unit.create(f, r, 1) + init_reports() + assert_in_report(f, r.name .. " %(0,0,Hell%), Berg") +end + +function test_coordinates_unnamed_plane() + local p = plane.create(0, -3, -3, 7, 7) + local r = region.create(0, 0, "mountain") + local f = faction.create("noreply@eressea.de", "human", "de") + local u = unit.create(f, r, 1) + init_reports() + assert_in_report(f, r.name .. " %(0,0%), Berg") +end + +function test_coordinates_noname_plane() + local p = plane.create(0, -3, -3, 7, 7, "") + local r = region.create(0, 0, "mountain") + local f = faction.create("noreply@eressea.de", "human", "de") + local u = unit.create(f, r, 1) + init_reports() + assert_in_report(f, r.name .. " %(0,0%), Berg") +end diff --git a/src/kernel/plane.c b/src/kernel/plane.c index 8ab941838..f2c544ff3 100644 --- a/src/kernel/plane.c +++ b/src/kernel/plane.c @@ -53,8 +53,6 @@ int plane_height(const plane * pl) return 0; } -static plane * home_plane = NULL; - plane * get_homeplane(void) { @@ -261,9 +259,6 @@ create_new_plane(int id, const char *name, int minx, int maxx, int miny, int max pl->flags = flags; addlist(&planes, pl); - if (id==0) { - home_plane = pl; - } return pl; } diff --git a/src/kernel/reports.c b/src/kernel/reports.c index b04cb9b0c..27f14128a 100644 --- a/src/kernel/reports.c +++ b/src/kernel/reports.c @@ -1615,11 +1615,12 @@ f_regionid(const region * r, const faction * f, char * buffer, size_t size) plane * pl = rplane(r); const char * name = pl?pl->name:0; int nx = r->x, ny = r->y; + int named = (name && name[0]); pnormalize(&nx, &ny, pl); adjust_coordinates(f, &nx, &ny, pl, r); strncpy(buffer, rname(r, f->locale), size); buffer[size-1]=0; - sprintf(buffer+strlen(buffer), " (%d,%d%s%s)", nx, ny, name?",":"", (name)?name:""); + sprintf(buffer+strlen(buffer), " (%d,%d%s%s)", nx, ny, named?",":"", (named)?name:""); } return strlen(buffer); }