My program doesn't have bugs. It just develops random features.

Legacy:Deus Ex/Conversations

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

What's a Conversation?[edit]

A Conversation in Deus Ex describes an interaction between two Actors in the environment.

This is not necessarily limited to dialogue, with Conversations you can do things like:

  • Give things (inventory) to the player
  • Run a "store" where the player may purchase items
  • Mess with the player's skill and credit levels
  • Add goals and notes

The Conversation incidates:

  • The Actors involved
  • Under what conditions the Conversation begins (or doesn't)
  • What happens during the conversation (Events).
  • Choices (responses) the player can make to an NPC.

Types of Events[edit]

Each Conversation typically contains a linked list of events, which define:

  • What things happen during the conversation,
  • What order they occur in,
  • What conditions are required.

There are several types of events, a few of which are not implemented:

Add Credits; Change the number of credits the player has (you can use negative numbers to deduct)
Add Goal 
Adds an item to the player's goal list.
Add Note 
Adds a Note.
Add Skill Points 
Change the player's skill point total.
Animation 
Check Flag 
Check Object 
Check Persona 
Choice
Comment 
Does nothing, just a way to add a comment to the .CON file.
End 
Ends the sequence of events.
Jump 
Moves to another point in the Event list.
Move Camera 
Moves the camera
Random Label
Set Flag 
Speech 
Say something (really, indicate who is speaking, what they say, who they're talking to"
Trade 
Apparently not implemented.
Transfer Object 
Moves objects (inventory) from one Actor to another.
Trigger 

How Conversations are Rendered[edit]

Text in conversation shows up in two ways.

Many conversations (i.e. dialogue between actors) show up at the bottom of the screen in a black area (letterbox?)

Still others, "barks" appear as a sort of popup window in the UI. They're mostly used when not engaging in dialogue with another actor. (For example, what the NPC's say as they go about their business, or things they say to the player if they don't have any "dialogue" conversation going on.

Getting to the Conversation Object Hierarchy[edit]

Conversation objects are spread throughout the actors that own them in each level. To get to the conversations, you must first get to the actors.

You do this through a reference to the current player.

Window.GetRootWindow()
\- DeusExBaseWindow.root
   \- root.ParentPawn

To check if an actor has any conversations for it, check if its conListItems variable (Actor.conListItems) is none or not. If none, then there is a list of conversations that this actor is involved it.

Xhiris: I'm working on dumping the whole Conversation tree to XML, will fill this in more as details are discovered.