| msg_neu.tfile | source file | 
| Classes Summary | Objects Summary | Functions Summary Details | 
TADS 3 Library - "neutral" messages for US English
This module provides standard library messages with a parser/narrator that's as invisible (neutral) as possible. These messages are designed to reduce the presence of the computer as mediator in the story, to give the player the most direct contact that we can with the scenario.
The parser almost always refers to itself in the third person (by calling itself something like "this story") rather than in the first person, and, whenever possible, avoids referring to itself in the first place. Our ideal phrasing is either second-person, describing things directly in terms of the player character's experience, or "no-person," simply describing things without mentioning the speaker or listener at all. For example, rather than saying "I don't see that here," we say "you don't see that here," or "that's not here." We occasionally stray from this ideal where achieving it would be too awkward.
In the earliest days of adventure games, the parser was usually a visible presence: the early parsers frequently reported things in the first person, and some even had specific personalities. This conspicuous parser style has become less prevalent in modern games, though, and authors now usually prefer to treat the parser as just another part of the user interface, which like all good UI's is best when the user doesn't notice it.
BaseContentsLister  
BaseInlineContentsLister  
BaseRearContentsLister  
BaseSurfaceContentsLister  
BaseThingContentsLister  
BaseUndersideContentsLister  
CustomRoomLister  
ExitLister  
LookWhereContentsLister  
MajorAttachmentLister  
RemoteRoomLister  
SimpleAttachmentLister  
SuggestedTopicLister  
SuggestionListGroup  
aboardVehicleLister  
actorHoldingDescInventoryListerLong  
actorHoldingDescInventoryListerShort  
actorInventoryLister  
actorSingleInventoryLister  
darkRoomLister  
equivalentStateLister  
exitsTip  
explicitExitLister  
finishOptionsLister  
footnotesTip  
fullScoreTip  
implicitAnnouncementGrouper  
inlineListingContentsLister  
keyringExamineContentsLister  
keyringInlineContentsLister  
libMessages  
lookAroundExitLister  
lookAroundTerseExitLister  
npcActionMessages  
npcDeferredMessages  
npcDeferredMessagesDirect  
npcMessages  
npcMessagesDirect  
oopsTip  
openableDescContentsLister  
openableOpeningLister  
otherExitLister  
playerActionMessages  
playerMessages  
rearAbandonContentsLister  
rearContentsLister  
rearDescContentsLister  
rearInlineContentsLister  
rearLookBehindLister  
roomLister  
roomPartContentsLister  
roomPartDescContentsLister  
roomPartLookInLister  
scoreChangeTip  
statuslineExitLister  
suggestionAskForGroup  
suggestionAskGroup  
suggestionGiveGroup  
suggestionShowGroup  
suggestionTellGroup  
suggestionYesNoGroup  
surfaceContentsLister  
surfaceDescContentsLister  
surfaceInlineContentsLister  
surfaceLookInLister  
thingContentsLister  
thingDescContentsLister  
thingLookInLister  
undersideAbandonContentsLister  
undersideContentsLister  
undersideDescContentsLister  
undersideInlineContentsLister  
undersideLookUnderLister  
undoTip  
| buildParam (typeString, nm) | msg_neu.t[53] | 
This is useful when we have a name from a variable, and we need to build the message substitution string for embedding in a larger string. We can't just embed the name variable using <<var>>, because that would process the output piecewise - the output filter needs to see the whole {typ var} expression in one go. So, instead of writing this:
 
    {The/he <<var>>} {is} ... 
write this:
 
    <<buildParam('The/he', var)>> {is} ... 
| buildSynthParam (typeString, obj) | msg_neu.t[66] | 
For example, buildSynthParam('abc', obj) returns '{abc xxx}', where 'xxx' is a synthesized message parameter name (created using gSynthMessageParam) for the object obj.