diff --git a/mapper.fnl b/mapper.fnl index 172b851..553fa92 100644 --- a/mapper.fnl +++ b/mapper.fnl @@ -5,6 +5,8 @@ (var cell-num 20) (var (hall-width wall-width) (values 2 4)) (var cell-size (+ hall-width wall-width)) +; (fn wall-seg [] (+ 10 (math.random 1 3))) +(fn wall-seg [] (math.random 11 13)) ; Helper functions for dealing with the cell list (fn cell-row [i] (+ 1 (math.floor (/ (- i 1) cell-num)))) (fn map-index [i] @@ -37,9 +39,9 @@ (var cell-index (+ j (* (- i 1) cell-size))) (if (and (< i (+ col-limit 1)) (< j (+ row-limit 1))) (tset cell cell-index 0) - (tset cell cell-index 1)) + (tset cell cell-index (wall-seg))) (if (and (> i hall-width) (> j hall-width)) - (tset cell cell-index 1)) + (tset cell cell-index (wall-seg))) (if (= k leave-cell) (tset cell cell-index 0)))) (table.insert cells cell)) @@ -113,28 +115,31 @@ (tset cell_map new-map-index (. cells c new-cell-index))))) cell_map) + (fn generate-north-spawn [spawn-cell] (var (map map-row) (values [] [])) (for [i 1 cell-size] (set map-row []) - (for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] (table.insert map-row 1)) + (for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] + (table.insert map-row (wall-seg))) (table.insert map map-row)) (var spawn (+ (- (* spawn-cell cell-size) (- cell-size 1)) cell-size)) (tset map cell-size spawn 0) - (tset map cell-size (+ spawn 1) 2) - (tset map cell-size (- spawn 1) 2) - (tset map (- cell-size 1) spawn 3) + (tset map cell-size (+ spawn 1) 22) + (tset map cell-size (- spawn 1) 22) + (tset map (- cell-size 1) spawn 33) map) (fn generate-south-exit [cells leave-cell] (var (map map-row) (values [] [])) (for [i 1 (- cell-size hall-width)] (set map-row []) - (for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] (table.insert map-row 1)) + (for [j 1 (- (* (+ 2 cell-num) cell-size) hall-width)] + (table.insert map-row (wall-seg))) (table.insert map map-row)) (var escape (+ (* (- leave-cell (* cell-num (- cell-num 1))) cell-size) 1)) (for [i 1 cell-size] - (tset map 1 (+ escape (- i 1)) 3)) + (tset map 1 (+ escape (- i 1)) 33)) map) (fn generate_map [cells spawn-cell leave-cell] @@ -144,14 +149,14 @@ ; Pad the east and west sides of the map (for [c 1 (* cell-num cell-size)] (var map-row []) - (for [i 1 cell-size] (table.insert map-row 1)) + (for [i 1 cell-size] (table.insert map-row (wall-seg))) ; (table.move cells ; (+ (* (- c 1) (* cell-num cell-size)) 1) ; (* c (* cell-num cell-size)) ; (+ cell-size 1) map-row) (for [i (+ (* (- c 1) (* cell-num cell-size)) 1) (* c (* cell-num cell-size))] (table.insert map-row (. cells i))) - (for [i 1 (- cell-size hall-width)] (table.insert map-row 1)) + (for [i 1 (- cell-size hall-width)] (table.insert map-row (wall-seg))) (table.insert map map-row)) ; Generate the northern feature - spawn point (each [_ row (ipairs (generate-south-exit cells leave-cell))] (table.insert map row)) @@ -176,7 +181,7 @@ (var data-maze (convert-cells meta-maze leave-cell)) (var data-map (generate_cell_map data-maze)) (var map (generate_map data-map spawn-cell leave-cell)) - (print_map map) + ;(print_map map) (values map spawn-spot)) ; (print (.. "SPAWN: " spawn-cell "(" (. spawn-spot :x) "," (. spawn-spot :y) ")")) diff --git a/raycaster.fnl b/raycaster.fnl index 60c8b28..d5dba9f 100644 --- a/raycaster.fnl +++ b/raycaster.fnl @@ -191,7 +191,8 @@ ; Draw textured wall ;; Choose texture - (var tex-num (. walls (. map mapx mapy))) + ; (var tex-num (. walls (. map mapx mapy))) + (var tex-num (. walls (math.floor (/ (. map mapx mapy) 10)))) ;; Calculate exactly where the wall was hit (var wallx 0) (if (= side 0) @@ -205,18 +206,18 @@ ;; Draw the texture, accounting for "fog" (var fog-dist (- 1 (/ perp-wall-dist 7))) (love.graphics.setColor 1 1 1 fog-dist) - (love.graphics.draw (. tex-num :t) - (love.graphics.newQuad tex-x 0 1 (. tex-num :h) (. tex-num :w) (. tex-num :h)) - i draw-start 0 1 (/ line-height (. tex-num :h))) - (when (= (. map mapx mapy) 3) - (for [q 1 3] + ; (love.graphics.draw (. tex-num :t) + ; (love.graphics.newQuad tex-x 0 1 (. tex-num :h) (. tex-num :w) (. tex-num :h)) + ; i draw-start 0 1 (/ line-height (. tex-num :h))) + ; (when (= (. map mapx mapy) 3) + (for [q 0 (% (. map mapx mapy) 10)] (set fog-dist (- fog-dist 0.1)) (love.graphics.setColor 1 1 1 fog-dist) (love.graphics.draw (. tex-num :t) (love.graphics.newQuad tex-x 0 1 (. tex-num :h) (. tex-num :w) (. tex-num :h)) i (- draw-start (* line-height q)) 0 1 (/ line-height (. tex-num :h))) ) - ) + ; ) ) (overlay.overlay offst-x offst-y) )