fix prop stuff
authorChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 30 Jan 2017 05:36:56 +0000 (23:36 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Mon, 30 Jan 2017 05:36:56 +0000 (23:36 -0600)
mudsync/gameobj.scm

index ee788ea300433aeaf466f52361de63c149b14e61..3957e0a4d40303898888af5828632f9e7f0525cb 100644 (file)
@@ -241,6 +241,7 @@ Note that this doesn't do any special dyn-ref of the location."
          (replace-step actor occupants))
        replace-steps))))
 
+(define %nothing (cons '*the* '*nothing*))
 (define (gameobj-setup-props gameobj)
   (define class (class-of gameobj))
   (define props (slot-ref gameobj 'props))
@@ -250,7 +251,8 @@ Note that this doesn't do any special dyn-ref of the location."
   ;; and use that to build up the table
   (hash-for-each
    (lambda (key value)
-     (when (not (hashq-ref props key value)) ; don't override init'ed instance values
+     (when (eq? (hashq-ref props key %nothing) ; don't override init'ed instance values
+                %nothing)
        (hashq-set! props key value)))
    (rmeta-slot-cache (class-slot-ref class 'initial-props))))
 
@@ -269,7 +271,7 @@ Note that this doesn't do any special dyn-ref of the location."
   (hashq-set! (slot-ref gameobj 'props) key val))
 
 (define* (gameobj-act-get-prop actor message key #:optional dflt)
-  (gameobj-get-prop actor key dflt))
+  (<-reply message (gameobj-get-prop actor key dflt)))
 
 (define (gameobj-goes-by gameobj)
   "Find the name we go by.  Defaults to #:name if nothing else provided."