maze: apply additional branchiness fix from maze3d

We've tweaaked the chance though to make it look better though

Perhaps in the future we should add a setting for this?
This commit is contained in:
Starbeamrainbowlabs 2020-05-01 12:57:55 +01:00
parent 394f3ec4ef
commit a3a193cd68
Signed by: sbrl
GPG key ID: 1BE5172E637709C2

View file

@ -54,10 +54,11 @@ function generate_maze(seed, width, height)
if cx + 2 < width and world[cy][cx + 2] == "#" then if cx + 2 < width and world[cy][cx + 2] == "#" then
directions = directions .. "r" directions = directions .. "r"
end end
--print("radar output: '" .. directions .. "' (length: " .. #directions .. "), curnode: " .. curnode)
local shift_attention = math.random(0, 9)
if #directions > 0 then if #directions > 0 then
-- we still have somewhere that we can go -- we still have somewhere that we can go
--print("This node is not a dead end yet.")
local curdirnum = math.random(1, #directions) local curdirnum = math.random(1, #directions)
local curdir = string.sub(directions, curdirnum, curdirnum) local curdir = string.sub(directions, curdirnum, curdirnum)
if curdir == "u" then if curdir == "u" then
@ -82,19 +83,17 @@ function generate_maze(seed, width, height)
else else
--print("The node at " .. curnode .. " is a dead end.") --print("The node at " .. curnode .. " is a dead end.")
table.remove(nodes, curnode) table.remove(nodes, curnode)
-- No need to do anything else here, since #directions == 0 will cause a teleport - see below
end
if #directions == 0 or shift_attention <= 1 then
if #nodes > 0 then if #nodes > 0 then
--print("performing teleport."); --print("performing teleport.");
curnode = math.random(1, #nodes) curnode = math.random(1, #nodes)
--print("New node: " .. curnode)
-- print("Nodes table: ")
-- print_r(nodes)
cx = nodes[curnode]["x"] cx = nodes[curnode]["x"]
cy = nodes[curnode]["y"] cy = nodes[curnode]["y"]
else
--print("Maze generation complete, no teleportation necessary.")
end end
end end
--printspace(world, width, height)
end end
return world return world