The Big Bang - Version 2.6.0

Ludovicus_Maior's picture

So I have a big set of changes I am going to check in later today. Why later today? Because I want one last chance to run through it to see if I really fixed everything I think I did.

So what has Ludovicus been up to?

  1. I have consolidated the guide parsers. Now every addon supports every tag!
  2. I have consolidated the event handlers. Now every addon behaves the same way in response to major game EVENT notifications.
  3. I have consolidated the step selection logic. Now every guide makes uniform decisions for determining the next step.
  4. I have consolidated the guide loading process. Now when a guide is loaded, it is setup the same and daily/weekly/monthly quests handled uniformly.

So those are the big structural changes. In theory they fix nothing except making it easier maintenance for us addon writing types. But it does mean that if a bug appears in the logic, there is only one place to fix it! As a result, a few bugs were accidentally fixed by making the logic uniform:

  1. The guides are now hidden uniformly when entering instances or pet battles.
  2. Dalies guides now reset automatically at load time.
  3. Loots are now counted accurately
  4. Automatic flight point autocomplete works (fingers crossed) uniformly
  5. Interfaces to secondary addons like TomTom and Grail now work across the board

But the single biggest change is I changed the the way the event processing logic and the guide update logic interacted. It used to be that events that changed quest status directly triggered guide next step selection. But Blizzard, for their own mysterious reasons, has decided to muck with it. I suspect that the game client is taking better advantage of multicore processors. Or maybe they are just being perverse. But I can no longer depend on the precise order of quest log updates, quest completion flagging, and quest NPC interactions. Worse yet, if I accept or turn in many quests in quick order, the events for the quests can be interleaved.

What to do? It turns out the solution was right under my nose. It is really the same problem as the quest loot counting problem. When you loot an item, you get multiple messages updating the status of your bags and scanning all your bags on every message is too expensive. So what you do is set a timer (for say 1/3 of a second) when you get one of these messages and reset the timer if you get another one while the timer is still active. Once the timer goes off (i.e. it has been over a 1/3 of a second since ant bag update messages came by) then count your loots.

Similarly, we need to aggregate all of the quest status modification events and punt on doing an update until things have settled down. Simple, n'est-ce pas?

Anyways, once I am satisfied this is not obviously broken, it will be available directly from GitHub at:

This will be a beta release, so any bug reports should go here. But it will have the Thunder King quests, or at least enough to get started Smiling.

Oh yeah, and I started implementing a new feature. I call it "Why?". If you open up the "Current Guide Listing" and mouse over the step texture, it will tell you "Why" that step is in that state. I added this because adding all the debug log prints to cover every eventuality resulted in huge logs that were difficult to understand. This gives you a nice concise answer for a given step.

Comments

Ludovicus_Maior's picture

Version 2.6.0alpha1

Version 2.6.0alpha1 is availible at:

https://github.com/Jiyambi/WoW-Pro-Guides/archive/master.zip

Find a bug. report it at this blog entry!

 

Ludovicus_Maior's picture

Acid Test #1

I just did the Golden Lotus Dalies.

  • The guide reset properly from yesterday, automatically
  • I got no quest skips
  • The end of guide step showed up right

I have a couple of patches for the guide to upload that will get rid of a little noise at the start, though.

Acid Test #2? - Klaxxi... Failed!

20130317/1609.001 ~ WoWPro: Patched Blizzard_GlyphUI to get rid of attempt to index global "PlayerTalentFrame" (a nil value)
20130317/1609.002 ~ WoWPro: PLAYER_ENTERING_WORLD()
20130317/1609.003 ~ WoWPro: QUEST_LOG_UPDATE()
20130317/1609.004 ~ WoWPro: UNIT_AURA("player")
20130317/1609.005 ~ WoWPro: UNIT_AURA("player")
20130317/1609.006 ~ WoWPro: QUEST_LOG_UPDATE()
20130317/1609.007 ~ WoWPro: Resetting Guide WayKlaxxi due to upgrade. Forgetting skipped steps.
20130317/1609.008 ~ WoWPro: In guide WayKlaxxi, quest 31175's name [Skeer The Bloodseeker] does not match Grail's database [Skeer the Bloodseeker].
20130317/1609.009 ~ WoWPro: In guide WayKlaxxi, quest 31175's name [Skeer The Bloodseeker] does not match Grail's database [Skeer the Bloodseeker].
20130317/1609.010 ~ WoWPro: In guide WayKlaxxi, quest 31018's name [Beneath The Heart Of Fear] does not match Grail's database [Beneath the Heart of Fear].
20130317/1609.011 ~ WoWPro: In guide WayKlaxxi, quest 31018's name [Beneath The Heart Of Fear] does not match Grail's database [Beneath the Heart of Fear].
20130317/1609.012 ~ WoWPro: Invalid Z tag in:R Kypari Zar|QID|31272;31268;31271;31269;31267;31024;31270|Z|Kypari Zar
|Get your favorite Klaxxi buff from any of the available Paragons then speak to Kil'ruk the Wind-Reaver for a lift to Kypari Zar. Press 1 and choose your landing spot.|CC|
20130317/1609.013 ~ WoWPro: Invalid Z tag in:R The Scale-Lord|QID|31269|Z|Mistblade Den
|Cave Entrance|CC|M|66.73,63.61|
20130317/1609.014 ~ WoWPro: Invalid Z tag in:R Terrace of Gurthan|QID|31233;31232;31231;31237;31235;31234|M|55.10,35.90|Z|Terrace of Gurthan
|Get your favorite Klaxxi buff from any of the available Paragons then speak to Kil'ruk the Wind-Reaver for a lift to The Terrace of Gurthan. Press 1 and choose your landing spot.|CC|
20130317/1609.015 ~ WoWPro: Invalid Z tag in:R Zan'Vess|QID|31111;31508;31509;31506;31505;31507;31510|Z|The Briny Muck
|Get your favorite Klaxxi buff from any of the available Paragons then speak to Kil'ruk the Wind-Reaver for a lift to Zan'Vess. Press 1 and choose your landing spot.|CC|
20130317/1609.016 ~ WoWPro: In guide WayKlaxxi, quest [Seeds of Fear] does not have a QID
20130317/1609.017 ~ WoWPro: QUEST_LOG_UPDATE()
20130317/1609.018 ~ WoWPro: ZONE_CHANGED_NEW_AREA()
20130317/1611.019 ~ WoWPro: CHAT_MSG_SYSTEM("Pendelicious has gone offline.", "", "", "", "", "", 0, 0, "", 0, 18, nil, 0, false, false)
20130317/1611.020 ~ WoWPro: QUEST_LOG_UPDATE()
20130317/1611.021 ~ WoWPro: QUEST_LOG_UPDATE()

Ludovicus_Maior's picture

Re: Acid Test #2? - Klaxxi... Failed!

Whoa!  Interesting.   This would indicates some problems specific to the guide itself.

I would normally take a look at it right now, but I  ran a half marathon around noon and just came back from getting a 90 minute deep tissue massage.

I think once I have dinner and a beer, that I am just gonna crash!  So I'll peek tomorrow.

A few things

Should there be a recording bar at the top of the guide window?

The zip file created a folder called WoW-Pro-Guides-master that contained the guide folders, had to copy them out of that into the addons folder.

I'm also getting some lua errors but don't have time to figure out if they are solely from the guide or another addon, hopefully will have some more time tonight to check it out and report back. That said, 2.5 has been working great, just came back after a long break and have been working through MoP content with it.

keep up the good work

 

 

Ludovicus_Maior's picture

Re: A few things

You should turn off the "Recorder" addon.  That one is only for guide writers and is currently not compatible with the other ones, because of the changes I made!