projects
/
mudsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Port to the remove-define-mhandler 8sync branch
[mudsync.git]
/
mudsync
/
room.scm
diff --git
a/mudsync/room.scm
b/mudsync/room.scm
index c4305233672755dad1f35c50057de342ec40ae33..2c19788034c3485245553e84278ac13490ac7efa 100644
(file)
--- a/
mudsync/room.scm
+++ b/
mudsync/room.scm
@@
-107,7
+107,7
@@
;; @@: Can remove this indirection once things settle
#:init-value (wrap-apply room-action-dispatch)))
;; @@: Can remove this indirection once things settle
#:init-value (wrap-apply room-action-dispatch)))
-(define
-mhandler (room-cmd-go room message
direct-obj)
+(define
* (room-cmd-go room message #:key
direct-obj)
(define exit
(find
(lambda (exit)
(define exit
(find
(lambda (exit)
@@
-119,8
+119,9
@@
(dyn-ref room (slot-ref exit 'to))
#f))
(define player-name
(dyn-ref room (slot-ref exit 'to))
#f))
(define player-name
- (message-ref (<-wait room (message-from message)
- 'get-name) 'val))
+ (msg-receive (_ #:key val)
+ (<-wait room (message-from message) 'get-name)
+ val))
(cond
(exit
;; Set the player's new location
(cond
(exit
;; Set the player's new location
@@
-140,7
+141,7
@@
(<- room (message-from message) 'tell
#:text "You don't see any way to go there.\n"))))
(<- room (message-from message) 'tell
#:text "You don't see any way to go there.\n"))))
-(define
-mhandler
(room-cmd-go-where room message)
+(define (room-cmd-go-where room message)
(<- room (message-from message) 'tell
#:text "Go where?\n"))
(<- room (message-from message) 'tell
#:text "Go where?\n"))
@@
-175,10
+176,10
@@
(define occupant-names-all
(map
(lambda (occupant)
(define occupant-names-all
(map
(lambda (occupant)
- (
message-ref
- (<-wait room occupant 'visible-name
-
#:whos-looking player-id
)
-
'text
))
+ (
call-with-message (<-wait room occupant 'visible-name
+ #:whos-looking player-id)
+
(lambda* (_ #:key text
)
+
text)
))
(remove
(lambda (x) (equal? x player-id))
(hash-map->list (lambda (x _) x)
(remove
(lambda (x) (equal? x player-id))
(hash-map->list (lambda (x _) x)
@@
-204,14
+205,12
@@
#:text final-text))
#:text final-text))
-(define-mhandler (room-look-room room message)
+(define* (room-look-room room message
+ ;; Either send it to the #:to-id of the message,
+ ;; or to the sender of the message
+ #:key (to-id (message-from message)))
"Command: Player asks to look around the room"
"Command: Player asks to look around the room"
- (room-player-looks-around
- room
- ;; Either send it to the #:to-id of the message, or to the
- ;; sender of the message
- (message-ref message 'to-id
- (message-from message))))
+ (room-player-looks-around room to-id))
(define (room-find-thing-called room called-this)
"Find something called CALLED-THIS in the room, if any."
(define (room-find-thing-called room called-this)
"Find something called CALLED-THIS in the room, if any."
@@
-219,11
+218,10
@@
(lambda (return)
(for-each
(lambda (occupant)
(lambda (return)
(for-each
(lambda (occupant)
- (define goes-by
- (message-ref (<-wait room occupant 'goes-by)
- 'goes-by #f))
- (if (member called-this goes-by)
- (return occupant)))
+ (msg-receive (_ #:key goes-by)
+ (<-wait room occupant 'goes-by)
+ (if (member called-this goes-by)
+ (return occupant))))
(hash-map->list (lambda (key val) key)
(slot-ref room 'occupants)))
#f)))
(hash-map->list (lambda (key val) key)
(slot-ref room 'occupants)))
#f)))
@@
-231,7
+229,7
@@
(define %formless-desc
"You don't see anything special.")
(define %formless-desc
"You don't see anything special.")
-(define
-mhandler (room-look-at room message
direct-obj)
+(define
* (room-look-at room message #:key
direct-obj)
"Look at a specific object in the room."
(define matching-object
(room-find-thing-called room direct-obj))
"Look at a specific object in the room."
(define matching-object
(room-find-thing-called room direct-obj))
@@
-239,10
+237,10
@@
(cond
(matching-object
(let ((obj-desc
(cond
(matching-object
(let ((obj-desc
- (m
essage-ref
- (<-wait room matching-object 'get-desc
- #:whos-looking (message-from message))
-
'
val)))
+ (m
sg-receive (_ #:key val)
+
(<-wait room matching-object 'get-desc
+
#:whos-looking (message-from message))
+
val)))
(if obj-desc
(<- room (message-from message) 'tell
#:text (string-append obj-desc "\n"))
(if obj-desc
(<- room (message-from message) 'tell
#:text (string-append obj-desc "\n"))
@@
-266,36
+264,39
@@
#:text text))
who-to-tell))
#:text text))
who-to-tell))
-(define
-mhandler (room-act-tell-room room message tex
t)
+(define
* (room-act-tell-room room message #:key text exclude wai
t)
"Tell the room some messages."
"Tell the room some messages."
- (define exclude (message-ref message 'exclude #f))
- (define wait-delivery (message-ref message 'wait #f))
(room-tell-room room text
#:exclude exclude
(room-tell-room room text
#:exclude exclude
- #:wait wait
-delivery
))
+ #:wait wait))
-(define
-mhandler (room-cmd-say room message
phrase)
+(define
* (room-cmd-say room message #:key
phrase)
"Command: Say something to room participants."
(define player-name
"Command: Say something to room participants."
(define player-name
- (message-ref (<-wait room (message-from message)
- 'get-name) 'val))
+ (msg-receive (_ #:key val)
+ (<-wait room (message-from message)
+ 'get-name)
+ val))
(define message-to-send
(format #f "~a says: ~a\n" player-name phrase))
(room-tell-room room message-to-send))
(define message-to-send
(format #f "~a says: ~a\n" player-name phrase))
(room-tell-room room message-to-send))
-(define
-mhandler (room-cmd-emote room message
phrase)
+(define
* (room-cmd-emote room message #:key
phrase)
"Command: Say something to room participants."
(define player-name
"Command: Say something to room participants."
(define player-name
- (message-ref (<-wait room (message-from message)
- 'get-name) 'val))
+ (msg-receive (_ #:key val)
+ (<-wait room (message-from message)
+ 'get-name)
+ val))
(define message-to-send
(format #f "* ~a ~a\n" player-name phrase))
(room-tell-room room message-to-send))
(define message-to-send
(format #f "* ~a ~a\n" player-name phrase))
(room-tell-room room message-to-send))
-(define
-mhandler (room-announce-entrance room message
who-entered)
+(define
* (room-announce-entrance room message #:key
who-entered)
(define player-name
(define player-name
- (message-ref (<-wait room who-entered 'get-name)
- 'val))
+ (msg-receive (_ #:key val)
+ (<-wait room who-entered 'get-name)
+ val))
(define message-to-send
(format #f "~a enters the room.\n" player-name))
(room-tell-room room message-to-send
(define message-to-send
(format #f "~a enters the room.\n" player-name))
(room-tell-room room message-to-send