Pawn

72 - v1.6.9 initialization issue

What is the enhancement in mind? How should it look and feel?
Since sometime around patch 3.0 the logic of the events firing during the loading process has changed somewhat.
This leads to unexpected behavior on some clients (not all users will have a problem with an 'old style' initialization but some will - I'm one of the unlucky)
The symptom in my case was not getting Pawn information added to my tooltips despite having all the relevant options selected on a cold login, but only after a /reload (because on a /reload all game information is available at ADDON_LOADED)
To keep it short, ADDON_LOADED is the 'new' VARIABLES_LOADED, it is however too early (on a cold login) for some game data.
It is only safe to initialized saved variables data at that point when arg1 == our addon. (some exceptions apply, like UnitName|Realm and most things directly related to "player").
Additionally PLAYER_ENTERING_WORLD fires for every loading screen in the game not just the starting screen.
This had 2 side-effects:
Some of the problems with Pawn's initialization scheme and 3rd party support were masked by code that ran again when the player crossed a loading screen (portal/instance etc) since that code ran again.
A 'hacky' workaround with the PawnPlayerEnteredWorld local variable was needed to run some code only once (I actually kept that variable but repurposed it to keep changes to the existing codebase to an absolute minimum although the whole thing could be done a little more elegantly)
LinkWrangler support would only work 'incidentally' since VARIABLES_LOADED has very limited use for addons now and it's not a reliable event to assume addon loading has finished.

Please provide any additional information below.
Adding diffs with some minimal changes to PawnUI.xml and Pawn.lua that I think improve things.
They solved my issue and I don't think I broke anything in the process :-)

Name Size MD5
PawnUI.xml.diff 768 B 439aaabb4457...
Pawn.lua.diff 5.6 KiB dd24f18a997d...
User When Change
VgerAN Jan 14, 2013 at 07:22 UTC
Dridzt Oct 12, 2012 at 08:16 UTC

Added attachment Pawn.lua.diff

Dridzt Oct 12, 2012 at 08:16 UTC

Added attachment PawnUI.xml.diff

Dridzt Oct 12, 2012 at 08:15 UTC Create

You must login to post a comment. Don't have an account? Register to get one!

  • 4 comments
  • Avatar of VgerAN VgerAN Jan 14, 2013 at 07:22 UTC - 0 likes

    Haven't heard anything in a while so I'm assuming this is fixed.

  • Avatar of VgerAN VgerAN Nov 26, 2012 at 03:34 UTC - 0 likes

    Hey, I took a look at your changes; thanks for investigating. I did notice that LinkWrangler was not listed as an optional dependency in my TOC so I added it. But I'm not sure about some of the other changes you made. You added code to Pawn's ADDON_LOADED handler to cover a case where certain addons like AtlasLoot weren't already loaded when Pawn started up, but they're OptionalDependencies in my TOC, so that should never be able to happen, right?

    Can you take a look at Pawn 1.7 beta 2 and see if it still solves the issues you were having? I've made a subset of the changes you proposed here in that version. Thanks.

  • Avatar of VgerAN VgerAN Oct 14, 2012 at 09:27 UTC - 0 likes

    Thanks; I'll try to take a look at this along with Pawn 1.7... some people are definitely still experiencing some issues with nondeterministic loading order for certain characters, and I haven't quite been able to narrow it down thanks to the pretty limited information on the topic and the fact that everything always works perfectly for me no matter what machine I try it on.

  • Avatar of Dridzt Dridzt Oct 12, 2012 at 08:21 UTC - 0 likes

    Adding the full files as pastes since it might be easier to compare against.

  • 4 comments

Facts

Last updated
Jan 14, 2013
Reported
Oct 12, 2012
Status
Fixed - Developer made requested changes. QA should verify.
Type
Enhancement - A change which is intended to better the project in some way
Priority
Medium - Normal priority.
Votes
0

Reported by

Possible assignees