#:goes-by (gameobj-goes-by actor)))
(define-mhandler (gameobj-get-container-commands actor message verb)
#:goes-by (gameobj-goes-by actor)))
(define-mhandler (gameobj-get-container-commands actor message verb)
(define filtered-commands
(filter-commands (val-or-run (slot-ref actor 'container-commands))
verb))
(<-reply actor message #:commands filtered-commands))
(define-mhandler (gameobj-add-occupant! actor message who)
(define filtered-commands
(filter-commands (val-or-run (slot-ref actor 'container-commands))
verb))
(<-reply actor message #:commands filtered-commands))
(define-mhandler (gameobj-add-occupant! actor message who)
(hash-remove! (slot-ref actor 'occupants) who))
(define-mhandler (gameobj-get-occupants actor message)
(hash-remove! (slot-ref actor 'occupants) who))
(define-mhandler (gameobj-get-occupants actor message)
;; @@: Should it really be #:id ? Maybe #:loc-id or #:loc?
(define-mhandler (gameobj-set-loc! actor message loc)
;; @@: Should it really be #:id ? Maybe #:loc-id or #:loc?
(define-mhandler (gameobj-set-loc! actor message loc)
(define old-loc (gameobj-loc actor))
(format #t "DEBUG: Location set to ~s for ~s\n"
loc (actor-id-actor actor))
(define old-loc (gameobj-loc actor))
(format #t "DEBUG: Location set to ~s for ~s\n"
loc (actor-id-actor actor))
;; Change registation of where we currently are
(if loc
(<-wait actor loc 'add-occupant! #:who (actor-id actor)))
;; Change registation of where we currently are
(if loc
(<-wait actor loc 'add-occupant! #:who (actor-id actor)))