diff options
author | Robert Vollmert <rvollmert@gmx.net> | 2009-10-08 22:40:29 +0200 |
---|---|---|
committer | Robert Vollmert <rvollmert@gmx.net> | 2009-10-08 22:45:29 +0200 |
commit | d87a308f449bb959db24495e2a1dc307924bc8ae (patch) | |
tree | 0f8a71bea75914d2351e45daa08345aba547121b /crawl-ref/source/test | |
parent | 9cc7466db06f418c165ed79fd6bfdfe334a6a568 (diff) | |
download | crawl-ref-d87a308f449bb959db24495e2a1dc307924bc8ae.tar.gz crawl-ref-d87a308f449bb959db24495e2a1dc307924bc8ae.zip |
Split and correct grid_see_grid.
There's now cell_see_cell which tests for visibility correctly,
albeit slowly. That's only used for placing features in the abyss
currently, but needs to be improved if it gets used more.
The second function used in monster movement was left as is, but
renamed to can_go_straight. This remains unreliable but probably
serves its purpose.
The grid_see_grid test is adapted to cell_see_cell; the
grid_see_grid lua binding is now actually useful.
Also reduce the number of tests in los_csc and los_symm.
Diffstat (limited to 'crawl-ref/source/test')
-rw-r--r-- | crawl-ref/source/test/los_csc.lua (renamed from crawl-ref/source/test/los_gsg.lua) | 16 | ||||
-rw-r--r-- | crawl-ref/source/test/los_symm.lua | 2 |
2 files changed, 10 insertions, 8 deletions
diff --git a/crawl-ref/source/test/los_gsg.lua b/crawl-ref/source/test/los_csc.lua index 69b86d1da7..499511a6c2 100644 --- a/crawl-ref/source/test/los_gsg.lua +++ b/crawl-ref/source/test/los_csc.lua @@ -3,11 +3,13 @@ local FAILMAP = 'losfail.map' local checks = 0 -local function test_gridseegrid_symmetry() +local function test_cellseecell_symmetry() -- Clear messages to prevent them accumulating and forcing a --more-- crawl.mesclr() -- Send the player to a random spot on the level. you.random_teleport() + you.losight() + crawl.redraw_view() checks = checks + 1 local you_x, you_y = you.pos() @@ -16,8 +18,8 @@ local function test_gridseegrid_symmetry() for x = -9, 9 do local px, py = x + you_x, y + you_y if (x ~= 0 or y ~= 0) and dgn.in_bounds(px, py) then - local foreward = dgn.grid_see_grid(you_x, you_y, px, py) - local backward = dgn.grid_see_grid(px, py, you_x, you_y) + local foreward = dgn.cell_see_cell(you_x, you_y, px, py) + local backward = dgn.cell_see_cell(px, py, you_x, you_y) this_p = dgn.point(you_x, you_y) other_p = dgn.point(px, py) if not forward then @@ -26,11 +28,11 @@ local function test_gridseegrid_symmetry() this_p = other_p other_p = temp end - if forward ~= backward then + if (forward and backward) or (not forward and not backward) then dgn.grid(other_p.x, other_p.y, "floor_special") dgn.dbg_dump_map(FAILMAP) assert(false, - "grid_see_grid asymmetry detected (iter #" .. checks .. "): " + "cell_see_cell asymmetry detected (iter #" .. checks .. "): " .. this_p .. " sees " .. other_p .. ", but not vice versa." .. " Map saved to " .. FAILMAP) end @@ -48,11 +50,11 @@ local function run_los_tests(depth, nlevels, tests_per_level) dgn.dbg_flush_map_memory() dgn.dbg_generate_level() for t_i = 1, tests_per_level do - test_gridseegrid_symmetry() + test_cellseecell_symmetry() end end end for depth = 1, 27 do - run_los_tests(depth, 1, 10) + run_los_tests(depth, 1, 1) end diff --git a/crawl-ref/source/test/los_symm.lua b/crawl-ref/source/test/los_symm.lua index beb809beee..43bce66928 100644 --- a/crawl-ref/source/test/los_symm.lua +++ b/crawl-ref/source/test/los_symm.lua @@ -63,5 +63,5 @@ local function run_los_tests(depth, nlevels, tests_per_level) end for depth = 1, 27 do - run_los_tests(depth, 1, 10) + run_los_tests(depth, 1, 3) end |