Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000670Core InformKinds and type checkingpublic2011-06-01 07:372014-05-07 07:33
Assigned Tograham 
Platformx86OSWindowsOS Version7
Product Version6G60 
Target VersionFixed in Version6L02 
Summary0000670: testing a relation with the wrong kinds gives an unhelpful error message
DescriptionIf you set up a relation that specifies a specific kind, and then later the game attempts to test that relation using something that is not of the proper kind, Inform spits out a singularly unhelpful runtime error message:

[** Programming error: tried to read (something) **]

If the game tries to establish or remove the relation, the runtime error is slightly more forthcoming:

[** Programming error: (object number 275069) has no property p56_blorbing to write **]

...but still, I would argue, essentially opaque to an inexperienced programmer. No explanatory message pops up in the opposite IDE window, as happens with most other runtime errors.
Minimal Source Text To Reproduce
Testing is a room.

An umbrella is here. A pear is here.

Blorbing relates various devices to one thing. The verb to be blorbed into implies the blorbing relation.

Instead of inserting something into something:
	[first statement]
	if the noun is blorbed into the second noun, say "Blorbed!";
	[second statement]
	otherwise now the noun is blorbed into the second noun.

Test me with "put umbrella in pear".
Additional InformationNote, first of all, that the error only happens if you relate *various* devices to one thing. If you change the relation to "one device to one thing", the error messages are not triggered. In particular, this means that the second statement goes ahead and establishes the blorbing relation with the pear, even though it should not be able to.

I'm clear on why the second statement ("now the noun is blorbed into the second noun") causes an error (and it should definitely cause an error, whether the relation is varios-to-one or one-to-one); I just think it needs a better-worded error message, and ideally a help screen like what other runtime errors get.

However, for the first statement ("if the noun is blorbed into the second noun"), it would be nice if the condition just quietly resolved to false. We know that an umbrella can never be blorbed into a pear, because an umbrella is not a device. Thus the answer to the question, "Is the umbrella blorbed into the pear?" should not be "ERROR," but rather, "No." Since the game does, in fact, correctly treat the condition as false, it's not clear to me why the error message is necessary at all. In any case, if it is necessary, then it also should be worded more clearly.
TagsNo tags attached.
Effect(cosmetic) Error message is badly worded
Attached Files

- Relationships

-  Notes
graham (administrator)
2014-02-02 06:07

This is now checked at run-time; I think the small loss of performance is worth it. It is now safe to read the relation for any kind of object, but the result is "false" if either kind is wrong. It causes a run-time problem to try to set or unset the relation for the wrong kinds.

- Issue History
Date Modified Username Field Change
2011-06-01 07:37 mikegentry New Issue
2011-06-01 20:47 jmcgrew Status new => acknowledged
2011-06-03 15:15 EmacsUser Status acknowledged => confirmed
2014-02-02 06:07 graham Note Added: 0002441
2014-02-02 06:07 graham Status confirmed => resolved
2014-02-02 06:07 graham Resolution open => fixed
2014-02-02 06:07 graham Assigned To => graham
2014-05-07 07:32 jmcgrew Fixed in Version => 6L02
2014-05-07 07:33 jmcgrew Status resolved => closed

Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker