NPC listed in room

I have 2 NPCs in my start room. One of them is listed while the other is not. I would prefer neither are listed. I have tried isListed = nil and isFixed = true but for whatever reason, Papa is ALWAYS Listed unless I have his location as nil. But then I have to move him to the shack once it is time to talk. I just don’t understand why the same code is producing different results.

tinyShack : Room 'Tiny Shack' 'shack; tiny shack'
  "The tiny shack is the home you share with your parents and eleven siblings. "
  ...
;
papa : Actor 'Papa; strong large;man; him' @tinyShack

;
mama : Actor 'Mama; kind pretty; woman; her' @tinyShack

;

Output:
Tiny Shack
The tiny shack is the home you share with your parents and eleven siblings.

Papa is here.

1 Like

Things that are enumerated separately at the end of the room description almost always are there because of their specialDesc property.

I’m not as familiar with all of the ins and outs of tweaking specialDesc in adv3lite versus adv3, but have just verified that simply setting specialDesc = nil on the Actor declaration will prevent them from being listed in this way.

Thank you, kindly. That does omit Papa from the description of the tiny shack. Still not sure why Mama seems to be immune to this problem.

1 Like

Do you have other code lines in mama’s code? Can you be certain that her definition is properly surrounded by the necessary braves or semicolons? Can you confirm that mama is in that room, even if she’s not listed?

In adv3 (maybe Lite) the normal way to control that is
useSpecialDesc = nil

With a minimal mama and papa definition, I had both of their specialDescs show up as anticipated. Can you paste the exact code block where mama is defined? Have you made modifications to the Actor class?

Interesting issue, because in my major WIP the pair of NPC have, let’s say, a special relationship between them and the PC, leading to party banter and like things (implementation planned end '24-early '25) and specialDesc, albeit is a property, is tagged for due abuse.

So, if from this debate interesting things on specialDesc surfaces, I’ll give due notes…

Best regards from Italy,
dott. Piergiorgio.

1 Like

Hi John,
That is the only code for mama except for a couple of states (included). I have not modified the Actor class. Maybe something happened when I switched to the adv3lite library?

Assuming also Pa has stateDesc, tried to copy useSpecialDesc = nil in one of the states ? I think that should NOT block the stateDesc, and allow excluding for sure the Actor and ActorState from the suspect list.

Best regards from Italy,
dott. Piergiorgio.

Again, I’m not a Lite user so I haven’t been through the source to see how things are called. But it’s possible that mama is invisible because she has an ActorState but the state has no specialDesc defined. If Papa doesn’t have an ActorState, he will show up because of actorSpecialDesc (is my guess at a cursory glance).
Try a specialDesc = "Her desc for this state. " under mamaState and see if she appears (even though you may not want her to… it would at least give you understanding of how things are working…)

EDIT: I believe I just verified this in a test framework. I think Mama is invisible because she has a State with no specialDesc.

3 Likes