@prog bx.muf 1 9999 d 1 i : say me @ swap notify ; : controls? over wizard? if pop pop 1 exit then over over owner dbcmp if pop pop 1 exit then dup exit? if dup getlink not if pop pop 1 exit then then pop pop 0 ; : may-examine? over over controls? if pop pop 1 exit then dup "v" flag? if pop pop 1 exit then dup player? if pop pop 0 exit then pop pop 0 ; : garbage? dup ok? if pop 0 exit then int dup 0 >= swap db_top < and ; : print-owner dup player? if name " is a player." strcat say exit then dup garbage? if pop " is garbage." say exit then "Owner: " swap owner name strcat say ; : can-link-to? over over controls? over "l" flag? or over dup player? not swap "a" flag? and or swap pop swap pop ; : unparse-object dup #-1 dbcmp if pop "*NOTHING*" exit then dup #-3 dbcmp if pop "*HOME*" exit then me @ over can-link-to? over dup player? not swap "o" flag? and or me @ "s" flag? not and if dup name "(#" strcat over int intostr strcat over flagstr strcat me @ "a" flag? if over owner name " " swap strcat strcat then ")" strcat swap pop else name then ; : make-header dup unparse-object over room? if " Owner: " strcat over owner name strcat " Parent: " strcat over location unparse-object strcat exit then over thing? if " Owner: " strcat over owner name strcat " Value: " strcat over pennies intostr strcat exit then over player? if " Dollars: " strcat over pennies intostr strcat exit then over dup exit? over program? or swap daemon? or if " Owner: " strcat over owner name strcat exit then ; : strcat-say-if dup if strcat say else pop pop then ; : maybe-print-location dup location if dup location me @ over controls? swap me @ swap can-link-to? or if "Location: " over location unparse-object strcat say then then ; : print-type-specific dup room? if dup getlink dup if "Dropped objects go to: " swap unparse-object strcat say else pop then exit then dup thing? over player? or if "Home: " over getlink unparse-object strcat say maybe-print-location then dup exit? if dup location if "Source: " over location unparse-object strcat say then dup getlinks 1 -1 for pop dup if "Destination: " over unparse-object strcat say then pop loop then dup program? if maybe-print-location then dup daemon? if "Next: #" over int intostr strcat say then ; : main match dup #-1 dbcmp if pop "I don't see that here." say exit then dup #-2 dbcmp if pop "I don't know which one you mean!" say exit then dup #-3 dbcmp if pop "Can't examine `home'." say exit then me @ over may-examine? not if print-owner exit then make-header say dup unparse_flags say dup desc if dup desc say then "Key: " over unparse_lock strcat say "Fail: " over fail strcat-say-if "Succ: " over succ strcat-say-if "Drop: " over drop strcat-say-if "Ofail: " over ofail strcat-say-if "Osucc: " over osucc strcat-say-if "Odrop: " over odrop strcat-say-if print-type-specific ; . c q