(cmd-go (wrap-apply room-cmd-go))
(cmd-go-where (wrap-apply room-cmd-go-where))
(look-room (wrap-apply room-look-room))
+ (tell-room (wrap-apply room-tell-room))
;; in this case the command is the same version as the normal
;; look-room version
(cmd-look-room (wrap-apply room-look-room))
(else
(<- room (message-from message) 'tell
#:text "You don't see that here, so you can't look at it.\n"))))
+
+(define-mhandler (room-tell-room room message text)
+ "Tell the room some messages."
+ (define exclude (message-ref message 'exclude #f))
+ (define wait-delivery (message-ref message 'wait-delivery #f))
+ (define who-to-tell (gameobj-occupants room #:exclude exclude))
+ (for-each
+ (lambda (tell-me)
+ ;; @@: Does anything really care?
+ (define deliver-method
+ (if wait-delivery
+ <-wait
+ <-))
+ (deliver-method room tell-me 'tell
+ #:text text))
+ who-to-tell))