18 lines
555 B
Common Lisp
18 lines
555 B
Common Lisp
;;;; wh-engine/systems.lisp
|
|
;;;; facilities for defining systems
|
|
(in-package wh-engine)
|
|
|
|
(defvar *system-registry* ()
|
|
"Alist of defined systems.")
|
|
|
|
(defvar *world-systems* ()
|
|
"List of enabled systems.")
|
|
|
|
(defun register-system (name init-fun-symbol update-fun-symbol sdl-event-rules)
|
|
(push `(,name ,init-fun-symbol ,update-fun-symbol ,sdl-event-rules) *system-registry*))
|
|
|
|
(defun install-systems (&rest systems)
|
|
(loop for system-name in systems
|
|
for system = (assoc system-name *system-registry*)
|
|
do (push system *world-systems*)))
|