[SOLVED] Awkward message (Adv3)

I have fought all-night against this awkward message generated by adv3 library:

Azuj stands here, waiting to be fully implemented.

>x azuj
Here stands Atuzejiki.She is standing in the balcony ?.

the awkward part is “she is standing in the balcony” and happens only if the NPC is movedIntoForTravel from to the same location of the PC.

the relevant code is here:

padW: RoomPart 'west/w' 'west' @pad //here came Atuzejiki !!
desc () {
 azuj.moveIntoForTravel(pad);
  "[OMISSIS]";
}
// omissed the very provisional and very rough sketch of the scene of the //meeting with Azuj, in the final version ought to be a scene (using Eric's //scene.t)

;

and the definition of the npc currently is:

azuj: Person 
vocabWords = 'demon/daemon/atuzejiki/azuj'
name = 'Azuj'
npcDesc = "Here stands Atuzejiki."
specialDesc = "Azuj stands here, waiting to be fully implemented."
isHer = true // of course..
isProperName = true

;

I’ll go to sleep now, @6:31 Italy time… hope that when I’m awake someone has given some advice…

Best regards from Italy,
dott. Piergiorgio.

EDIT: WHY the spoiler DON’T work around preformatted text ???

after a full morning of sleep, back to the issue, and after an hour of rgrepping around adv3’s code, I think (hopefully…) that I have isolated the culprit, whose seems to have just below what adv3 should actually do:

    /*
     *   Describe an actor as standing/sitting/lying on something, as part
     *   of the actor's EXAMINE description.  This is additional
     *   information added to the actor's description, so we refer to the
     *   actor with a pronoun ("He's standing here").  
     */
    actorInRoomPosture(actor, room)
    {
        "\^<<actor.itIs>> <<actor.posture.participle>>
        <<room.actorInName>>. ";
    }

    /*
     *   Describe an actor's posture, as part of an actor's "examine"
     *   description.  If the actor is standing, don't bother mentioning
     *   anything, as standing is the trivial default condition.  
     */
    roomActorPostureDesc(actor)
    {
        if (actor.posture != standing)
            "\^<<actor.itIs>> <<actor.posture.participle>>. ";
    }

As one can easily see, what is causing the issue seems to be actorInRoomPosture, whose is immediately followed with what should do the Right Thing, roomActorPostureDesc.

Best regards from Italy,
dott. Piergiorgio.

1 Like

UPDATE 2:

after not few hours, I have figured with certainly the root culprit, whose is surprising:

The awkward message appears if the room where the NPC is or appears has custom RoomParts (as padW: in relevant code)

Now time for a belated lunch, then I look how to replace the RoomParts with appropriate distant (or, for people whose have read my anticipation, even considering OutOfReach, whose can be useful during late game, after a certain event…)

now a question: that having roomParts in a room with NPC led to awkward NPC description messages is a very strange feature, we can correctly classify it as a bug ?

Best regards from Italy,
dott. Piergiorgio.

FINAL update:

Indeed the issue lies in the RoomParts; a simple search & replace of RoomPart with Distant was enough to close the bug:

Azuj stands here, waiting to be fully implemented.

>x azuj
Here stands Atuzejiki.

>WOOOOOOOOOOOOO VICTORYYYYYYYYYY

remain a minor glitch, caused by the presence in the scope of the standard room part, leading to a default disambiguation message:

>x ground
(the ground)
the pad's ground is tiled, but the tiles are slight granulated, no doubt for winged people's landing.

it’s only a minor bell/whistle, so I can live without this line on the pad’s ground.

so, issue officially SOLVED.

Best regards from Italy,
dott. Piergiorgio.

Perhaps use a Floor object instead of a RoomPart? I use custom Floors all the time…

1 Like

it’s a good suggestion, in the light of the first major scene (now implemented)… I will work on it later, when I start the fine detailing of that loc (I code top-down: axe, chisel then burin, so to speak). Thanks and

Best regards from Italy,
dott. Piergiorgio.