Newsgroups: rec.arts.int-fiction
Path: gmd.de!nntp.gmd.de!Germany.EU.net!EU.net!uunet!thales.nmia.com!greg
From: greg@thales.nmia.com (Gregory Riggs)
Subject: Problems (bug?) with Inform and Parser.h
Message-ID: <CwFo5K.Gu1@thales.nmia.com>
Organization: New Mexico Internet Access
Date: Tue, 20 Sep 1994 14:56:08 GMT
X-Newsreader: TIN [version 1.2 PL2]
Lines: 72


First off, I just want to say that I think Inform is just incredible!!
After playing my first Infocom game about five years ago, I always
wanted to write my own, but I didn't have the programming skills,
knowledge, or patience to do it.  But now with Inform, it will be 
easy. I want to thank Graham Nelson for writing Inform and making
it availble to the public.    

Now on to the topic of this post...

I found what could be considered a bug in the example Toyshop game.
It is possible to get the spirit level out of the toothed bag
without using the marzipan cone.

<<< Begin Snippet from Toyshop >>> 
>i
You are carrying:
  a toothed bag (which is open)
    a spirit level
  your satchel (which is open)

>get spirit level
The bag defiantly bites itself shut on your hand until you desist.

>empty bag
spirit level: Dropped.

>get spirit level
Taken.
<<< End Snippet from Toyshop >>>

In particular, the problem seems to be that the fake action 'LetGo' 
does not trap the 'Empty' action, and I think this is more of 
a problem with the parser than with toyshop. 
 
Another problem I found with the parser library is that it does not
always execute the begin property for an action, if multiple actions
are involved.  Below is an example from a short silly demo game I 
wrote.  It shows that the 'Eat' action is not executed, if the item 
is first automaticlly taken.
 
<<< Begin snippet from my own demo game source code>>>
Nearby head_cheese "head-cheese"
  with name "head" "cheese" "head-cheese" "loaf",
  article "some", 
  description
"A jellied loaf made from edible parts of the head, feet, tongue, \
 and heart of a pig.",
 before
 [; Eat: "No way! Absolutely Not!  Yuck-Gross!!!";
 ],
 has edible; 
<<< End snippet from my own demo game source code>>>

<<< Begin snippet from my own demo game >>>
>i
You are carrying:
  some head-cheese

>eat head-cheese
No way! Absolutely Not!  Yuck-Gross!!!

>drop head-cheese
Dropped.

>eat head-cheese
(first taking the head-cheese)
You eat the head-cheese.  Not bad.
<<< End snippet from my own demo game >>>

- Gregory Riggs
  greg@thales.nmia.com
