the-infocom-files / deadline

Deadline
4 stars 3 forks source link

"SEARCH GROUND UNDER BALCONY" doesn't work as intended #41

Open eriktorbjorn opened 5 years ago

eriktorbjorn commented 5 years ago

There is a special case in GROUND-F for "SEARCH GROUND UNDER BALCONY" when among the roses:

<ROUTINE GROUND-F ()
     <COND (<AND <VERB? BRUSH>
             <IN? ,FRAGMENT ,PLAYER>
             <NOT ,FRAGMENT-CLEANED>>
        <PERFORM ,V?BRUSH ,FRAGMENT>
        <RTRUE>)
           (<VERB? EXAMINE SEARCH SEARCH-AROUND>
        <COND (<==? ,HERE ,ROURKE-ROOM>
               <TELL "The floor is hardwood." CR>)
              (<==? ,HERE ,FOYER>
               <TELL "The floor is marble." CR>)
              (<==? ,HERE ,IN-ROSES>
               <COND (<NOT <FSET? ,HOLE ,INVISIBLE>>
                  <PERFORM ,V?SEARCH-AROUND ,HOLE>
                  <RTRUE>)
                 (<AND <VERB? SEARCH-GROUND-UNDER>
                   <==? ,PRSI ,BALCONY>>
                  <TELL
"The balcony above is very large. Searching the entire area beneath it
would take a great deal of time." CR>)
                 (T
                  <TELL
"There are rows upon rows of roses here. It would take you the best part of
a day to search the ground in great detail." CR>)>)
              (T <TELL "You don't find anything new there." CR>)>)>>

But the SEARCH-GROUND-UNDER case can never be true, because it only gets far enough to test it if the verb is one of EXAMINE, SEARCH or SEARCH-AROUND.