QuestsInMap(useLoremasterOnly) fails for Wholly
puggan opened this issue ยท 6 comments
== Background ==
Trying to do the Drenor Loremasters, and use 2 addons thats uses the Grail database.
Wholly have an option to hides non-loremaster quests, by setting the useLoremasterOnly in QuestsInMap()
Setting this setting in Wholly hides the wrong quests, for example, the quest "Across the Stars"(33795)
Loremaster-addon, also use Grail, havn't diged down in what function it use yet, but it shows the "Across the Stars"(33795), but it also shows the quest "Blademoon Bloom"(35014) that I don't have done the required prequest.
Wholly marks the "Blademoon Bloom"(35014) as not doable, if I uncheck the LoremasterOnly.
It's abit anoying to have to compare the 2 addons to know what quests todo.
=== Side note ===
The achivvment "As I Walk Through the Valley of the Shadow of Moon"(8845) is compled by an alt character.
And found some code that did some kind of is-achivment-done, and tested to remove it, no result.
== Questions ==
- Why is Wholly, that should be using the useLoremasterOnly, not listing the LoremasterQuest?
- How can I debug to see what Grail returns for the 2 quests?
I am intrigued as to why Wholly and Loremaster have different results for the same zone. The reason is the technique that Grail uses is the same for both, and therefore, I would have imagined the results should be the same.
Grail has two tables of interest: Grail.loremasterQuests and Grail.indexedQuests
They have an index of the mapId. So, Grail.loremasterQuests[947] should give you the Shadowmoon Valley (Draenor) quests that are Loremaster, and Grail.indexedQuests[947] should give you all of the ones that start in the zone.
I just ran in PTR (as live was down), and indexedQuests was giving me a bit over 200 quests, while loremasterQuests was only giving me 7. Something is definitely wrong. The Grail-Achievements loadable addon is responsible for populating this information, so I will have to investigate what is happening there.
Basically what Grail-Achievements is meant to be doing is looking at the last quest required for each of the parts of an achievement, and then getting all the prerequisites for those quests (in that zone). This is meant to be the list that is required for Loremaster.
While debuging Issue #17 i found:
Grail-Achievements/Grail-Achievements.lua
row 7009 - 7010
Grail.indexedQuests[achievement] = newTable
Grail.loremasterQuests[achievementsToZoneMapping[achievement]] = newTable
For Zone 949, there is 3 achivments: 508923, 508924, 509607
for each of thous 3, the code above adds a tale to indexedQuests at the achivment-id as position,
and then tries to add it to the loremasterQuests at the zone-id as position = 949.
all 3 achivments wirtes to loremasterQuests[949], replacing it, insted of merging them.