I started to write a new IF story this evening. I am using TADS 3 - v. 3.1.3, Win 10, Workbench Release HT-24, and adv3Lite v. 1.5.
I mention a large house in my startroom description. The house has not been developed at this point, only a driveway and a stable across the street.
Out of curiosity I issued the command x house in the story to see what the response would be. it returned:
Generally speaking, there is no need to refer to your body parts individually in interactive fiction. WEAR SHOES ON FEET will not necessarily be implemented, for instance; WEAR SHOES is enough. And unless you get some hint to the contrary, you probably cannot OPEN DOOR WITH FOOT or PUT THE SAPPHIRE RING IN MY MOUTH.
That is a quite inappropriate response.
As as test, I opened the source for a different story using the system as described above issued the command “x house” and got the same result. There is no mention of any house in the second TADS 3 based story.
I am going to define the house but I expect I will get the response above whenever the house is not in scope.
Is this a bug in adv3Lite? I need to see what happens using the standard library.
Thank you, fos1
After doing some experimenting, I believe the game is just auto-correcting what it perceives as a typo. For instance, X HANND will redirect to X HAND.
House is a pretty common word, especially if, as in this case a house is one of the location rooms. Confusing “nose” for “house” is certainly unexpected behavior.
After compiling a similar source with adv3 library, the game returned the following response. Which is certainly a better response. I will definitely have to determine a work around if I continue with adv3Lite.
This is the starting room.
The word “house” is not necessary in this story.
(If this was an accidental misspelling, you can correct it by typing OOPS followed by the corrected word now. Any time the story points out an unknown word, you can correct a misspelling using OOPS as your next command.)
Original Adv3 doesn’t have spelling corrector built in, but is available as an extension, see SpellingCorrector by Steve Breslin on IF archive (http://www.ifarchive.org/if-archive/programming/tads3/library/contributions/SpellingCorrector.t). In adv3lite spelling corrector is integrated, see spelling.t library file. You can disable the corrector for sure, but please note that in complete game with all the objects programmed with sufficient amount of synonyms in vocabulary for each object the spelling corrector will be far less prone to such evident mistakes.
I believe it doesn’t matter whatever the object is in scope, in fact you can ask NPC about object not in scope, i thing the corrector acts on whole game vocabulary.
That is very good information. I will see what happens after the house object is added to the story line.
As an old guy, I’m not sure spell correction doesn’t detract from the retro nature of IF. I may dig through the underlying code and see if I can disable that feature. The thought process in the included thread link is most enlightening.
PS. Adding the house object solved the problem. Even when the house is not in scope, an “x house” command behaves as you would expect.