X-Git-Url: https://jxself.org/git/?p=mudsync.git;a=blobdiff_plain;f=mudsync%2Fgameobj.scm;h=e4146931bc7f7b2b830b7369ac58bae162f953be;hp=8efe565d9b6e84752740df5f5a28a475044ae0a1;hb=106536778bbd8ad0cc850cb3ef7dcc5e2499eee2;hpb=754bd427883ab189433fad90293e05d9aced2f70 diff --git a/mudsync/gameobj.scm b/mudsync/gameobj.scm index 8efe565..e414693 100644 --- a/mudsync/gameobj.scm +++ b/mudsync/gameobj.scm @@ -93,7 +93,7 @@ (actions #:allocation #:each-subclass ;;; Actions supported by all gameobj - #:init-value + #:init-thunk (build-actions (init gameobj-act-init) ;; Commands for co-occupants @@ -140,7 +140,7 @@ (define (run-replacement actor replaces replace-steps) (when replaces - (msg-receive (_ #:key occupants) + (mbody-receive (_ #:key occupants) (<-wait replaces 'assist-replace) (for-each (lambda (replace-step) @@ -225,7 +225,7 @@ Assists in its replacement of occupants if necessary and nothing else." ;; A list of addresses... since our address object is (annoyingly) ;; currently a simple cons cell... ((exclude-1 ... exclude-rest) - (pk 'failboat (member occupant (pk 'exclude-lst exclude)))) + (member occupant exclude)) ;; Must be an individual address! (_ (equal? occupant exclude)))) (if exclude-it? @@ -314,7 +314,7 @@ By default, this is whether or not the generally-visible flag is set." ;; Boom! (self-destruct gameobj)) -(define (gameobj-act-self-destruct gameobj message) +(define* (gameobj-act-self-destruct gameobj message #:key why) "Action routine for self destruction" (gameobj-self-destruct gameobj)) @@ -348,8 +348,8 @@ By default, this is whether or not the generally-visible flag is set." (match special-symbol ;; if it's a symbol, look it up dynamically ((? symbol? _) - (msg-val (<-wait (slot-ref gameobj 'gm) 'lookup-special - #:symbol special-symbol))) + (mbody-val (<-wait (slot-ref gameobj 'gm) 'lookup-special + #:symbol special-symbol))) ;; if it's false, return nothing (#f #f) ;; otherwise it's probably an address, return it as-is