Auto Quest Tracker Mk III

Auto Quest Tracker Mk III

12.4k Downloads

Not keeping quest tracked manually with Classic Quest Log

Redux28 opened this issue ยท 7 comments

commented

Thank you for the great addon!

I have a problem that manually tracked quests wont "stick" and get un-tracked when changing zones, it took me a while to troubleshoot but i finally found out the reason: when using the add-on Classic Quest Log to manually track a quest (shift click) AQT does not see the quest as manually tracked but if i go to the default quest log and track it there then it does.

Is this something that could be solved? I really prefer Classic Quest Log instead of the default quest log.

Thanks again!

commented

Thank you for the great addon!

Credits should go to the original author above all. I'm just maintaining the addon since DF and added a couple of features.

when using the add-on Classic Quest Log to manually track a quest (shift click) AQT does not see the quest as manually tracked

Actually, AQT itself never "sees" if a quest is manually watched, i.e. it doesn't build a database of shift-clicked quests or anything like that. It just uses the Blizz API function C_QuestLog.GetQuestWatchType(questId) which returns 1 if the quest is manually watched (shift-click added). Quests with WatchType 1 are not removed from the tracker by AQT.

When AQT adds a quest to the tracker (zone change), it does so using Blizz's C_QuestLog.AddQuestWatch(questID). For quests added this way, the default WatchType is 0 ("Automatic"), hence C_QuestLog.GetQuestWatchType returns 0 (as opposed to 1 for manually watched quests). These 0-flagged quests are subject to being removed by AQT on the next zone change.

Classic Quest Log also uses the C_QuestLog.AddQuestWatch function when you shift-click a quest, that is, C_QuestLog.GetQuestWatchType returns 0, and not 1, as it does for shift-click added quests from the Blizz Quest Log.

There isn't much I can do from my side, without fundamentally changing the way AQT works.

However, if Classic Quest Log used C_QuestLog.AddQuestWatch with the explicit parameter 1 for the WatchType, then the quest would be "properly" marked as manually watched and behave like a shift-clicked quest from Blizz's Quest Log, i.e. AQT would not remove it from the tracker.

You could ask the author to make this small change. However, the author of Classic Quest Log is a very experienced addon developer, so there must be a good reason why he hasn't added the WatchType 1 parameter. (Though it's possible that the parameter was added recently by Blizz and he just doesn't know about it).

You can also make the change in your copy of Classic Quest Log and see if it has any negative effects. Here's the diff for the chrome.lua file:

*** /Users/tom/Downloads/Classic Quest Log/chrome.lua	Wed Jan 25 11:26:11 2023
--- /Applications/World of Warcraft/_retail_/Interface/AddOns/Classic Quest Log/chrome.lua	Mon Mar  6 16:54:41 2023
***************
*** 63,69 ****
          if C_QuestLog.GetQuestWatchType(questID) then
              C_QuestLog.RemoveQuestWatch(questID)
          else
!             C_QuestLog.AddQuestWatch(questID)
          end
      end
  end
--- 63,69 ----
          if C_QuestLog.GetQuestWatchType(questID) then
              C_QuestLog.RemoveQuestWatch(questID)
          else
!             C_QuestLog.AddQuestWatch(questID, 1)
          end
      end
  end
commented

Thank you very much for the explanation, I wrote a message to the Classic Quest Log author about this possible solution and made the modifications locally and it works without causing any other issue on my end.

commented

I've seen that Gello has released a new version of Classic Quest Log, but it seems besides a toc bump he didn't change anything.

So here is a small plugin-style addon that fixes CQL's WatchType without you having to modify the addon:

[Removed obsolete zip file. See update in one of the posts below.]

It simply replaces the offending function with a modified one in the global table. If CQL is not loaded or is not the correct version (2.3.3), it throws a message and does nothing. If you see another CQL update in the future and you still need this plugin, just adjust the version number in line 3 in main.lua.

commented

I had redone the modification when i updated to the new version but this is amazing and much better because im sure i would eventually forget, thank you very much for taking time to do this.

commented

Here an updated version for CQL 2.3.4 and WoW 10.1:

v1.2 (2023-05-02)
Classic Quest Log - Plugin - Fix WatchType for CQL 2.3.4.zip

v1.2 (2023-05-03)
Fixed behavior when CQL is not loaded or not found
Classic Quest Log - Plugin - Fix WatchType for CQL 2.3.4 - v1.2.zip

Updated file see post further down.

commented

I'm closing this issue now, as there's nothing more I can do from my side. However, I'll try to keep the plugin updated as long as necessary.

The AQT description on CurseForge/Wago now contains a link to this page.

@ anyone who comes here: If CQL is updated and you don't see a new plugin version here within a few days, it's likely that I missed the CQL update. In that case, please let me know by posting a comment here.

@Redux28 : Just uploaded a slight fix of the plugin in the post above.

commented

Here the version for the current CQL 2.3.6:

Classic Quest Log - Plugin - Fix WatchType for CQL 2.3.6 - v1.3.zip

v1.3 (2023-07-21)

  • Recognition of CQL 2.3.6 as correct version
  • Updated readme and comments in main file
  • No content changes, as there weren't any relevant changes in CQL!