This is long, so I’ll wrap it in a spoiler. It’s not really spoilery, though.
[spoiler][code]A stone is a kind of thing.
There is a room called the Stone garden.
Color is a kind of value. The colors are white, black, red, yellow, green, and blue.
Size is a kind of value. The sizes are small, medium, and large.
A stone has a color. A stone has a size.
Understand the color property as describing a stone.
Understand the size property as describing a stone.
There is a large blue stone in the garden.
There is a small yellow stone in the garden.
There is a medium red stone in the garden.
There is a large white stone in the garden.
Table of Stone types
Description Name
Description of stones “Quartz” [large white]
– “Pyrite” [small yellow]
– “Ruby” [medium red]
When play begins:
Entable large white stones;
Entable small yellow stones;
Entable medium red stones.
To entable (D - a description of stones):
Showme D;
Repeat through the table of stone types:
If there is no description entry:
Now the description entry is D;
Break.
To say type of (S - a stone):
Repeat through the table of stone types:
If S matches the description entry:
Say “After a thorough examination, you identify this stone as [Name entry].”;
Stop;
Say “After a through examination, you can only tell that this stone is [color of S] in color and [size of S] in size.”
After examining a stone:
Say type of the noun.[/code][/spoiler]
If I try to EXAMINE WHITE STONE, I get the following:
[code]You see nothing special about the stone.
Glulxe fatal error: Call to non-function (1)[/code]
Inform doesn’t show a runtime error in the errors tab, so I’m guessing it’s too serious for Inform to know what’s going on.
When I tried to run this in Gargoyle, I got a rather different error:
[code]You see nothing special about the stone.
*** fatal error: Local variable wasn’t 4 bytes wide ***[/code]
My guess is that we’re not supposed to have descriptions in our tables in the first place. If that’s the case, it probably shouldn’t allow me to create a table column with that kind. I guess I’ll just have to use a phrase stone -> truth state instead (but that’s messier). Before I report this, does anyone have any insight?