public void UpdateQuestLog() { qlogmodel.questlog = new Dictionary <Quest, int>(); Quest mainquest = database.FetchQuestByID(qprogress.questProgress); if (qprogress.questTimer == -1000 || qprogress.questTimer == 0) { qprogress.questTimer = mainquest.timeLimit; } qlogmodel.questlog.Add(mainquest, mainquest.ID); if (mainquest.subQuests != "") { foreach (int subquestID in mainquest.SubQuestsList) { int sqid = subquestID; if (qprogress.CompletedQuests.Find(i => i == sqid) == 0) { Quest questToAdd = database.FetchQuestByID(subquestID); if (questToAdd.RequiredQuestList.Count != 0) { foreach (int id in questToAdd.RequiredQuestList) { if (qprogress.CompletedQuests.Find(i => i == sqid) == 0) { OkToAdd = false; break; } } } else { OkToAdd = true; } if (OkToAdd) { qlogmodel.questlog.Add(database.FetchQuestByID(sqid), sqid); } } } } qlogview.LoadQuestLog(); }