the-infocom-files/trinity

I-JAWS should probably use EXIT-LEM and EXIT-MAGPIE

Opened this issue · 1 comments

This doesn't cause any visible bug, but is just an inconsistency. If you put the cage in the venus flytrap, the I-JAWS routine will check if the lemming or magpie are inside it:

		<COND (<T? .X>
		       <COND (<EQUAL? .X ,CAGE>
			      <COND (<IN? ,LEM .X>
				     <REMOVE ,LEM>)
				    (<IN? ,MAGPIE .X>
				     <REMOVE ,MAGPIE>)>)>
		       <MOVE .X ,NBOG>)>

This is the only obvious case that I can see where the game simply removes the lemming or the magpie. In all other cases I've seen, it calls EXIT-LEM and EXIT-MAGPIE instead, which will remove the object and disable the associated timer. See for instance the I-EXPLODE routine for an example of both:

		<COND (<OR <IN? ,CAGE ,IN-COTTAGE>
			   <IN? <LOC ,CAGE> ,IN-COTTAGE>>
		       <COND (<IN? ,MAGPIE ,CAGE>
			      <EXIT-MAGPIE>
			      <MOVE ,DMAGPIE ,CAGE>)>
		       <COND (<IN? ,LEM ,CAGE>
			      <EXIT-LEM>
			      <MOVE ,DLEM ,CAGE>)>)>

The venus flytrap doesn't leave any dead magpie or lemming behind, but that's probably by design: They're completely digested.

Similarly, if you put the skink in the sink (see SINK-F) it should probably call EXIT-SKINK. Again, this causes no visible bug so it's more of a cleanup thing. Not that you're likely to still have the skink at this point in the game...