QuestPOIGetIconInfo(questID) incorrect usage bug
CodingDino opened this issue ยท 12 comments
From WOWI:
Just installed this for the first time, and am seeing an error on log in. Running v1.2.1, on a level 18 warlock who's never had this installed before. I have BlizzBugsSuck, but made the fix in the previous post. Other addons I have include Mapster, Chinchilla and Chatter. I do not have Tom-Tom or Lightheaded, or pretty much any other questing addon.
Haven't had the time yet to disable all addons and try to track down what the interference might be, but will try to do that tonight.
Code:
1x WoWPro-1.2.1 - Release\WoWPro_Mapping.lua:114: Usage: QuestPOIGetIconInfo(questID)
WoWPro-1.2.1 - Release\WoWPro_Mapping.lua:114: in function MapPoint' WoWPro-1.2.1 - Release\WoWPro.lua:108: in function <WoWPro\WoWPro.lua:87> (tail call): ?: <in C code>: ? <string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5> (tail call): ?: AceAddon-3.0-5 (DataStore):539: in function
EnableAddon'
AceAddon-3.0-5 (DataStore):629: in function <...\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:615>
: in function LoadAddOn' PitBull4-v4.0.0-beta11-3-g5295454\Main.lua:1126: in function
LoadModules'
PitBull4-v4.0.0-beta11-3-g5295454\Main.lua:1238: in function OnProfileChanged' PitBull4-v4.0.0-beta11-3-g5295454\Main.lua:1305: in function <PitBull4\Main.lua:1275> (tail call): ?: <in C code>: ? <string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5> (tail call): ?: AceAddon-3.0-5 (DataStore):539: in function
EnableAddon'
AceAddon-3.0-5 (DataStore):629: in function <...\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:615>
: in function LoadAddOn' Interface\FrameXML\UIParent.lua:235: in function
UIParentLoadAddOn':
Interface\FrameXML\UIParent.lua:258: in function `CombatLog_LoadUI':
Interface\FrameXML\UIParent.lua:482: in function <Interface\FrameXML\UIParent.lua:454>:
Edit: The error still happens with only wow-pro, bugsack, and buggrabber active. I deleted the SV file, the error went away, then showed up as soon as I clicked on Maw's Loch Modan guide. I'm standing in the inn in Theramore.
Posted the following to wowi:
This appears to actually be a bug in the WoW API rather than the add-on code. Any chance you could try loading the equivalent guide in TourGuide and see if you get the same response as they use similar functionality? (You might need to step through the guide to get to the equivalent point?)
I may have fixed this, but since I don't wanna break anything else again, I'll test a bit more before I pushed it.
Also tried inputting a QID that was in my log but which was located out of zone, and one that was located in a dungeon. Nothing.
The bug was not recreated in Tour Guide according to the user. Since I've had many reports of this bug I'm betting it's something wrong in either the addon itself or something going wrong in the guide files. I've checked the guide files in question, however, and they are providing correct QIDs for all the quests in question from what I've seen. I'll dig around in the Tour Guide code and see if I can reverse engineer a solution.
I tested this on a random quest and it definitely worked as intended, so I am using the function correctly. What I'm guessing is that, for some quests, there just isn't an icon to get info for. It may also have problems if that quest is not currently in your log. I guess that's the next thing to check - perhaps this user was manually completing steps before the step skipping feature was added, and did not actually have the quest in the log?
We'll see if any more reports crop up or if anyone else can verify this.
I tried putting in a QID that I had not accepted yet, so it was not in my log - the addon threw no errors and simply quietly failed to map the coordinates. I'm at a loss.
The OP mentioned he doesn't have TomTom, I would then assume he has Carbonite. Could we be having some sort of conflict? I do not play with Carbonite so this could be why I can't reproduce the error.
I'm wondering if there is perhaps a mismatch between the ids somehow? Looking at Carbonite's usage of the function (was looking to see if there was a mismatch - I didn't think obfuscation of code was allowed...) they only use it in the context of the return from the POI lists on the map (I've cut out the irrelevant bits):
local num=QuestMapUpdateAllQuests()
if num>0 then
QuestPOIUpdateIcons()
for n=1,num do
local id,qi=QuestPOIGetQuestIDByVisibleIndex(n)
if not self.ITQ[id] or self.ITQ[-id] then
local _,x,y,obj1=QuestPOIGetIconInfo(id)
local tit=GetQuestLogTitle(qi)
local s=tit
x=x_10000
y=y_10000
local lbC=GetNumQuestLeaderBoards(qi)
for i=1,lbC do
que[3+i]=que[2]
end
end
end
end
Theoretically, it shouldn't matter, because the only thing we use TomTom or Carbonite for is when we call their 'set waypoint' functions, which happens after we try to get x,y from QuestPOIGetIconInfo, where the error occurs. So I still think it's a questID problem. For another hand, TomTom has a quest tracker option, so maybe they are "fixing" our ID problem without us knowing. I dunno, will test it out tonight.