Possessives in TADS 3

I’m not quite sure what it is you’re looking for here in TADS 3 that it doesn’t already do. Consider the following test game:

me: Actor
    location = startRoom  
;

startRoom: Room 'Test Room'
;

+ redBall: Thing 'big red ball*balls' 'big red ball'
     "It's big and red. "
;

+ harry: Person 'fat round harry/man' 'Harry'
    isHim = true
    isProperName = true
;

++ blueBall: Thing 'small blue ball*balls' 'small blue ball'
    "It's small and blue. "
;

++ AskForTopic @blueBall
    topicResponse()
    {
        blueBall.moveInto(me);
        "Harry hands you the blue ball. ";
         
    }
;

++ GiveTopic @redBall
    topicResponse()
    {
        redBall.moveInto(getActor);
        "You give Harry the red ball. ";
    }
;

From this you can get the following transcript:

Test Room

You see a big red ball here. 

Harry is standing here. 

>take red
Taken. 

>x my ball
It's big and red. 

>x harry's ball
It's small and blue. 

>x man's ball
It's small and blue. 

>x fat man's ball
It's small and blue. 

>ask harry for ball
Harry hands you the blue ball. 

>give red ball to harry
You give Harry the red ball. 

>x my ball
It's small and blue. 

>x harry's ball
It's big and red.

So far as I can see this is what ShadowWolf says his extension does for Inform. In TADS 3 the Thing class also defines an owner property, which can designate another object (usually an Actor) as owner (rather than just the containing object).

That’s so awesome! Thanks Eric :slight_smile:

Nice - I hadn’t realized this was already built into TADS 3. I recall fiddling quite a bit with Mr. Dighton’s possess.t many years ago (I looked it up - it is still on the IF Archive in programming/tads2/examples.