Inform - Support - Patches

About Patches  

Compiler  
Library  

DM4 Errata  

Issue L61018

Inventory with a container
Submitted by: Francesco Cordella     Appeared in: Library 6/10 or before     Fixed in: -
Problem

In some Inform games there is a problem with inventory, for example:

  >inventory
  You are carrying a pen, a note-pad and a bag,
  inside which there are a sheet and a match.

Well, if you drop the bag and then you take it again, you'll have:

  >inventory
  You are carrying bag, inside which there are
  a sheet and a match, a pen, a note-pad.

But, the pen and the notepad are not in the bag!

Solution

To solve this I changed VerbLibm.h: in the [ WriteAfterEntry routine, I removed one of the last lines (if (c_style & TERSE_BIT ~= 0) and I added: print ")" to the line above, with this result:

  (@pull listing_size; @pull listing_together; @pull lt_value; print ")";)

Then, in English.h, ListMiscellany phrase n.22 I added a parenthesis before the word "inside", so it results in:

  22: print " (inside ";
Update (by Daniel Lackey)

It seems there's still a bug when displaying tall inventories. For example:

  You are carrying:
    your bag
      your gun
      your cellular phone
  )  your clothes (being worn)

I cured this by changing the last line of the replaced WriteAfterEntry -- originally just print ")"; -- to:

  if (inventory_style==FULLINV_BIT + ENGLISH_BIT + RECURSE_BIT) print ")";

Probably not the most elegant solution, but it seems to work.

Update (by Cedric Knight)

The fix causes a close quote to appear in other, unintended places, and is very similar to the easier measure of setting TERSE_BIT in inventory style. If this is worrying testers, then simply add TERSE_BIT to the default inventory style, and replace InvWideSub. IMHO the inventory listing is not ambiguous because of placement of commas and use of 'is' or 'are'.


Last updated 2 May 2008. The librarian in charge of this page is Roger Firth. Please email any comments, suggestions or corrections to roger@firthworks.com.