aboutsummaryrefslogtreecommitdiff
path: root/scene-loader.scm
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2026-04-18 05:59:07 +0100
committerGene Pasquet <dev@etenil.net>2026-04-18 05:59:07 +0100
commit84f251ee6e829d33a4f29aa4043924023a378724 (patch)
treeab03d18fa192303bf2e1758743ac16c11d9da87f /scene-loader.scm
parentc2085be2dd2a0cb3da05991847e35080915e547e (diff)
Re-format
Diffstat (limited to 'scene-loader.scm')
-rw-r--r--scene-loader.scm170
1 files changed, 85 insertions, 85 deletions
diff --git a/scene-loader.scm b/scene-loader.scm
index 50ad210..c2e600b 100644
--- a/scene-loader.scm
+++ b/scene-loader.scm
@@ -1,96 +1,96 @@
(module (downstroke scene-loader) *
-(import scheme
- (chicken base)
- (only srfi-1 filter-map)
- (prefix sdl2 "sdl2:")
- (prefix sdl2-ttf "ttf:")
- defstruct
- (downstroke tilemap)
- (downstroke world)
- (downstroke assets)
- (downstroke engine)
- (downstroke prefabs))
+ (import scheme
+ (chicken base)
+ (only srfi-1 filter-map)
+ (prefix sdl2 "sdl2:")
+ (prefix sdl2-ttf "ttf:")
+ defstruct
+ (downstroke tilemap)
+ (downstroke world)
+ (downstroke assets)
+ (downstroke engine)
+ (downstroke prefabs))
-;; Convert TMX object list to entities.
-;; Object types are strings from XML; convert to symbols before instantiating.
-;; Filters out #f results (objects without registered prefabs).
-(define (tilemap-objects->entities tilemap registry)
- (filter-map
- (lambda (obj)
- (instantiate-prefab registry
- (string->symbol (object-type obj))
- (object-x obj) (object-y obj)
- (object-width obj) (object-height obj)))
- (tilemap-objects tilemap)))
+ ;; Convert TMX object list to entities.
+ ;; Object types are strings from XML; convert to symbols before instantiating.
+ ;; Filters out #f results (objects without registered prefabs).
+ (define (tilemap-objects->entities tilemap registry)
+ (filter-map
+ (lambda (obj)
+ (instantiate-prefab registry
+ (string->symbol (object-type obj))
+ (object-x obj) (object-y obj)
+ (object-width obj) (object-height obj)))
+ (tilemap-objects tilemap)))
-;; Create an SDL2 texture from a tileset's embedded image surface.
-(define (create-texture-from-tileset renderer tileset)
- (sdl2:create-texture-from-surface renderer (tileset-image tileset)))
+ ;; Create an SDL2 texture from a tileset's embedded image surface.
+ (define (create-texture-from-tileset renderer tileset)
+ (sdl2:create-texture-from-surface renderer (tileset-image tileset)))
-;; Create an SDL2 texture from the tileset image embedded in a tilemap.
-(define (create-tileset-texture renderer tilemap)
- (create-texture-from-tileset renderer (tilemap-tileset tilemap)))
+ ;; Create an SDL2 texture from the tileset image embedded in a tilemap.
+ (define (create-tileset-texture renderer tilemap)
+ (create-texture-from-tileset renderer (tilemap-tileset tilemap)))
-;; Load a TMX tilemap file and store it in the game asset registry.
-;; Returns the loaded tilemap struct.
-(define (game-load-tilemap! game key filename)
- (let ((tm (load-tilemap filename)))
- (game-asset-set! game key tm)
- tm))
+ ;; Load a TMX tilemap file and store it in the game asset registry.
+ ;; Returns the loaded tilemap struct.
+ (define (game-load-tilemap! game key filename)
+ (let ((tm (load-tilemap filename)))
+ (game-asset-set! game key tm)
+ tm))
-;; Load a TSX tileset file and store it in the game asset registry.
-;; Returns the loaded tileset struct.
-(define (game-load-tileset! game key filename)
- (let ((ts (load-tileset filename)))
- (game-asset-set! game key ts)
- ts))
+ ;; Load a TSX tileset file and store it in the game asset registry.
+ ;; Returns the loaded tileset struct.
+ (define (game-load-tileset! game key filename)
+ (let ((ts (load-tileset filename)))
+ (game-asset-set! game key ts)
+ ts))
-;; Load a TTF font file and store it in the game asset registry.
-;; size is the point size. Returns the loaded font.
-(define (game-load-font! game key filename size)
- (let ((font (ttf:open-font filename size)))
- (game-asset-set! game key font)
- font))
+ ;; Load a TTF font file and store it in the game asset registry.
+ ;; size is the point size. Returns the loaded font.
+ (define (game-load-font! game key filename size)
+ (let ((font (ttf:open-font filename size)))
+ (game-asset-set! game key font)
+ font))
-;; Load a scene from a TMX tilemap file.
-;; 1. Loads the tilemap from the file (and stores in assets)
-;; 2. Creates a texture from the tilemap's tileset image
-;; 3. Creates a scene with empty entities list
-;; 4. Sets the scene on the game
-;; Returns the scene.
-(define (game-load-scene! game filename)
- (let* ((tm (game-load-tilemap! game 'tilemap filename))
- (tex (create-tileset-texture (game-renderer game) tm))
- (scene (make-scene
- entities: '()
- tilemap: tm
- tileset: #f
- camera: (make-camera x: 0 y: 0)
- tileset-texture: tex
- camera-target: #f)))
- (game-scene-set! game scene)
- scene))
+ ;; Load a scene from a TMX tilemap file.
+ ;; 1. Loads the tilemap from the file (and stores in assets)
+ ;; 2. Creates a texture from the tilemap's tileset image
+ ;; 3. Creates a scene with empty entities list
+ ;; 4. Sets the scene on the game
+ ;; Returns the scene.
+ (define (game-load-scene! game filename)
+ (let* ((tm (game-load-tilemap! game 'tilemap filename))
+ (tex (create-tileset-texture (game-renderer game) tm))
+ (scene (make-scene
+ entities: '()
+ tilemap: tm
+ tileset: #f
+ camera: (make-camera x: 0 y: 0)
+ tileset-texture: tex
+ camera-target: #f)))
+ (game-scene-set! game scene)
+ scene))
-;; Build a tilemap-less scene driven only by a tileset (for sprite-only
-;; demos/games that don't need a TMX map). Any keyword accepted by
-;; make-scene can be passed via #!rest to override defaults.
-(define (make-sprite-scene #!key
- (entities '())
- (tileset #f)
- (tileset-texture #f)
- (camera (make-camera x: 0 y: 0))
- (camera-target #f)
- (background #f)
- (engine-update #f))
- (make-scene
- entities: entities
- tilemap: #f
- tileset: tileset
- camera: camera
- tileset-texture: tileset-texture
- camera-target: camera-target
- background: background
- engine-update: engine-update))
+ ;; Build a tilemap-less scene driven only by a tileset (for sprite-only
+ ;; demos/games that don't need a TMX map). Any keyword accepted by
+ ;; make-scene can be passed via #!rest to override defaults.
+ (define (make-sprite-scene #!key
+ (entities '())
+ (tileset #f)
+ (tileset-texture #f)
+ (camera (make-camera x: 0 y: 0))
+ (camera-target #f)
+ (background #f)
+ (engine-update #f))
+ (make-scene
+ entities: entities
+ tilemap: #f
+ tileset: tileset
+ camera: camera
+ tileset-texture: tileset-texture
+ camera-target: camera-target
+ background: background
+ engine-update: engine-update))
-) ;; end module
+ ) ;; end module