+;; Kind of a useful utility, maybe?
+(define (simple-slot-getter slot)
+ (lambda (actor message)
+ (reply-message actor message
+ #:val (slot-ref actor slot))))
+
+
+;; @@: This could be kind of a messy way of doing gameobj-init
+;; stuff. If only we had generic methods :(
+(define-mhandler (gameobj-init actor message)
+ "Your most basic game object init procedure. Does nothing."
+ #f)
+
+(define (gameobj-goes-by gameobj)
+ "Find the name we go by. Defaults to #:name if nothing else provided."
+ (cond ((slot-ref gameobj 'goes-by) =>
+ identity)
+ ((slot-ref gameobj 'name) =>
+ (lambda (name)
+ (list name)))
+ (else '())))
+
+(define (val-or-run val-or-proc)
+ "Evaluate if a procedure, or just return otherwise"
+ (if (procedure? val-or-proc)
+ (val-or-proc)
+ val-or-proc))
+
+(define (filter-commands commands verb)
+ (filter
+ (lambda (cmd)
+ (equal? (command-verbs cmd)
+ verb))
+ commands))
+