(define room-actions
(build-actions
;; desc == description
+ (init (wrap-apply room-init))
(wire-exits! (wrap-apply room-wire-exits!))
(cmd-go (wrap-apply room-cmd-go))
(cmd-go-where (wrap-apply room-cmd-go-where))
;; @@: Can remove this indirection once things settle
#:init-value (wrap-apply room-action-dispatch)))
+(define (room-init room message)
+ (room-wire-exits! room))
-(define (room-wire-exits! room message)
+(define (room-wire-exits! room)
"Actually hook up the rooms' exit addresses to the rooms they
claim to point to."
(for-each
(lambda (exit)
(define new-exit
(message-ref
- (<-wait room (gameobj-gm room) 'lookup-room
+ (<-wait room (gameobj-gm room) 'lookup-special
#:symbol (slot-ref exit 'to-symbol))
'room-id))
(<- room (message-from message) 'look-room))
(else
(<- room (message-from message) 'tell
- #:text "I don't know where that is?\n"))))
+ #:text "You don't see any way to go there.\n"))))
(define-mhandler (room-cmd-go-where room message)
(<- room (message-from message) 'tell