anchor.diff:         (let ((door (find-door ch target "open")))
            (when door
              (perform-door-close ch door)))))))
  +
  +(defcommand (ch "unlock") (:standing)
  +  (send-to-char ch "Unlock what?~%"))
  +
  +(defcommand (ch "unlock" target) (:standing)
  +  (let ((objs (resolve-alias ch target
  +                             (append (carrying-of ch)
  +                                     (contents-of (in-room-of ch))))))
  +    (cond
  +      ((cdr objs)
  +       (send-to-char ch "You can only unlock one thing at a time.~%"))
  +      (objs
  +       (perform-object-unlock ch (first objs)))
  +      (t
  +       (let ((door (find-door ch target "unlock")))
  +         (when door
  +           (perform-door-unlock ch door)))))))
  
positive.code:          (wait-state ch (if (logtest (exit-info-of exit) +ex-heavy-door+)
                              30 15)))))))
  
  (defcommand (ch "open") (:standing)
    (send-to-char ch "Open what?~%"))
  
  
negative.code:               (is-obj-kind obj +item-scuba-mask+)
                (is-obj-kind obj +item-window+))))
  
  (defun perform-object-unlock (ch obj)
    (cond
      ((not (obj-is-openable obj))
       (send-to-char ch "You can't unlock that!~%"))
      ((not (logtest (aref (value-of obj) 1) +cont-locked+))
       (send-to-char ch "But it's currently unlocked!~%"))
      (t
       (setf (aref (value-of obj) 1)
             (logandc2 (aref (value-of obj) 1) +cont-locked+))
       (act ch :item obj
            :subject-emit "*Click*"
            :place-emit "$n opens $p.")
       (when (is-vehicle obj)
         (let ((other-room (real-room (room-number obj))))
           (when (people-of other-room)
             (send-to-room other-room "The door of the ~a is unlocked from the outside.~%"
                           (first-word (aliases-of obj))))))
       (wait-state ch 30))))
  
  (defun perform-object-open (ch obj)
    (cond
      ((not (obj-is-openable obj))
  