diff --git a/game/engine/Zone.lua b/game/engine/Zone.lua index 2a2fb35b7fd8c5c089c880572e54527121e18c6e..ceca40adab364a08fb9396b96b104f933f892610 100644 --- a/game/engine/Zone.lua +++ b/game/engine/Zone.lua @@ -465,6 +465,7 @@ function _M:getLevel(game, lev, old_lev, no_close) end function _M:getGenerator(what, level, spots) + print("[GENERATOR] requiring", what, level.data.generator and level.data.generator[what] and level.data.generator[what].class) return require(level.data.generator[what].class).new( self, level.map, @@ -508,19 +509,19 @@ function _M:newLevel(level_data, lev, old_lev, game) level.spots = spots -- Generate objects - if level_data.generator.object then + if level_data.generator.object and level_data.generator.object.class then local generator = self:getGenerator("object", level, spots) generator:generate() end -- Generate traps - if level_data.generator.trap then + if level_data.generator.trap and level_data.generator.trap.class then local generator = self:getGenerator("trap", level, spots) generator:generate() end -- Generate actors - if level_data.generator.actor then + if level_data.generator.actor and level_data.generator.actor.class then local generator = self:getGenerator("actor", level, spots) generator:generate() end diff --git a/game/engine/generator/map/Roomer.lua b/game/engine/generator/map/Roomer.lua index 7b2d83aa05235e3e7bdb3c94c0c654920ce0f3ad..f86ecb334a88690dda5894632da8d178dfa101ef 100644 --- a/game/engine/generator/map/Roomer.lua +++ b/game/engine/generator/map/Roomer.lua @@ -79,6 +79,8 @@ function _M:roomAlloc(room, id, lev, old_lev) room = room(self, id, lev, old_lev) end print("alloc", room.name) + -- Sanity check + if self.map.w - 2 - room.w < 2 or self.map.h - 2 - room.h < 2 then return false end local tries = 100 while tries > 0 do @@ -164,11 +166,12 @@ end --- Tunnel from x1,y1 to x2,y2 function _M:tunnel(x1, y1, x2, y2, id) + if x1 == x2 and y1 == y2 then return end -- Disable the many prints of tunnelling local print = function()end local xdir, ydir = self:tunnelDir(x1, y1, x2, y2) - print("tunneling from",x1, y1, "to", x2, y2, "initial dir", xdir, ydir) +-- print("tunneling from",x1, y1, "to", x2, y2, "initial dir", xdir, ydir) local startx, starty = x1, y1 local tun = {}