Browse Source

Use macros more consistently, flip each in range

master
Macoy Madson 2 years ago
parent
commit
a7a530f178
  1. 54
      src/Main.cake

54
src/Main.cake

@ -305,8 +305,8 @@
(var g-current-puzzle (* puzzle-data) null)
(defun-local game-piece-grid-position-to-screen-position (piece (* (const board-piece)) &return vec2)
(var piece-position vec2 (array (type-cast (vec-x (path piece > grid-position)) float)
(type-cast (vec-y (path piece > grid-position)) float)))
(var piece-position vec2 (array (to-float (vec-x (path piece > grid-position)))
(to-float (vec-y (path piece > grid-position)))))
;; Transfer to pixel space
(set piece-position (vec2-multiply (array (repeat g-game-board-cell-size-px)) piece-position))
;; Add board offset
@ -322,8 +322,8 @@
(defun-local game-piece-get-screen-size (piece (* (const board-piece)) &return vec2)
(var piece-grid-size vec2
(array
(? (path piece > is-vertical) 1.f (type-cast (path piece > num-cells) float))
(? (path piece > is-vertical) (type-cast (path piece > num-cells) float) 1.f)))
(? (path piece > is-vertical) 1.f (to-float (path piece > num-cells)))
(? (path piece > is-vertical) (to-float (path piece > num-cells)) 1.f)))
(var piece-size vec2 (array (repeat g-game-board-cell-size-px)))
(set piece-size (vec2-multiply piece-size piece-grid-size))
(return piece-size))
@ -564,7 +564,7 @@
(return))
(set g-num-progression-puzzles g-num-puzzles)
(create-progression-puzzles)
(each-in-range i g-num-progression-puzzles
(each-in-range g-num-progression-puzzles i
(set (field (at i g-progression-puzzles) index) i)
(set (field (at i g-progression-puzzles) is-solved) false)))
@ -612,7 +612,7 @@
(create-progression-puzzles)
(var num-unsolved-puzzles int 0)
(each-in-range
i g-num-progression-puzzles
g-num-progression-puzzles i
(var current-puzzle progression-puzzle)
(SDL_RWread progression-file (addr current-puzzle) (sizeof current-puzzle) 1)
(when (field current-puzzle is-solved)
@ -677,10 +677,8 @@
texture (* SDL_Texture) ;; Assumes whole texture drawn
&return bool) ;; Returns whether clicked
(when (and renderer texture)
(var dest-rect SDL_Rect (array (type-cast (vec-x position) int)
(type-cast (vec-y position) int)
(type-cast (vec-x size) int)
(type-cast (vec-y size) int)))
(var dest-rect SDL_Rect (array (vec-xy-to-int position)
(vec-xy-to-int size)))
(unless (= 0 (SDL_RenderCopy renderer texture null (addr dest-rect)))
(sdl-print-error)))
@ -743,22 +741,22 @@
(unless num-render-drivers
(return false))
(var i int 0)
(while (< i num-render-drivers)
(var driver-info SDL_RendererInfo (array 0))
(unless (= 0 (SDL_GetRenderDriverInfo i (addr driver-info)))
(return false))
(SDL_Log "Renderer [%d]: %s\n
(each-in-range
num-render-drivers i
(var driver-info SDL_RendererInfo (array 0))
(unless (= 0 (SDL_GetRenderDriverInfo i (addr driver-info)))
(return false))
(SDL_Log "Renderer [%d]: %s\n
\tHardware accelerated: %s\n
\tRender to texture: %s\n
\tMax texture width: %d\n
\tMax texture height: %d\n
\n"
i (field driver-info name)
(? (bit-and (field driver-info flags) SDL_RENDERER_ACCELERATED) "yes" "no")
(? (bit-and (field driver-info flags) SDL_RENDERER_TARGETTEXTURE) "yes" "no")
(field driver-info max_texture_width)
(field driver-info max_texture_height))
(incr i))
i (field driver-info name)
(? (bit-and (field driver-info flags) SDL_RENDERER_ACCELERATED) "yes" "no")
(? (bit-and (field driver-info flags) SDL_RENDERER_TARGETTEXTURE) "yes" "no")
(field driver-info max_texture_width)
(field driver-info max_texture_height)))
(var macoy-beast-driver (const int) 0)
(var selected-renderer int macoy-beast-driver)
@ -808,7 +806,7 @@
(var current-counter-ticks Uint64 (SDL_GetPerformanceCounter))
(var frame-diff-ticks Uint64 (- current-counter-ticks start-num-perf-ticks))
(var delta-time float (/ frame-diff-ticks
(type-cast performance-num-ticks-per-second float)))
(to-float performance-num-ticks-per-second)))
(SDL_Log "--- %s at %f seconds\n" label delta-time))
@ -1039,7 +1037,7 @@ Rush Hour database from Michael Fogleman.\n\n")
(var mouse-x int 0)
(var mouse-y int 0)
(var mouse-button-state Uint32 (SDL_GetMouseState (addr mouse-x) (addr mouse-y)))
(var mouse-position vec2 (array (type-cast mouse-x float) (type-cast mouse-y float)))
(var mouse-position vec2 (array (to-float mouse-x) (to-float mouse-y)))
(scope ;; Scale mouse position to match logical rendering positions
(var window-width int 1)
(var window-height int 1)
@ -1151,7 +1149,7 @@ Rush Hour database from Michael Fogleman.\n\n")
(while (< row g-game-board-grid-size)
(var column int 0)
(while (< column g-game-board-grid-size)
(var current-cell vec2 (array (type-cast row float) (type-cast column float)))
(var current-cell vec2 (array (to-float row) (to-float column)))
(var cell-position vec2
(vec2-add g-game-board-inner-top-left-px
(vec2-multiply (array (repeat g-game-board-cell-size-px))
@ -1245,7 +1243,7 @@ Rush Hour database from Michael Fogleman.\n\n")
(set recent-n-perf-counts-write-head 0))
(set delta-time (/ frame-diff-ticks
(type-cast performance-num-ticks-per-second float)))
(to-float performance-num-ticks-per-second)))
;; (SDL_Log "%lu %f %fhz\n" frame-diff-ticks delta-time (/ 1.f delta-time))
(SDL_Delay todo-arbitrary-delay-ms))
@ -1255,7 +1253,7 @@ Rush Hour database from Michael Fogleman.\n\n")
(each-in-array
recent-n-perf-counts i
(var delta-time float (/ (at i recent-n-perf-counts)
(type-cast performance-num-ticks-per-second float)))
(to-float performance-num-ticks-per-second)))
(unless delta-time (continue))
(SDL_Log "\t%f %fhz\n" delta-time (/ 1.f delta-time))))
@ -1388,12 +1386,12 @@ Rush Hour database from Michael Fogleman.\n\n")
output
(scope
(var num-elements int (array-size (token-splice array-name)))
(each-in-range (token-splice iterator-name) num-elements
(each-in-range num-elements (token-splice iterator-name)
(token-splice-rest body tokens))))
(return true))
;; TODO: Needs temp var to prevent double eval if range is an expression
(defmacro each-in-range (iterator-name symbol range symbol &rest body any)
(defmacro each-in-range (range symbol iterator-name symbol &rest body any)
(tokenize-push
output
(scope

Loading…
Cancel
Save