/// <inheritdoc/> public void ShowQuestProgress(QuestDefinition quest, bool wasProgressionRequested) { using var writer = this.player.Connection.StartSafeWrite(QuestProgress.HeaderType, QuestProgress.Length); _ = new QuestProgress(writer.Span) { QuestGroup = (ushort)quest.Group, }; var questState = this.player.SelectedCharacter.QuestStates.FirstOrDefault(q => q.Group == quest.Group); // to write the quest state into the message, we can use the same logic as for the QuestState. The messages are equal in their content. QuestState progress = writer.Span; progress.AssignActiveQuestData(questState, this.player); writer.Commit(); }