From 744e40d952958a2dde9989c0f6bc6e388d3f58b3 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Thu, 5 Jul 2012 20:41:42 +0000
Subject: [PATCH] The Maze corridors are now 2 wide Lowered the size of the
 Maze a bit, but with the same number of foes

git-svn-id: http://svn.net-core.org/repos/t-engine4@5337 51575b47-30f0-44d4-a5cc-537603b46e54
---
 .../default/engine/generator/map/Maze.lua     | 34 ++++++++++++-------
 .../tome/data/zones/ardhungol/zone.lua        |  2 ++
 game/modules/tome/data/zones/maze/zone.lua    |  3 +-
 3 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/game/engines/default/engine/generator/map/Maze.lua b/game/engines/default/engine/generator/map/Maze.lua
index 125d3a92b8..9f90aa4e67 100644
--- a/game/engines/default/engine/generator/map/Maze.lua
+++ b/game/engines/default/engine/generator/map/Maze.lua
@@ -25,13 +25,23 @@ module(..., package.seeall, class.inherit(engine.Generator))
 function _M:init(zone, map, grid_list, data)
 	engine.Generator.init(self, zone, map, level)
 	self.data = data
+	data.widen_w = data.widen_w or 1
+	data.widen_h = data.widen_h or 1
+	data.w = data.w or math.floor(map.w / data.widen_w)
+	data.h = data.h or math.floor(map.h / data.widen_h)
 	self.grid_list = self.zone.grid_list
 end
 
 function _M:generate(lev, old_lev)
-	for i = 0, self.map.w - 1 do for j = 0, self.map.h - 1 do
-		self.map(i, j, Map.TERRAIN, self:resolve("wall"))
-		self.map.room_map[i][j].maze_wall = true
+	local do_tile = function(i, j, wall)
+		for ii = 0, self.data.widen_w-1 do for jj = 0, self.data.widen_h-1 do
+			self.map(i*self.data.widen_w+ii, j*self.data.widen_h+jj, Map.TERRAIN, self:resolve(wall and "wall" or "floor"))
+		end end
+		self.map.room_map[i][j].maze_wall = wall
+	end
+
+	for i = 0, self.data.w - 1 do for j = 0, self.data.h - 1 do
+		do_tile(i, j, true)
 	end end
 
 	local xpos, ypos = 1, 1
@@ -59,20 +69,20 @@ function _M:generate(lev, old_lev)
 		if #dir > 0 then
 			local d = dir[rng.range(1, #dir)]
 			if d == 4 then
-				self.map(xpos-2, ypos, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos-2][ypos].maze_wall = nil
-				self.map(xpos-1, ypos, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos-1][ypos].maze_wall = nil
+				do_tile(xpos-2, ypos, false)
+				do_tile(xpos-1, ypos, false)
 				xpos = xpos - 2
 			elseif d == 6 then
-				self.map(xpos+2, ypos, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos+2][ypos].maze_wall = nil
-				self.map(xpos+1, ypos, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos+1][ypos].maze_wall = nil
+				do_tile(xpos+2, ypos, false)
+				do_tile(xpos+1, ypos, false)
 				xpos = xpos + 2
 			elseif d == 8 then
-				self.map(xpos, ypos-2, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos][ypos-2].maze_wall = nil
-				self.map(xpos, ypos-1, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos][ypos-1].maze_wall = nil
+				do_tile(xpos, ypos-2, false)
+				do_tile(xpos, ypos-1, false)
 				ypos = ypos - 2
 			elseif d == 2 then
-				self.map(xpos, ypos+2, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos][ypos+2].maze_wall = nil
-				self.map(xpos, ypos+1, Map.TERRAIN, self:resolve("floor")) self.map.room_map[xpos][ypos+1].maze_wall = nil
+				do_tile(xpos, ypos+2, false)
+				do_tile(xpos, ypos+1, false)
 				ypos = ypos + 2
 			end
 			table.insert(moves, {xpos, ypos})
@@ -81,7 +91,7 @@ function _M:generate(lev, old_lev)
 		end
 	end
 	-- Always starts at 1, 1
-	local ux, uy = 1, 1
+	local ux, uy = 1 * self.data.widen_w, 1 * self.data.widen_h
 	local dx, dy = math.floor(self.map.w/2)*2-1-2*(1-math.mod(self.map.w,2)), math.floor(self.map.h/2)*2-1-2*(1-math.mod(self.map.h,2))
 	self.map(ux, uy, Map.TERRAIN, self:resolve("up"))
 	self.map.room_map[ux][uy].special = "exit"
diff --git a/game/modules/tome/data/zones/ardhungol/zone.lua b/game/modules/tome/data/zones/ardhungol/zone.lua
index f85dfe29c3..47660fe726 100644
--- a/game/modules/tome/data/zones/ardhungol/zone.lua
+++ b/game/modules/tome/data/zones/ardhungol/zone.lua
@@ -66,5 +66,7 @@ return {
 				up = "CAVE_LADDER_UP_WILDERNESS",
 			}, },
 		},
+		[2] = { width = 40, height = 40, generator = {map = {min_floor=600}} },
+		[3] = { width = 20, height = 20, generator = {map = {min_floor=200}} },
 	},
 }
diff --git a/game/modules/tome/data/zones/maze/zone.lua b/game/modules/tome/data/zones/maze/zone.lua
index 71e4973236..74817550e0 100644
--- a/game/modules/tome/data/zones/maze/zone.lua
+++ b/game/modules/tome/data/zones/maze/zone.lua
@@ -24,7 +24,7 @@ return {
 	max_level = 2,
 	decay = {300, 800},
 	actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
-	width = 80, height = 80,
+	width = 60, height = 60,
 --	all_remembered = true,
 --	all_lited = true,
 	persistent = "zone",
@@ -38,6 +38,7 @@ return {
 			down = "DOWN",
 			wall = "OLD_WALL",
 			floor = "OLD_FLOOR",
+			widen_w = 2, widen_h = 2,
 		},
 		actor = {
 			class = "mod.class.generator.actor.Random",
-- 
GitLab