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 17 April 2013. This web site has not been fully supported since April 2008. Information may be out of date. This page was originally managed by Roger Firth.