I have been investigating the conversation system to try to figure out what the various unknown and anonymous fields mean.
unk_v40_1 of a report is an activity_entry ID, corresponding to df.global.world.activities.all[x].id, and unk_v40_3 is a speaker ID.
An activity_event_conversationst has some anonymous fields. anon_1 is a vector of conversation participants. Each entry contains two fields, anon_1 and anon_2, where anon_1 is a speaker ID and anon_2 is a quasi-speaker ID.
A speaker ID is constant for a given speaker; it does not vary across conversations. I don’t know what the actual number is an index into though. A quasi-speaker ID (for lack of a better name) is the same thing, but usually it is a different number than the speaker ID. They are only equal when the speaker is the player. The quasi-speaker ID is -1 until the player joins in the conversation.
anon_10 and anon_11 seem to be equal to anon_1[1].anon_1 and anon_1[1].anon_2 respectively.
anon_2 and anon_15 go together. They are both integers between -1 and 7, corresponding to different conversation states: -1 = before the conversation starts; 0 = responding to greeting; 1 = main menu; 2 to 4 = spreading rumors; 5 = asking for directions; 6 = responding to a rumor; 7 = goodbye. anon_1 controls the player and anon_15 the NPC.
anon_9 of an activity_event_conversationst is the most interesting. It is a vector of conversation turns. Each turn has 13 anonymous fields. anon_1 is a speaker ID and anon_2 is a quasi-speaker ID. anon_3 is the topic ID, where a topic is something you pick in the conversation menu. anon_4 is a vector of entity_events, which only have interesting information when the utterance is about a historical event or beast. anon_5 stays constant for a given speaker. anon_6, anon_7, and anon_8 are the color in the usual format: foreground, background, brightness. anon_9 seems to always be 5. anon_10 is the number of ticks since adventure mode started. anon_11 and anon_12 seem to encode the contents of the utterance: 4/20 is "It is terrifying", 2/20 is "It is inevitable", etc.
Does anyone have any more information about these fields? Specifically, what are speaker ID and quasi-speaker ID?