Understand every word of the printed name?

If I can speak for dootdoot, the issue is what happens if you change the printed name in the course of play. So the very same I7 thing might at one point have the print name “big scary book of terror” and at another point “sphere of unimaginable chaos” and at another “tome of cute fluffy bunnies,” and we want all the parts of the printed name to be understood no matter what it is.

Anyway, dootdoot, I’m pretty sure the answer is: No. I asked a similar question about dynamically understanding printed names here back in the 6G60 days and was told that it was hard, at least in I7.

In 6L02 things are better at least in that you can actually do “Understand the printed name property as referring to a thing” (you couldn’t do this in 6G60 because of the text/indexed text distinction; the printed name was a text, but only indexed texts could be used in command lines). But AFAICT there is no easy way to winkle out individual words of a property and have them understood by the parser without some monster rule. Every attempt I had to do something like this involved using an After reading a command rule kind of like yours, and I don’t think I ever did any very sophisticated disambiguation.

One possible approach would be to create a bunch of properties “first printed word,” “second printed word,” etc., change the routines that set the printed name to set these properties instead (and setting the printed name to their concatenation), and then writing “Understand the first printed word property as describing a thing” etc. This would require you to restrict printed names to a set word length but that might not be such a bad thing.

I also don’t know how writing a bunch of understand statements referring to text properties would affect performance. My guess is that these understand statements aren’t super-cheap, but as I’ve said before I really don’t understand performance and the internals.

PS you might be amused by this code; now a simple “understand the printed name property as describing a thing” would take care of that, though it was unnecessarily convoluted even so.