Ludovicus-Maior / WoW-Pro-Guides

A World of Warcraft addon bringing guides into the game.
Other
142 stars 89 forks source link

QuestPOIGetIconInfo(questID) incorrect usage bug #152

Closed CodingDino closed 13 years ago

CodingDino commented 14 years ago

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): ?:

: ? :"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 (tail call): ?: : ? :"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 : --- 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.
gameldar commented 14 years ago

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?)

CodingDino commented 13 years ago

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.

CodingDino commented 13 years ago

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.

CodingDino commented 13 years ago

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.

CodingDino commented 13 years ago

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.

silvann commented 13 years ago

Looking at this.

CodingDino commented 13 years ago

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.

gameldar commented 13 years ago

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

silvann commented 13 years ago

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.

silvann commented 13 years ago

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.

silvann commented 13 years ago

Yeah, I think I fixed, opened a pull request so people can test it out.

CodingDino commented 13 years ago

Woohoo! Thanks silvann!