Fix the self destruct on gameobj objects.
[mudsync.git] / mudsync / gameobj.scm
index 8efe565d9b6e84752740df5f5a28a475044ae0a1..11de8d3cce86604c7ba3ca4dacf7394745a23bba 100644 (file)
 
 (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