Tracking active Quests
Fig. 1: Quest Log (Source)
Tracking active quests is handled a bit weird by Gothic. Scripts have write-access to the players Quest-Log, but they cannot read back the quest status. Thus, a global boolean variable was created for most quests to track whether its active. Additionally, the Quest-Log is kept in sync:
Homer_DamLurker = LOG_RUNNING; // Global variable
Log_CreateTopic (CH1_DamLurker, LOG_MISSION);
Log_SetTopicStatus(CH1_DamLurker, LOG_RUNNING);
I can't think of a reason other than the Quest-Log being implemented much later into development for this to make sense.
Diary
In the game, the Quest Log is actually the hero's diary. On script-side, the functions
Log_CreateTopic
: Add Topic and choose between Mission or NoteLog_SetTopicStatus
: Set a Topic to Running, Success, Failed, ObsoleteLog_AddEntry
: Add a piece of text to a Topic
are used to update the diary.
Depending on the topics status, they are sorted into the categories.
Interestingly, the Obsolete
categories is actually obsolete and not used by
the game. Topics using that category will not show up in the Diary.
Note
The Diary is read-only, scripts are using global variables to manually keep track whether a quest is active.
A full list of all quest topic names can be found in the scripts.