Plaster

common-lisp
(define-presentation test (1024 576) 1 1 (T ;; station label, contents defined later. (enter group-actor :location (vec 0 0) :locations (list (vec (rx 1/4) (ry 4/10)) (vec (+ (rx 1/8) (* 30 1/2)) (ry 1/2))) :name :station-label)) 1 1 (:station-label (enter textbox :border (cons (vec 0 0 0 0) (->colour 0 0 0 0)) :location (vec (rx 1/4) (ry 4/10)) :size (vec (rx 5/8) (ry 2/10)) :align (cons :left :center) :text "London King's Cross" :font-size 50 :background *background-colour* :name :station-code-box) (enter oval :location (vec (+ (rx 1/8) (* 30 1/2)) (ry 1/2)) :size (vec 80 80) :border (cons 15 *background-colour*) :background *text-colour* :name :station-oval))) ;;; later, in (setf location) (defmethod (setf location) :after (value (group-actor group-actor)) (format t "~&~40~") (for:for ((actor flare-queue:in-queue (objects group-actor)) (actor-offset in (locations group-actor))) (let* ((subactor-location (location actor)) (group-location (location group-actor)) (new-subactor-location (setf (location actor) (v+ subactor-location group-location)))) (format *debug-io* "~&Location of ~40a~& set to ~20a (was ~20a)" actor subactor-location new-subactor-location))))

Annotations