distinguish container-sub-commands and container-dom-commands
[mudsync.git] / mudsync / player.scm
index bbd14030dc416a90d92478cbf83e9feda6c6fbc1..78d9a01574efbed2f113f8e9f18fbd1d1e53cf63 100644 (file)
   (define text-to-show
     (if (eq? inv-names '())
         "You aren't carrying anything.\n"
-        (apply string-append
-               "You are carrying:\n"
-               (map (lambda (item-name)
-                      (string-append "  * " item-name "\n"))
-                    inv-names))))
+        `((p "You are carrying:")
+          (ul ,(map (lambda (item-name)
+                      `(li ,item-name))
+                    inv-names)))))
   (<- (actor-id player) 'tell #:text text-to-show))
 
 (define (player-cmd-help player message)
                  #:player-id (actor-id player)))))
 
   ;; Ask the room for its commands
-  (define room-commands
+  (define room-dom-commands
     ;; TODO: Map room id and sort
     (mbody-receive (_ #:key commands)
-        (<-wait player-loc 'get-container-commands
+        (<-wait player-loc 'get-container-dom-commands
+                #:verb verb)
+      commands))
+
+  (define room-sub-commands
+    ;; TODO: Map room id and sort
+    (mbody-receive (_ #:key commands)
+        (<-wait player-loc 'get-container-sub-commands
                 #:verb verb)
       commands))
 
   (define co-occupants
     (remove
      (lambda (x) (equal? x (actor-id player)))
-     (mbody-receive (_ #:key occupants)
-         (<-wait player-loc 'get-occupants)
-       occupants)))
+     (mbody-val (<-wait player-loc 'get-occupants))))
 
   ;; @@: There's a race condition here if someone leaves the room
   ;;   during this, heh...
 
   ;; Now return a big ol sorted list of ((actor-id . command))
   (append
-   (sort-commands-append-actor room-commands
+   (sort-commands-append-actor room-dom-commands
                                player-loc '()) ; room doesn't go by anything
    (sort-commands-multi-actors co-occupant-commands)
    (sort-commands-append-actor our-commands
                                (actor-id player) '()) ; nor does player
-   (sort-commands-multi-actors inv-item-commands)))
+   (sort-commands-multi-actors inv-item-commands)
+   (sort-commands-append-actor room-sub-commands
+                               player-loc '())))
 
 (define (sort-commands-append-actor commands actor-id goes-by)
   (sort-commands-multi-actors