X-Git-Url: https://jxself.org/git/?p=mudsync.git;a=blobdiff_plain;f=mudsync%2Fplayer.scm;h=e3ae2ba8ffcee53cea6cef848d72216e5a74fbc4;hp=844aaf96f031fbf4112a05b602a3bd5e0f4e5813;hb=d45f1aca89f7f664137c16c0b6a3b39dc7445ffd;hpb=6cff5b0062ef928204295ab4327bf2d417070421 diff --git a/mudsync/player.scm b/mudsync/player.scm index 844aaf9..e3ae2ba 100644 --- a/mudsync/player.scm +++ b/mudsync/player.scm @@ -21,7 +21,7 @@ #:use-module (mudsync gameobj) #:use-module (mudsync game-master) #:use-module (mudsync parser) - #:use-module (8sync systems actors) + #:use-module (8sync actors) #:use-module (8sync agenda) #:use-module (ice-9 control) #:use-module (ice-9 format) @@ -35,21 +35,6 @@ ;;; Players ;;; ======= -(define player-actions - (build-actions - (init (wrap-apply player-init)) - (handle-input (wrap-apply player-handle-input)) - (tell (wrap-apply player-tell)) - (disconnect-self-destruct (wrap-apply player-disconnect-self-destruct)) - (cmd-inventory (wrap-apply player-cmd-inventory)))) - -(define player-actions* - (append player-actions - gameobj-actions)) - -(define player-dispatcher - (simple-dispatcher player-actions*)) - (define player-self-commands (list (empty-command "inventory" 'cmd-inventory) @@ -64,9 +49,14 @@ (self-commands #:init-value player-self-commands) - (message-handler - #:init-value - (wrap-apply player-dispatcher))) + (actions #:allocation #:each-subclass + #:init-value + (build-actions + (init player-init) + (handle-input player-handle-input) + (tell player-tell) + (disconnect-self-destruct player-disconnect-self-destruct) + (cmd-inventory player-cmd-inventory)))) ;;; player message handlers @@ -113,9 +103,7 @@ (define inv-names (map (lambda (inv-item) - (msg-receive (_ #:key val) - (<-wait player inv-item 'get-name) - val)) + (msg-val (<-wait player inv-item 'get-name))) (gameobj-occupants player))) (define text-to-show (if (eq? inv-names '())