(in-package sugar-qsp) (setf (root) (ps:create ;;; Game session state ;; Variables vars (ps:create) ;; Inventory (objects) objs (list) ;;; Transient state ;; Savegame data state-stash (ps:create) ;; List of audio files being played playing (ps:create) ;; Local variables stack (starts with an empty frame) locals (list) ;;; Game data ;; ACTions acts (ps:create) ;; Locations locs (ps:create))) ;; Launch the game from the first location (setf window.onload (lambda () (funcall (ps:getprop (root locs) (ps:chain *object (keys (root locs)) 0)) (list)) (values))) ;; Close the dropdown on any click (setf window.onclick (lambda (event) (setf (ps:@ (api-call get-frame :dropdown) style display) "none")))