wh-engine/wh-engine/systems.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*)))