T3: Another Library Bug?

Add this code beneath the me object in the starter game:

+ myEars: Component, RestrictedContainer 'my your ear/ears' 'your ears' "Ordinarily you don<./s>t pay much attention to your ears. They<./s>re firmly (and not very remarkably) attached to the sides of your head. " isPlural = true validContents = [axe]

The command ‘remove ears’ produces a run-time error. The error message is “wrong number of arguments”.

The error is in the announceDefaultObject method of the modify TIAction block in en_us.t – and that makes no sense, because the Remove action (as distinct from the TakeFrom action) is a TAction, not a TIAction. Possibly the parser is trying to interpret ‘remove ears’ as an incomplete TakeFromAction. (‘remove’ seems to be correctly interpreted when the object is Wearable, however.)

Suggestions on how to fix this would be appreciated!

I couldn’t reproduce this error when I tried it right now. The output I got was:

Welcome to the TADS 3 Starter Game!


Entryway

This large, formal entryway is slightly intimidating: the walls are lined with somber portraits of gray-haired men from decades past; a medieval suit of armor, posed with a battle axe at the ready, towers over a single straight-backed wooden chair. The front door leads back outside to the south. A hallway leads north. 

>remove ears
(from you)
You can’t have those; they’re part of you. 

>

I assume your ears object was terminated with a semi-colon (otherwise you’d have got a compiler error).

I wonder if you’ve got any library or extension files left over from a previous version of TADS 3 in your installation? Otherwise, I’m not sure what to suggest. Did you make any other changes to the standard starter game besides adding the ears object?

– Eric

No. It turns out this is the same error as the library bug I posted about a few days ago. This was another call to getAnnouncementDistinguisher() with no list argument. Did you hack en_us.t in the 3.1 release to get rid of both calls to this method? There are two. Now that I’ve fixed them both, the error is gone.

As Gilda Radner used to say on Saturday Night Live, “Never mind.”