git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7660 c06c8d41-db1a-0410-9941-cceddc491573
GLDM7OPM3D2DFU5QFKOSZY36EWJJJEV6CH6GPQLDZO35X7CWAIRQC local function ziggurat_hexagon_builder(e)local grid = dgn.griddgn.fill_area(0, 0, dgn.GXM - 1, dgn.GYM - 1, "stone_wall")local zig_exc = zig().zig_exclocal c = dgn.point(dgn.GXM, dgn.GYM) / 2local area = map_area()local a = math.floor(math.sqrt(2 * area / math.sqrt(27))) + 2crawl.mpr("a: " .. a)
local left = dgn.point(math.floor(c.x - (a + math.sqrt(2 * a)) / 2),c.y)local right = dgn.point(2 * c.x - left.x, c.y)local floor = dgn.fnum("floor")for x = 1, dgn.GXM - 2 dofor y = 1, dgn.GYM - 2 dolocal dlx = x - left.xlocal drx = x - right.xlocal dly = y - left.ylocal dry = y - right.yif dlx >= dly and drx <= dryand dlx >= -dly and drx <= -dryand y >= c.y - a and y <= c.y + a thengrid(x, y, floor)endendendlocal entry = left + dgn.point(1,0)local exit = right - dgn.point(1, 0)if zig_depth() % 2 == 0 thenentry, exit = exit, entryendziggurat_stairs(entry, exit)ziggurat_furnish(c, entry, exit)end