Add gems and the start of floor switches.

This commit is contained in:
David Thompson 2024-05-21 14:10:57 -04:00
parent 5fb33112d8
commit ba7b9ea9d8
5 changed files with 142 additions and 36 deletions

View file

@ -19,7 +19,7 @@
(actor level-actor)
(player level-player))
(define (make-level width height background objects)
(define (make-level width height background objects spawn-gem?)
(let ((level* (spawn ^level width height))
(len (bytevector-length objects)))
;; Parsed packed object data and spawn objects, making special
@ -37,9 +37,12 @@
(5 (spawn ^block x y 'copper))
(6 (spawn ^block x y 'crate))
(7 (spawn ^clock-emitter x y 4))
(8 (spawn ^floor-switch x y))
(9 (and spawn-gem? (spawn ^gem x y)))
(id (error "invalid level object" id)))))
($ level* 'add-object obj)
(if (= id 3) ; player-spawn
(when obj
($ level* 'add-object obj))
(if (= id 3) ; player-spawn
(lp (+ i 3) obj)
(lp (+ i 3) player)))
(%make-level background level* player)))))