public Form1() { InitializeComponent(); SetDoubleBuffered(lvQuest); SetDoubleBuffered(lvSubquest); quests = new LBA2Quests(getLBAFilesPath()); load(true); }
private void addQuestsToListView(LBA2Quests quests) { lvQuest.Items.Clear(); for (int i = 0; i < quests.quests.Count(); i++) { addQuestToListView(quests.quests[i]); } }
private void updateQuests(LBA2Quests quests) { for (int i = 0; i < quests.quests.Count(); i++) { if (lvQuest.Items[i].SubItems[0].Text != quests.quests[i].name) { lvQuest.Items[i].SubItems[1].Text = quests.quests[i].name; lvQuest.Items[i].Tag = quests.quests[i]; } } }
private void addOrUpdateQuest(LBA2Quests quests) { if (0 == lvQuest.Items.Count) { addQuestsToListView(quests); } else { updateQuests(quests); } }
private LBA2Quests padQuests(LBA2Quests input) { uint count = ((input.quests[input.quests.Count() - 1].memoryOffset - input.quests[0].memoryOffset) + 1) / 2; LBA2Quest[] output = new LBA2Quest[count + 1]; //for (int i = 0, j = 0; i < count; i++) for (int i = 0, copied = 0; i < output.Count(); i++) { //Always copy first item (No previous item to compare against if (0 != i && ((input.quests[copied].memoryOffset - 2) > output[i - 1].memoryOffset)) { output[i] = new LBA2Quest("Unknown", output[i - 1].memoryOffset + 2, 1, null);//pad item; } else { output[i] = input.quests[copied++];//Copy item and increment source index } } input.quests = output; return(input); }