X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=iflib.lisp;h=0154b718e83198fb3af6b7c2042da93f41f87c8e;hb=2624b2069897898a92d247cab9781989df240110;hp=dad57f5465c3eeb760326a8cb8d63145820563df;hpb=447a18ccfc600c416a481266ecac28cd2ecd720f;p=lifp.git diff --git a/iflib.lisp b/iflib.lisp index dad57f5..0154b71 100644 --- a/iflib.lisp +++ b/iflib.lisp @@ -120,7 +120,8 @@ (look (look self))) (has :~light)) -(ifclass door (predoor scenery) (destination object) (has :door :closed)) +(ifclass door (predoor scenery) (destination object) + (has :door :closed :openable)) @@ -161,7 +162,7 @@ (defun transparent (obj) "Whether the object is transparent" - (or (has obj :container :open) + (or (and (has obj :container) (hasnt obj :closed)) (has obj :supporter) (has obj :transparent) (eql obj *player*))) @@ -206,7 +207,7 @@ (seep1 actor obj))) (defun passable (obj) - (or (has obj :container :open) + (or (and (has obj :container) (hasnt obj :closed)) (has obj :supporter) (eql obj *player*))) @@ -327,7 +328,7 @@ (defun print-inside (obj stream) "Return the string containing the status of contents of the object" (when (has obj :container) - (if (or (has obj :open) (has obj :transparent)) + (if (or (hasnt obj :closed) (has obj :transparent)) (if (children obj) (progn (princ " (containing " stream) (princ (list-contents obj) stream)