conversationManager object | output.t[2101]

Basic conversation manager for use in adv3Liter and adv3Litest(when actor.t is not present) We just provide handling for <.reveal> and <.unreveal> in case game code uses them.

`conversationManager : OutputFilter PreinitObject`

Superclass Tree (in declaration order)

`conversationManager`
`OutputFilter`
`object`
`PreinitObject`
`ModuleExecObject`
`object`

Summary of Properties

`convnodeSetTurn customTags factTagMarker idToActor objNameTab pendingTopicInventory pendingTopicInventoryKey respondingActor tagPat`

``

Inherited from `PreinitObject` :
`execBeforeMe reverseGlobalSymbols`

Inherited from `ModuleExecObject` :
`execAfterMe hasInitialized_ isDoingExec_ isExecuted_`

Summary of Methods

`doCustomTag execute filterText manageKeys scheduleTopicInventory setInformed setRevealed setUnrevealed showAgendaError showKnownError showObjDoesNotBelongToActorError showObjNotExistError showStateError showWrongKindofObjectError stripFactTagMarker topicInventoryDaemon`

``

``

Inherited from `ModuleExecObject` :
`_execute classExec`

Properties

`convnodeSetTurn` | `actor.t[5834]`

The turn on which we last processed a convnode tag

`customTags` | `output.t[2119]`

Custom extended tags. Games and library extensions can add their own tag processing as needed, by using 'modify' to extend this object. There are two things you have to do to add your own tags:

First, add a 'customTags' property that defines a regular expression for your added tags. This will be incorporated into the main pattern we use to look for tags. Simply specify a string that lists your tags separated by "|" characters, like this:

customTags = 'foo|bar'

Second, define a doCustomTag() method to process the tags. The filter routine will call your doCustomTag() method whenever it finds one of your custom tags in the output stream.

`factTagMarker` | `actor.t[5426]`

no description available

`idToActor` | `actor.t[6059]`

a vector of actors, indexed by their convMgrID values

`objNameTab` | `actor.t[6109]`

no description available

`pendingTopicInventory` | `actor.t[6104]`

flag: we have a pending prompt-time topic inventory request

`pendingTopicInventoryKey` | `actor.t[6107]`

The key to use for the pending prompt-time inventory request

`respondingActor` | `actor.t[5424]`

The actor we're dealing with is the player character's current interlocutor

`tagPat` | `output.t[2197]`

remove the tags from the text by replacing every occurrence with an empty string, and return the result

Methods

`doCustomTag (tag, arg)` | `output.t[2120], actor.t[5418]`

no description available

`execute ( )`OVERRIDDEN | `actor.t[6062]`

preinitialize

`filterText (ostr, txt)`OVERRIDDEN | `output.t[2122], actor.t[5438]`

no description available

Modified in actor.t[5438]:
filter text written to the output stream

`manageKeys ( )` | `actor.t[5847]`

Provided we have a respondingActor, call its manageKeys method.

`scheduleTopicInventory (key, =, nil)` | `actor.t[5860]`

Schedule a topic inventory request. Game code can call this at any time to request that the player character's topic inventory be shown automatically just before the next command prompt. In most cases, game code won't call this directly, but will request the same effect using the <.topics> tag in topic response text.

`setInformed (tag, val?)` | `actor.t[5938]`

Notify every actor who's in a position to hear that we've just imparted some information.

`setRevealed (tag, val?)` | `output.t[2204], actor.t[5887]`

no description available

Modified in actor.t[5887]:
Mark a tag as revealed. This adds an entry for the tag to the revealedNameTab table. We simply set the table entry to 'true'; the presence of the tag in the table constitutes the indication that the tag has been revealed.

(Games and library extensions can use 'modify' to override this and store more information in the table entry. For example, you could store the time when the information was first revealed, or the location where it was learned. If you do override this, just be sure to set the revealedNameTab entry for the tag to a non-nil and non-zero value, so that any code testing the presence of the table entry will see that the slot is indeed set.)

The actual method and the revealedNameTab are on libGlobal rather than here in order to make them available to games that don't include actor.t.

`setUnrevealed (tag)` | `actor.t[5929]`

Mark a tag as unrevealed. This removes an entry for the tag to the revealedNameTab table.

The actual method and the revealedNameTab are on libGlobal rather than here in order to make them available to games that don't include actor.t.

`showAgendaError (tag, arg)` | `actor.t[5975]`

Display an error message if the game code tries to add or remove agenda items from an agendaList using a <.agenda item> or <.remove item> tag, when item doesn't correspond to a valid AgendaItem, but only do so if the game has been compiled for debugging.

`showKnownError (tag, arg)` | `actor.t[6017]`

Display an error message if the game code tries mark an object as known about using a <.known obj> tag, when obj doesn't correspond to a valid Mentionable object, but only do so if the game has been compiled for debugging.

`showObjDoesNotBelongToActorError (tag, arg, typ)` | `actor.t[6051]`

The object referred to by tag doesn't belong to the actor in question

`showObjNotExistError (tag, arg, typ)` | `actor.t[6036]`

The object referred to by tag doesn't exist

`showStateError (tag, arg)` | `actor.t[5997]`

Display an error message if the game code tries to change our actor's ActorState via a <.state newstate> tag, when tag doesn't correspond to a valid ActorState, but only do so if the game has been compiled for debugging.

`showWrongKindofObjectError (tag, arg, typ)` | `actor.t[6044]`

The object referred to by tag is the wrong sort of object

`stripFactTagMarker (arg)` | `actor.t[5432]`

Strip our factTagMarker from the start of arg. Game authors shouldn't use it for most tags, but just to be safe we'll do it for all the string tags anyway.

`topicInventoryDaemon ( )` | `actor.t[6082]`

Prompt daemon: show topic inventory when appropriate. When a response explicitly asks us to show a topic inventory using the <.topics> tag, or when other game code asks us to show topic inventory by calling scheduleTopicInventory(), we'll show the inventory just before the command input prompt.

Adv3Lite Library Reference Manual
Generated on 25/04/2024 from adv3Lite version 2.0