|
|
@ -727,6 +727,37 @@ |
|
|
|
;; Main |
|
|
|
;; |
|
|
|
|
|
|
|
;; On return null, play the game, else, exit for returned reason |
|
|
|
(defun-local do-main-menu (renderer (* SDL_Renderer) |
|
|
|
main-menu-texture (* SDL_Texture) |
|
|
|
&return (* (const char))) |
|
|
|
(var exit-reason (* (const char)) null) |
|
|
|
(var in-state input-state (array 0)) |
|
|
|
(while (not exit-reason) |
|
|
|
(var event SDL_Event) |
|
|
|
(while (SDL_PollEvent (addr event)) |
|
|
|
(when (= (field event type) SDL_QUIT) |
|
|
|
(set exit-reason "Window event"))) |
|
|
|
(var currentKeyStates (* (const Uint8)) (SDL_GetKeyboardState null)) |
|
|
|
(when (at SDL_SCANCODE_ESCAPE currentKeyStates) |
|
|
|
(set exit-reason "Escape pressed")) |
|
|
|
|
|
|
|
(unless (= 0 (SDL_RenderCopy renderer main-menu-texture |
|
|
|
null null)) |
|
|
|
(sdl-print-error) |
|
|
|
(set exit-reason "Render error")) |
|
|
|
|
|
|
|
(var mouse-x int 0) |
|
|
|
(var mouse-y int 0) |
|
|
|
(var mouse-button-state Uint32 (SDL_GetMouseState (addr mouse-x) (addr mouse-y))) |
|
|
|
(when (bit-and mouse-button-state SDL_BUTTON_LMASK) |
|
|
|
;; Play the game! |
|
|
|
(return null)) |
|
|
|
|
|
|
|
(SDL_RenderPresent renderer) |
|
|
|
(SDL_Delay todo-arbitrary-delay-ms)) |
|
|
|
(return exit-reason)) |
|
|
|
|
|
|
|
(comptime-cond ('Kitty-Main |
|
|
|
(defun main (num-args int args ([] (* char)) &return int) |
|
|
|
(SDL_Log "Kitty Gridlock\n\n |
|
|
@ -798,6 +829,10 @@ Rush Hour database from Michael Fogleman.\n\n") |
|
|
|
|
|
|
|
(read-progression-data) |
|
|
|
|
|
|
|
(var main-menu-texture (* SDL_Texture) |
|
|
|
(sdl-texture-from-bmp (in-data-dir "MainMenu.bmp") renderer)) |
|
|
|
(unless main-menu-texture (return 1)) |
|
|
|
|
|
|
|
(var background-texture (* SDL_Texture) (sdl-texture-from-bmp (in-data-dir "Board.bmp") |
|
|
|
renderer)) |
|
|
|
(unless background-texture (return 1)) |
|
|
@ -853,7 +888,8 @@ Rush Hour database from Michael Fogleman.\n\n") |
|
|
|
(unless font-texture (return 1)) |
|
|
|
|
|
|
|
(var textures-to-destroy ([] (* SDL_Texture)) |
|
|
|
(array background-texture |
|
|
|
(array main-menu-texture |
|
|
|
background-texture |
|
|
|
grid-texture |
|
|
|
pieces-texture |
|
|
|
win-texture |
|
|
@ -886,6 +922,9 @@ Rush Hour database from Michael Fogleman.\n\n") |
|
|
|
(sdl-print-time-delta start-load-ticks "Game loop starting") |
|
|
|
|
|
|
|
(var exit-reason (* (const char)) null) |
|
|
|
|
|
|
|
(set exit-reason (do-main-menu renderer main-menu-texture)) |
|
|
|
|
|
|
|
(while (not exit-reason) |
|
|
|
(var event SDL_Event) |
|
|
|
(while (SDL_PollEvent (addr event)) |
|
|
@ -1110,6 +1149,7 @@ Rush Hour database from Michael Fogleman.\n\n") |
|
|
|
recent-n-perf-counts i |
|
|
|
(var delta-time float (/ (at i recent-n-perf-counts) |
|
|
|
(type-cast performance-num-ticks-per-second float))) |
|
|
|
(unless delta-time (continue)) |
|
|
|
(SDL_Log "\t%f %fhz\n" delta-time (/ 1.f delta-time)))) |
|
|
|
|
|
|
|
;; |
|
|
|