IsFlyableArea() + [flyable] conditional bugged in 7.3.5? - WoWInterface
Thread Tools Display Modes
Prev Previous Post   Next Post Next
02-15-18, 12:52 AM   #15
Phanx's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2006
Posts: 5,617
Originally Posted by Xodiv View Post
There's a significant difference between:
  1. IsFlyableArea() or replacement; and
  2. Can I summon a flying mount right now?

I started out thinking the intention was (1) but a lot of the comments lead me to think it is actually (2), which I think would be a mistake.
The intention is (1); addons should be able to do something like:

if allOtherConditionsForMountingAreMet then
    if IsFlyableArea() then
This is why in my last post I stated I'm not going to bother checking for other conditions in garrisons -- the library should only be answering the question "if you summoned a flight-capable mount here (whether or not that's blocked for some other reason) and pressed the spacebar, would it fly into the air or fall back to the ground?"

That's what the real IsFlyableArea() is supposed to do, but fails in certain areas. The original problem I wanted to solve was that all continents but Outland required buying a spell to fly in, but IsFlyableArea() didn't consider whether your character actually knew that spell.

As soon as Blizzard fixes the 7.3.5 problem, then the library logic will go back to what it originally was -- if IsFlyableArea() returns false, assume it's correct; otherwise "trust but verify" by checking a few other things. The 7.3.5 problem is that now the opposite problem is happening in some places, so we can't trust a return of false from IsFlyableArea() either.

Finally, keep in mind that prior to 5 days ago this wasn't a library at all, but a file I was copy-pasting into my various addons (and others were copy-pasting into their various addons) so it's good that we're clarifying the scope here to avoid bloat going forward. I definitely intend for it to be (1) and not (2) so please feel free to point out anything you think is out of scope for (1).

Originally Posted by Xodiv View Post
At least two bugged areas on Argus have IsFlyableArea() == true even though you can't fly there. I forget the second one, but the first is a graveyard on Mac'Aree near the City Center teleporter.
OK, I'm just blacklisting the entire Argus continent/instance, then.

Originally Posted by Xodiv View Post
Both of the Draenor garrisons are correctly flagged.
Are you sure? I understand they are now flyable, but unless they're flyable without Draenor Pathfinder, then if IsFlyableArea() still returns false for characters without Draenor Pathfinder, they're not flagged correctly.

Originally Posted by Xodiv View Post
With the exception of the Deaths of Chromie scenario (MapID 1177, InstanceMapID 1756) you can't fly on continent -1, even though most of it is flagged flyable.
If GetCurrentMapAreaID() == 1177 and select(8, GetInstanceInfo()) == 1756, then where is the -1 coming from?
Author/maintainer of Grid, PhanxChat, oUF_Phanx, and many more.
Troubleshoot an addonTurn any code into an addonMore addon resources
Need help with your code? Post all of your actual code! Attach or paste your files.
Please don’t PM me about addon bugs or code questions. Post a comment or forum thread instead!
  Reply With Quote

WoWInterface » Developer Discussions » Lua/XML Help » IsFlyableArea() + [flyable] conditional bugged in 7.3.5?

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off