replace DoOpen { local tempformat, light_check, skip_ahead if not CheckReach(object): return false if object is not openable { VMessage(&DoOpen, 1) ! "You can't open that." return } elseif object is open VMessage(&DoOpen, 2) ! "It's already open." elseif object is locked VMessage(&DoOpen, 3) ! "It's locked." else { object is open object is moved local i if not Contains(object,player) and object is not transparent { for i in object { if i is not hidden break } } if i { if not light_source light_check = FindLight(location) ! in case the light source ! has been revealed } if not object.after { if not i or object is quiet { VMessage(&DoOpen, 4) ! "Opened." } else { local x list_count = 0 for x in object { if x is not hidden list_count++ } parser_data[PARSER_STATUS] &= ~PRONOUNS_SET RLibMessage(&DoOpen,1) ! "opening the <blank> reveals" ListObjects(object) object = -1 ! so the last pronoun assigned stays skip_ahead = true } } else skip_ahead = true ! object.after has to list the contents ! if it exists if i and object is not quiet and not skip_ahead { print "" parser_data[PARSER_STATUS] &= ~PRONOUNS_SET tempformat = FORMAT FORMAT = FORMAT | NOINDENT_F list_nest = 0 WhatsIn(object) FORMAT = tempformat object = -1 ! so the last pronoun assigned stays } } if light_check { Perform(&DoLookAround) } return true }