From 72029078b7c0c820fd7907756c0e7cc8dd57462c Mon Sep 17 00:00:00 2001 From: Bill Niblock Date: Wed, 6 Nov 2024 22:13:47 -0500 Subject: [PATCH] Fix some performance issues --- buildtools/appimage/love-prepared/bin/love | Bin 406463 -> 406463 bytes mode-intro.fnl | 2 + mode-play.fnl | 52 --------------------- state.fnl | 2 +- 4 files changed, 3 insertions(+), 53 deletions(-) diff --git a/buildtools/appimage/love-prepared/bin/love b/buildtools/appimage/love-prepared/bin/love index 468ebfe2e7a1187b648678e190649cbe5cad3e27..c6341b35e01ec4e81e7c0df6974fe790a165b701 100755 GIT binary patch delta 4191 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 delta 4157 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 HG6n(x4YL$? diff --git a/mode-intro.fnl b/mode-intro.fnl index 446cd42..738f8fe 100644 --- a/mode-intro.fnl +++ b/mode-intro.fnl @@ -100,6 +100,8 @@ (var newseed (+ (love.timer.getTime) mx my)) (state.setSeed newseed) (set-mode :mode-play)) + (when (= key "f") + (love.window.setFullscreen (not (love.window.getFullscreen)))) (when (= key "x") (love.event.quit))) :mousemoved diff --git a/mode-play.fnl b/mode-play.fnl index 0d32725..5390787 100644 --- a/mode-play.fnl +++ b/mode-play.fnl @@ -52,58 +52,6 @@ ; Draw a big thing before everything else ; (love.graphics.draw (. skybox 1 :t) -20 -20) - ; CEILING/FLOOR CASTING - (var cf-f-tex-num (. walls 2)) - (var cf-c-tex-num (. walls 2)) - ; (var floor-texel (love.graphics.newQuad 0 0 1 1 (. cf-f-tex-num :w) (. cf-f-tex-num :h))) - (for [i (/ screen-height 2) screen-height] - ; Set ray-dir for left-most (i = 0) and right-most (i = screen-width) rays - (var (cf-ray-dir-x0 cf-ray-dir-y0) (values (- dirx planex) (- diry planey))) - (var (cf-ray-dir-x1 cf-ray-dir-y1) (values (+ dirx planex) (+ diry planey))) - - ; Current y position compared to horizon - (var cf-p (math.floor (/ (- i screen-height) 2))) - - ; Vertical position of the camera - (var cf-pos-z (* 0.5 screen-height)) - - ; Horizontal distance from camera to floor for current row - (var cf-row-distance (/ cf-pos-z cf-p)) - - ; Calculate step vectors - (var cf-floor-step-x (/ (* cf-row-distance (- cf-ray-dir-x1 cf-ray-dir-x0)) screen-width)) - (var cf-floor-step-y (/ (* cf-row-distance (- cf-ray-dir-y1 cf-ray-dir-y0)) screen-width)) - - ; Coordinates of left-most column, updated stepping to the right - (var (cf-floor-x cf-floor-y) (values (+ posx (* cf-row-distance cf-ray-dir-x0)) - (+ posy (* cf-row-distance cf-ray-dir-y0)))) - - ; Draw floor and ceiling - (for [j 0 screen-width] - ; Get cell - (var (cf-cell-x cf-cell-y) (values (math.floor cf-floor-x) (math.floor cf-floor-y))) - - ; Get texture coordinate from fractional part - ; CPP Code: wtf is the & doing there? - ; (var (cf-tx cf-ty) (values (math.floor (% (* tex-width (- cf-floor-x cf-cell-x)) tex-width)) - ; (math.floor (% (* tex-height (- cf-floor-y cf-cell-y)) tex-height)))) - (var (cf-tx cf-ty) (values (math.floor (* tex-width (- cf-floor-x cf-cell-x))) - (math.floor (* tex-height (- cf-floor-y cf-cell-y))))) - - ;; Draw the texture - ; (var tex-num cf-f-tex-num) - ; (love.graphics.draw (. tex-num :t) - ; (love.graphics.newQuad cf-tx 0 1 (. tex-num :h) (. tex-num :w) (. tex-num :h)) - ; i cf-ty 0 1 (/ line-height (. tex-num :h))) - ; (love.graphics.draw (. cf-f-tex-num :t) - ; floor-texel - ; j i 0 1 1) - - ; Step - (set cf-floor-x (+ cf-floor-x cf-floor-step-x)) - (set cf-floor-y (+ cf-floor-y cf-floor-step-y)) - ) - ) ; WALL CASTING (for [i 0 screen-width] ; Calculate ray position and direction diff --git a/state.fnl b/state.fnl index 08e0ce5..5d9854d 100644 --- a/state.fnl +++ b/state.fnl @@ -14,7 +14,7 @@ ; The Map table holds the map meta-data ; [n] number of cells ; [h w] hall and wall widths -(var map {:n 10 :h 2 :w 2}) +(var map {:n 10 :h 3 :w 4}) {:getSeed (fn getSeed [] game.seed) :setSeed (fn setSeed [x] (set game.seed x))