r20100520012210

Details

  • Filename
    PitBull4-vangual-r20100520012210.zip
  • Uploaded by
  • Uploaded
    May 22, 2010
  • Size
    789.33 KB
  • Downloads
    82
  • MD5
    3cb31b1b6b5129ee73e11333e9ebe5bb

Supported WoW Retail Versions

  • 3.3.5

Changelog

Shefki:
    - Missed setting the Highlight frame to the Overlay level.
    - Rework frame levels.  Includes fix for Ticket #743 (Inconsistent Portrait frame level)
    The PlayerModel frame used for 3d Portraits never had its frame level
    set so it was only 1 above the frame (along with bars).  However, 2d
    portraits were set at the same frame level as indicators.  This meant
    people using 3d portraits saw them consistently under indicators (as
    most people probably want) while people using 2d portraits had somewhat
    random behavior.
    
    Additionally, since all the frame levels were only spaced out by 1
    frame, if something needed multiple layers for various reasons then some
    objects would seem to be between parts of some objects and others.  A
    great example of this was 2d portraits and auras.  The 2d Portrait would
    be on top of the Auras but under the texts for them.
    
    This commit reworks the frame levels by spacing them out.  Frame levels
    are layed out as follows (numbers are offsets from the unit frames
    level)
    
    -1 GroupHeader
    0  Unit Frame
    1  Bars
    5 Portrait
    9  Aura
    10 Aura Cooldown
    11 Aura Text
    13 Indicators
    14 Totems CD
    15 Totems Text
    17 TextProvider Overlay
    
    If you've adjusted the frame level of your auras manually you may need
    to adjust them to deal with the new changes since almost everything has
    raised by quite a few frame levels.
    - Fix an error caused by recycling a BetterStatusBar with animations on.
    Prior to this the animation flags were turned off when the control was
    retrieved.  Which led to a bit of a chicken/egg syndrome.  The value
    gets updated during the retrieval process and it thinks the animations
    are turned on so it expects the animation controls to exist, which they
    don't since they're recycled separately.
    
    Now the flags are cleared when the animation objects are recycled.
    - Add Mind Trauma debuff to Priest enemy debuffs whitelist.
    - Ticket #631: Allow Health and PowerBars to be animated/faded over time.
    This is similar to the BarFader module in PitBull3.  However, in this
    case it has been added to the BetterStatusBar implementation.  Bar
    modules that want to allow their bars to be animated should set
    allow_animations on their module object.
    
    This is also implemented using the animation system added in WoW 3.1.x.
    So it should be reasonably efficient.  Bars that are not set to animate
    and/or fade incur no overhead.
    - Ticket #748: CastBarLatency fails to show for abilities that don't trigger a GCD in some cases.
    See my comment on the ticket for details of how this happens.  This
    change also stops caching of the GCD between casts.  In a real
    environment the GCD can't usefully be cached due to haste.
Cameron Knight:
    - Make class orderings customizeable and also rely on Blizz's standard CLASS_SORT_ORDER for the default.
Shefki:
    - Style cleanup in CastBar module.
    Remove more camel casing and rename CREEPY_HEAD which is no longer a
    head but just a generic warcraftl log
    - Oops took one too many ends in the previous commit.
    - Fix the bug that causes the auto-hide CastBar to ocassionally not hide.
    There was a rare race condition between GetColor and FixCastData.  As a
    CastBar is fading out we bounce back and forth between these two
    functions.  When the calculation of the alpha gets to or below zero then
    the bar should be hidden.  GetColor would remove the cast_data and stop
    the timer frame but not clear the frames.  As a result the CastBar
    would be stuck.  Really, the GetColor function should not be deleting
    entries in cast_data, that should always happen in FixCastData.
    - Remove a parameter from a function call that was never needed.  Oops.
    - Fix Ticket #730: Fix deficit bars.
    Can't avoid clamping to 0 and 1 and then storing it and then claimping
    again for EPSILON and 1.  If we only clamp to EPSILON then we end up
    with zero values calculated which create bars of an indeterminite width.
    - BetterStatusBar was not clamping the extra value properly.
    When both the value and the extra value was 1 then we wouldn't clamp the
    extra value before setting it because 1 - extraValue resulted in 0 and
    we'd clamp between 1e-5 and 0./
    - Fix Ticket #728: Error in BetterStatusBar
    BetterStatusBar didn't deal with NaN being passed to it, e.g.
    StatusBar:SetValue(0/0).  It now treats this as zero.
    - Fix Ticket #726: PetHeaders being used on non-pet based groups.
    If you copy a group that was setup to use the pet header (Leave gaps for
    pets) then this setting would be copied and applied to non-pet groups.
    So if you copied a pet group and tried to make a raid then only raid
    members with pets would be shown.
    - Fix Ticket #549: Target highlights not always working.
    This module had a number of logic problems with it.  It had a mix of
    multiple design patterns that we use in PB4 modules.  Some parts of it
    assumed that the highlight was only on the frame when it was shown and
    some parts tried to hide and show the frame.
    
    Includes a slight optomization, as the color for the highlight is now
    only set on frame creation and the configuration code nows finds all the
    highlight frames and changes their colors when the config changes.
    
    The standard method of operation now for this module is to leave the
    Highlight frame in existance unless the module is disabled for the
    layout or the frame is entirely torn down.  The frame will be made on
    demand when it is first needed.
    - Allow for fader modules to have priorities less than the default.
    - Ticket #719: Add a priority system to the fader module system.
    Fader modules can now return an optional priority parameter as the 2nd
    return from their GetOpacity function.  If no priority is returned then
    it will be treated as priority 0.  The lowest opacity of the highest
    priority module will be used.  This allows modules to be written to
    force the opacity to be higher instead of simply lower.
    - Just call the Focus frame Focus in LuaTexts like the rest of PB4.
    We were using Focus-target as DogTags was using.  But this is terribly
    confusing when there is a Focus' target frame.
    - Convert the mouseover handling for LuaTexts to events.
    This is far more efficient since it's not updating on a polling basis.
    - Fix the show overheal option for the VisualHeal module.  It was always
    using the setting for the currently selected layout in the config section
    regardless of the layout for the frame.
    - Avoid an error in showing the FocusFrame since blizzard removed
    FocusFrame_Update()
    - Allow groups that were previously deleted during the current session to
    be recreated without requiring a reload/logout before they'll work.
    - Fix Ticket 643: Latency bar disappears if attempting to cast while
    already casting.
    
    UNIT_SPELLCAST_FAILED_QUIET shouldn't be watched for the CastBarLatency
    module.  It's only fired for situations that aren't interesting to the
    CastBarLatency module.
    - Tooltip option should disable and show as being set to Never if
    click-through is set on the frame since click-through won't allow
    us to detect the mouse is in the frame.
    - Fix some slopy implementation in the Unit and Caster Aura filter types.
    In particular known and unknown make no sense in the context of the Unit
    filter type and known and unknown should take no unit parmeter.
    - Always set the minimum width and height on the group header.  Prevents
    the positioning of group frames from being wrong after resizing the
    frames.
    - Aura filter update to support 3.3.3.
    - Revert "Make the Aggro module function when run in an unpackaged format."
    This reverts commit 5a648e4b0fa5b9a8270a6fa107d0dc3186a99bed.
    
    This was drycoded based on a report from ckknight.  It's not necessary
    and was causing errors.  Fixes ticket 708.
    - Split the Highlight filters for dispellable debuffs and extra friend
    debuffs.  The combination of these into one filter caused you to always
    to color the highlight by debuff type or a custom color.
    - Allow the Aura filters used for Highlights access to the consolidate and
    spell id filter types for frames that aren't showing auras but do have
    a highlight configured.
    - Ticket 707: Show buffs and debuffs cast by your vehicle in the default
    aura filters.
    - Ticket 504: Allow the Strata to be configurable.
    Adds Strata and Frame level options to the layout editor under General.
    - SetHorizTile and SetVertTile calls replace the use of
    SetTexCoordModifiesRect.
    - Fix Ticket 686: Addons registering media with SharedMedia that are
    loaded after PitBull4 and/or it's modules would not be used until the
    next normal update was triggered.  This commit forces an update when
    relevent media is registered to the relevent elements so that they will
    use the proper media regardless of load order.
    - New fix for Ticket 326 that's less hackish.  Does more work on startup
    but has no presistent overhead.
    - Revert "Fix ticket 326 et al: Border on player/pet frame doesn't show on login"
    This reverts commit a4434cd2a8a77cb2bb8dbfb44563332e20583c28.
    
    Changing to handle this in a different way.
    - Fix some improper behavior with CastBar backgrounds and add an option to
    show the background when nothing is being cast to satisfy ticket 705.
    - Fix Ticket #704: PTR error due to removed function.  Without extra stuff
    this time.
    - Revert "Fix Ticket #704: PTR error due to removed function."
    This reverts commit a577e558bff77a801c6f988d5a959c44e9333e3d.
    
    Due to accidentally commiting a lot of other unrelated stuff.
    - Fix Ticket #704: PTR error due to removed function.
vangual:
    - Also consider GCD in Latency.
    - Added optional queue display to Latency module. Please test and let me know if the default values work for you aswell. (Based on data from EJ)
Shefki:
    - Fix error that occurs in some rare cases while loading.
    - Hmm so I guess somehow a text can exist without the events table.
    - Fix an error in LuaTexts default Health texts.  The wrong event was
    used.  This fix includes code that walks the saved variables and fixes
    the event problem, essentailly renaming UNIT_HEALTHMAX to the proper
    UNIT_MAXHEALTH.
Cameron Knight:
    - Add per-unit font size multipliers, allowing you to (for instance), make your pet unit half the height and then decrease the font size appropriately so it all fits.
    - Fix what appears to be a typo
Shefki:
    - Allow pet groups to optionally not leave gaps for missing pets.
    - Remove some code duplicated by putting a deep_copy in Utils.
    - Make GetState() return the current state accounting for forced_state.
    - Code to support the state to be set manually.  No UI provided yet.
    Though it can be don with something like:
    PitBull4.StateHeader:SetAttribute("forced_state","raid25")
    or
    PitBull4.StateHeader:SetAttribute("forced_state",nil)
    
    First one would force PB4 to believe it's always in raid25 mode and the
    later would put it back into the existing automatic behavior.
    - Stop the Portrait from flashing on state changes since the background
    wasn't being hidden.
    - CombatText needs an OnHide method so the text won't flash during state
    changes after being in config mode.
    - Annother assertion to help me track down issue 475.
    - Fix an assertion error caused by the power colors used in the Airship and Saurfang
    encounters.  Blizzard's own numbers were out of bounds.
    - Ticket 684: Aura filter based on combat.
    Based on patch by enyim.
    Note: Using this filter forces polling of auras.  It may not be
    desireable for large numbers of frames.
    - Ticket 682: Warlock self buffs filter update.
    Based on patch from Niightblade.
vangual:
    - Ticket #611: Add VisualHeal option to clamp overheals.
Shefki:
    - Add support for some non-standard power types having their own color
    configuration as used in Ulduar and Icecrown Citadel.
    - Ticket #360: Tooltip Toggle.
    - Ticket 671: Remove aura id doesn't work.
    - Fix a typo in the description on the New id control in the Spell id
    filter.
    - Ticket 672: Aura filter controls missing order parameter, end up sorted
    by the localized name.
    - Ticket 666: Visual heal fails to anchor properly with defecit bars.
    - Ticket 673: Profiles broken because ckknight fails to test his code.
    In particular you can't LoadAddOn in the main chunk because that forces
    OnInitialize to end up being called before the SVs are ready.  So use an
    OptDeps, LoadAddOn in OnInitialize and put the LibStub in ADDON_LOADED
    where it belongs.
    - Ticket #667: Deleted groups show up again in subsequent config mode
    entries until the next reload.  They should be disabled before being
    hidden.
    - Add Should consolidate and spell id filter types to the Aura filter
    system.
    - Use AnyUp for the Clicks we capture since it's what we really want
    rather than listing all of the possible values.
Cameron Knight:
    - try to Load the addon LibBossIDs-1.0 if it isn't loaded already. Note: not going to add LibBossIDs-1.0 as a proper dependency or put it in PB4 embedded, as it's mostly just nice fluff and we don't want to bloat up PB4.
    - Add support for LibBossIDs-1.0 for classification checks, so that non-worldbosses will show up as bosses based on their MobID.
Shefki:
    - Make the Aggro module function when run in an unpackaged format.
    - Ticket 645: OH temporary weapon enchants bug out due to a typo.
    - Ticket 644: Full Body Portraits not always proper zoom.
    - Fix typo in the TOC that messes up the addon list title for role icon.
    - Ticket 640: Add ulic's RoleIcon module.
    - Ticket 648: Add Haunt to Warlock enemy debuffs.
    - Ticket 656: Wrong default state in toc file caused LOD loader to reverse
    enabled state.
    - Commit the .pkgmeta changes I forgot to commit when I replaced
    VisualHeal with VisualHeal4.
    - Replace the VisualHeal module that used LibHealComm-3.0 with the 4.0 one
    that was experimental.
    - Bump TOC for 3.3.0
    - Workaround for the You are not in a party stuff.
    - Oops called the wrong update function which broke the ability to disable
    VisualHeal4 per layout.
    - Ticket 606: Groups that were enabled and then redisabled during a single
    session would not get their state map updated and would show again on
    the next state change.  Most of the complaints were about party pets,
    but it was universal to any group.
    - Fix spell id for Chains of Ice for PTR, but backward compatabile with
    3.2.x as well.
    - Oops forgot to updated the load.xml for VisualHeal4 with the correct
    libraries.
    - Fix some .pkgmeta syntax errors
    - Add a module with experimental LibHealComm-4.0 support.
    - Ticket 297: Anchor text so it doesn't hang over the edge when set to
    position on the edges of the unit frame.  This makes the text anchor
    slightly different than indicators placed in the same place since they
    will be centered on the corner.
    - Not sure what the heck I was thinking when I did this.
    Revert "Allow Party frames to be shown when in a raid per the Show when options"
    
    This reverts commit 4ad10da05c73d28d33d170dfc0485506d45228c7.
    - Fix typos in RangeFader that broke long enemy range tests for Shaman and
    Warriors.
    - Allow Party frames to be shown when in a raid per the Show when options
    under filtering.
    - Fix Unholy Blight in Aura filters, was changed in 3.2 and got missed.
    - Properly enable/disable some spells based on player race from filters.
    - Add Blood Corruption for B.Elf Paladins and make Holy Vengeance be
    alliance Paladin specific.
    - Remove the filter for just Vengeance, no idea how we got this but it was
    an NPC ability not a Paladin ability.
    - Typo in the spellid for Seal of Corruption.
    - Aura filters: Seal of Vengeance is alliance only and Seal of Corruption
    (horde version of Seal of Vengeance) was missing entirely.
    - More appropriate hat for the day.
    - Try and load LibHealComm if VisualHeal is enabled, also for dev
    enviornments.
    - Try to load LibBanzai when the Aggro mdoule loads for dev environments.
    - Don't set hooks if the module is disabled.
    - Small performance improvement with the Portrait module.
vangual:
    - Don't query Banzai when it's not loaded.
Shefki:
    - Add Hunger For Blood to Rogue Self Buffs.
    - Fix a case where I missed or UNKNOWN which caused SmartRace() to return
    nil sometimes.
    - Move the include player checkbox to the end of the General tab under
    Groups and make it a double wide control.  This should stop the panel
    from shiting around as much and allow the full name for the checkbox
    to be displayed.
    - Widen the Range check method drop down for localization reasons.
    - Make text refering to temporary weapon enchants consistent.  We had
    Weapon auras, Weapon buffs, and Weapon Enchants.  Using Weapon
    enchant(s) everywhere now.
    - Ticket 595: Fresh installs were not initializing properly.  Fix this by
    making sure modules always get OnNewLayout called for every layout even
    ones that were "new" to the session before they were loaded.
    - Switch Aggro module to using OnModuleLoaded from the hooks and timers it
    was before.
    - Add a new callback OnModuleLoaded for mdoules to know when another
    module has loaded.
    - Fix a long standing quirk in the Texts attach to/location configuration.
    When you changed between attaching to the unit frame and a bar the
    location list changed but the current setting would remain one that
    wasn't on the list so the drop down would just be empty and the text
    would either remaining in the old place or disappear.  The location
    now changes to a valid option when the attach to invalidates the
    current setting.
    - Ticket 456: RangeFader check for visiblity.
    - Ticket 583: Improved options for the RangeFader.
    - Ticket 434: Rework Aura Borders to allow more configuration.
    Fair warning: This will put all your Aura coloring and border options
    back to default.
    - Fix a bug where Portraits for out of range units didn't fallback
    properly and ended up showing the last displayed unit's full body.
    - Ticket 593: Discrepency between localization system and string in code.
    - Ticket 592: Modules that are enabled per PB4 config but disabled per
    Blizzard configuration were not showing in the module list in game.
    - Load modules in OnProfileChanged so they can be loaded on demand for
    profiles that have them enabled after being on a profile that had them
    disabled.
    - Workaround an issue with load on demand modules and AceDB-3.0
    - Add support for oRA3 and some minor refactoring of the main tank and
    ADDON_LOADED code to help support it.
    - Update hooks for Aggro module when other modules load on demand.
    - Change the reason string a tad for modules that are disabled.
    - Oops helps when you return the format instead of just one of the
    strings.
    - Make the Modules section turn off the checkbox to enable modules we
    can't load and provide text to explain why.
    - Add error handling/reporting for trying to load on demand modules.
    - Fix typo that's breaking the CombatFader from loading on demand.
    - Fix Aggro module to properly work when being loaded on demand.
    - load.xml was missing from HostilityFader, I'd missed committing it.
    - Somehow I missed CombatFader and Highlight in the move-folders.
    Packages should be correct now.
    - Fix the case error in the git path names of the toc files.
    This should fix the packaging problem.
    - Revert "Hmm try moving move-folders up and seeing if that fixes the toc files"
    This reverts commit 156b95e90e2cd54e07b6588006c82f6f578d0fc2.
    - Revert "Temporarily remove the localization stuff from Aura to see if that gets"
    This reverts commit 7cfb12dc5bccef2567b410278467fdb107702b7b.
    - Temporarily remove the localization stuff from Aura to see if that gets
    the pkackager to move the TOC files.
    - Hmm try moving move-folders up and seeing if that fixes the toc files
    not being moved.
    - Oops left the PitBull4/ off the start of all the folder moves
    - Remove LibDogTag, LibBanzai and LibHealComm for OptDeps on the main
    addon.
    - Shift packaging to split modules for full LoD support.
    - Workaround another related issue to ticket 475.
    - Fix Portrait module errors in config mode.
    - Add the appropriate OptDeps for Aggro, DogTagTexts and VisualHeal
    modules.
    - Load modules before creating the initial frames.
    - Move LibHealCom into VisualHeal module.
    - Move Banzai library into Aggro module.
    - Entirely replace the state code for hiding and showing groups.  This
    adds 5,15 and 20 man raid modes.  The recently added "Small raid as
    party" checkbox is gone.  You will very likely need to adjust the Show
    when settigns for your groups.  This change also changes the meaning
    of the checkboxes slightly.  Previously they would condider what groups
    players were in.  Now they only consider the number of players in the
    group.  If you have multiple groups for the same raid that are intended
    to all be shown at the same time, you should simply check all the Show
    When boxes, they are intended for people that want entirely different
    raid setups for different sizes.  Ultimately, the fruit of these
    changes is raid and party changes in combat will still change the
    setup.  This includes logging in while in combat.
    - So hopefully this really fixes the oRA main tanks updating when logging
    in.  It should work probably 99% of the time.  It will not be able
    to restore the main tank list when logging in during combat because the
    MT list module for oRA doesn't load until you join a raid and you're in
    combat by the time you know that you're in a raid.  As soon as you leave
    combat it should pickup the main tank list though.
    - Avoiding starting the cleanup timer for GroupHeader configuration
    changes that temporarily hide the frame.
    - Make sure to remove existing timers for the delayed cleanup when we
    start a new one.
    - Remove LibDogTag and LibDogTag-Unit from the main libs.xml they're under
    DogTagTexts.
    - Add some defaults for bar provider modules that I should have added when
    I brought their support up to par with bar modules.
    - Better fix to deal with MT frames getting set properly when loading in
    with oRA2 (sigh at them not generating an event and silently loading
    the tank list from saved variables).
    - Shift the LibDogTag embeds into DogTagTexts in preparation of packaging
    the modules as LoD.
    - Ticket 585: Workaround a similar error to ticket 475.
    - Turns out zhCN doesn't have 3.2 yet so roll this back for now. *sigh*
    Revert "Eliminate our own class localizations in favor of the included Blizzard"
    
    This reverts commit e14c1462b1f1156d222220a9f529fe4c63b514a5.
    - Debug assertion to try and help me track down the actual cause of 475.
    - Prevent errors in config mode for frames that we end up unable to
    create fake unit ids for.
    - Workaround for 475, doesn't fix the root cause but will prevent the
    errors from occuring.
    - Revert "Debug code to help try and trace ticket 475."
    This code is no longer providing additional data to help track down
    the issue.  I have enough now from this area.  Non reason to leave
    this performance drag in.
    
    This reverts commit 4020065063dbe5fcdd38aa978be1fbe75be46654.
    - Ticket 336: Change the Lock frames checkbox to a dropdown that allows
    you to choose if the frames will snap while unlocked or not.  Also
    allow you to shift right-click the minimap icon to toggle frame
    snapping.
    - Ticket 510: Allow 5 man raids to be treated as raids.
    - Stop the comparison with nil errors from BarModules.lua
    - So apparently cast_id is always zero for NPCs casts.  So we can't throw
    away casts with a zero cast_id.  Oops.
    - Prevent out of bounds alpha values from being passed through to
    BetterStatusBar.
    - Ticket 509: CastBar colors for competed and failed casts.
    - LuaTexts: Use the cast_id to match up events to the cast we're displaying.  This
    should prevent failure messages from showing for casts that are blocked
    by the current cast.
    - Oops the cast_id wasn't actually being set to the cast_id in LuaTexts.
    - Make the cast_id and interruptible state of casts available to LuaTexts.
    As cast_id and interruptible in the cast_data table returned from
    CastData().
    - Ticket 509: Castbar colors for casting, channeling and
    interruptible/not-interruptible.  Based largely on patch from Vangual.
    - New bar coloring options should be disabled when the bar is disabled.
    - Ticket 286: Allow bars to be colored  by pet happiness.
    - Rename BarModule.lua to BarModules.lua for clarity.
    - Delete the old no longer used BarProviderModule.lua
    - Merge the BarProviderModule.lua into BarModule.lua so that bar and
    bar_provider can share some of the code that they're duplicating right
    now.  This also means that bar providers gain some fixes and
    functionality that previously only bar modules had (icons, background
    color, and alpha mixing).
    - Add the HostilityFader module.  Useful for fading out mind controlled
    group members.  The RangeFader for some classes did this in PB3 but it
    was more of a sideffect than deliberate.  I came to like it though.
    - Add option to Caster and Unit filter types to detect if the caster is
    known or unknown.  To allow filters to deal with debuffs where the
    caster is not known.
    - Make the description for Color by hostility more clear that it only
    applies to player characters.
    - Fix a typo that stops color npcs by hostility from working.
    - Small correctness fix has no real impact.
    - Avoid some unnecessary layout work caused by the Portrait module.
    - Another indicator module that's partly broken because I didn't realize
    it had a custom UpdateFrame() function so it needs Show() calls added.
    - Ticket 546: ComboPoints not showing after deselecting target.
    - Eliminate our own class localizations in favor of the included Blizzard
    ones with 3.2 (LOCALIZED_CLASS_NAMES_MALE and
    LOCALIZED_CLASS_NAMES_FEMALE)
    - The unfilled part of the CastBar should fade out along with the filled
    portion.
    - Shift UNIT_FACTION support for bars out of the specific bars and into
    the core to allow color changes for the now generic hostility coloring.
    - Ticket 562: Vehicle swap stuck when zoning out of an instance removed
    the vehicle.
    - Well not too terribly bad for drycoding.  Fix the stuff I missed when
    working on the plane.
    - Drycoded rework of the coloring system for bars.  This allows any bar to
    be colored by class or hostility.
    - Ticket 547: Master Looter icon on frames other than party/raid.
    - Ticket 547: Leader icon on frames other than party/raid frames.
vangual:
    - Proper fix for WorldMap bug (#539)
    - Workaround for Worldmap issue occasionally making totem timers partly disappear.
Shefki:
    - Rename the HL: filters to Highlight: since we expanded the box and it'll
    fit now.
    - Remove the Clique workaround, as long as you're on WoW 3.2 and using
    r125 or newer of Clique this is no longer necessary.
Cameron Knight:
    - load modules on OnEnable (i.e. PLAYER_LOGIN) instead of ADDON_LOADED
Shefki:
    - Bump TOC for 3.2
    - In retrospect it's better to force the bar modules to provide their own
    config for the custom_extra colors since most of them don't use extra
    bars and Extra means nothing to players.
    - Allow modules to override the order of their options.
    - Oops background alpha from modules should mix with the right alpha
    config option.
    - Ticket 492: Add the ability to configure the extra bar color.
    - Remove duplicate alpha code.
    - Use the proper function to set the bar alpha.
    - Bring the GetBackgroundColor() function in line with GetColor().
    - Combine the module provided alpha with the configured alpha rather htan
    just using the alpha from the module.  Let's modules fade the alpha
    starting from the configured alpha (e.g. CastBar when the cast is done).
    - Properly use the empty opacity for the background alpha on bars.
vangual:
    - Small sanitycheck for possible scaling error.
Shefki:
    - Display should be wrapped for localization.
    - Fix the text and the width on the VisualHeal color options.
    - Widen some more dropdowns that need it for translated strings.
    - Widen the filter dropdowns so they can contain the filter names without
    clipping.
    - Allow smooth fader updates to be disabled.
    - Need timerFrame to be made before RecheckAllOpacities.
    - Turn the timer for faders on and off as needed instead of constantly
    running.
    - Use the trade range to short-circuit range testing rather than follow.
    Trade is 11.11 yds, follow is 28 yds and some abilities are 20-25 yd
    ranges (Cyclone, Intervene, etc)
    - Ability to Range Check for Warriors and Rogues.
    - Friendly range check for DeathKnights.
    - Friendly range check for Mages.
    - Pet and Friendly range checks for Warlocks.
    - Add Judgement of Light to the range check for Holy Paladins.
    - Pass nil for the alpha for the Aggro modules hook of the HealthBars'
    GetColor() function.
    - Finish putting alpha support back in for bar modules GetColor functions.
    Bar modules should pass nil for the alpha unless they desire to override
    the layout full and empty opacity settings.  If a custom color is used
    the alpha from the the layout settings or the modules return will be
    used.  So there are still no alpha settings on custom colors.
    - Put the alpha return back in the GetColor() functions for bar modules.
    (part3)
    
    Revert "Remove alpha from the custom color configs and color apis for bars."
    
    This reverts commit e01aeeda81ecaed0f6f52d29f911e9ca908ce437.
    
    Conflicts:
    
        ModuleHandling/BarModule.lua
        Options/LayoutEditor/Bars.lua
    - Put the alpha return back into the GetColor functions for bar modules
    (part 2)
    
    Revert "Remove an unnecessary return that I missed when I removed the alpha"
    
    This reverts commit 0de1208c85392877f85798353c6d763f631c2d11.
    - Put the alpha return back into the GetColor() functions for bar modules.
    Revert "Fix Ticket 451: Errors with custom color for BlankSpace.  In particular"
    
    This reverts commit de5d1953b84ea70c8ebe994d8df0463e41559629.
    - Ticket 532: Workaround for a Blizzard bug that causes Aura tooltips to
    show wrong.
    - Ticket 523: Border doesn't update for classification changes.
    - Ticket 525: Health Bar color wasn't updating for hostility changes.
    - Fix a place where we used IsShown() when we should have used
    IsVisible().
    - Totems really doesn't use AceConsole no reason for it to be a mixin.
    - Put the enable checkbox back.  The fact that there is an Enable and a
    None in the drop down is less than elegant.  But it works for now.
    - Vertical bars should respect Bar padding on their top and bottom.
    - Make the Aggro module deal with the states of the other modules it uses
    to display the aggro better.  Also fixes ticket 329.
    - Allow all modules to remove options provided by the module templates.
    - Ticket 335: Aggro module doesn't work for HealthBar when HealthBar has a
    custom color.
    - Oops, use the right description string for the last commit.
    - Ticket 518: Tooltip for HappinessIcon module.
    - Make the default group actually be the Party group in the config dialog.
    If the Party group doesn't exist it'll just be a randomly selected
    group.
    - Ticket 465: Misplacement of text following a blank text.
    - Replace Class: Short with code that only shows the class and rename the
    old Class: Short to Class: Short level and race.
    - Ticket 512: Dropdowns too narrow to fix text.
    - Ticket 515: Fix disappearing rune indicator.
    - Debug code to help try and trace ticket 475.
    - Ticket 457: CastBar disappears after opening the WorldMap and closing
    it.
    - Missed some spots  for the previous change for the CastBar.
    - CastBar: Turn the timer on and off as needed rather than running all the
    time and checking if needs to do work.  Should improve performance
    slightly when nobody is casting.
    - Remove text justification from the overlapping text code.
    - Final work on text justification.  Multiple texts in the same anchor
    point should now be justified properly.
    - Ticket 514: EnableMouse is protected and needs to be done out of combat.
    - Hide the options when the HideBlizzard module is disabled.
    - Fix a logic error that made HideBlizzard hide all the blizzard frames
    when disabled.  When it really should leave them hidden.
    - Fix duplicate calls to MaxPower in two prebuilt LuaTexts codes.
    - First pass at setting text justifications.  Only justifies the
    first text in a given anchor location.
Cameron Knight:
    - change _G.expect to instead be PitBull4.expect so that it doesn't pollute the global namespace.
Shefki:
    - Ticket 505: Outside Left anchors not moving the proper direction for the
    margin.
    - Ticket 503: VisualHeal module not properly dealing with multi-target
    heals.
    - Ticket 490: Config mode doesn't respect CastBar's show icon
    configuration.
    - Use the proper config value to pad in both directions for outside corner
    anchors.
    - Ticket 261: Inside bottom anchors were using padding in the opposite direction it
    should have been.
    - Small code cleanup on some of the event code.
    - Fix problems with pet frames not fully updating becuase not all the
    information is available when UNIT_PET fires.
    - Tab the Groups configuration for usability reasons.  People keep
    accidentally using the Unit group dropdown to try and change the current
    group.  This of course causes great confusion.
    - Aura Highlight should be removed when the frame is cleared.
    - Typo
    - Stop listening to UNIT_NAME_UPDATE for GroupHeaders.  Should prevent
    some performance stuttering issues in BGs caused by pets and spirit
    rezes.  Should also limit (though not eliminate) performance issues
    created by people using title rotating addons.
    - Hide the controls on the unit frames to when the frame is hidden to
    prevent flashing when unitsuffix frames are briefly showing from a
    SecureGroupHeader_Update() call.  This is a result of the group header
    not knowing that we're using the state driver to hide/show our frames
    and is doing it for us.  However, at the same time the group header
    is unaware of the unitsuffix and so it shows the frames becuase the
    parent unit exists.  This gets remedied when in the next OnUpdate
    call becuase the state driver hides them again.  However, in the
    between this the frame is briefly flashed.  Currently there is no
    solution to this short of removing the controls or hiding them.
    Request was made to provide an attribute to disable the group header
    from doing the showing for us.
    - Properly update frames after leaving config mode.
    - Use the proper spell id for Berserking now that there is only one spell.
    - Ticket 476: Visual Heal height/width not changing when HealthBar
    height/width changes.
    - Sometimes the bar isn't really a bar.  If so it may not have a bg of fg
    to use to anchor.  In which case just use the bar itself.
    - Change the default health text to Absolute and Percent.  Smart confuses
    people.
    - Stop creating units in advance for groups.
    - Need to protect for nil unit as may happen in config mode.
    - Force Clique into setting click casting attributes on group frames made
    in combat.
    - Remove OutOfCombatWrappers from some functions that shouldn't have them
    as they need to be run from the InitialConfigFunction.
    - Remove some dead code.  If this was to work it should have had a .
    instead of a : but it is entirely unnecessary anyway.  So removing.
    - Fixing the Show scripts makes this break.  We really have to show the
    GroupHeader before the frames are setup otherwise
    SecureGroupHeader_Update() is tripped and the frames will be hidden
    again.
    
    Revert "Speed up entering config mode by not showing the groups until they're"
    
    This reverts commit 3038a0d3a5f69bf6e9eed8da16dd8d773e0444b2.
    - GroupHeader:RefixSizeAndPosition no longer depends on frames being
    precreated.
    - Avoid an error reaping frames in deactivated GroupHeaders.
    - Make UnitFrame:ProxySetAttribute consistent with
    GroupHeader:ProxySetAttribute.
    - Use HookScript for UnitFrames as well rather than SetScript.
    - Properly use HookScript to setup the GroupHeader scripts so we don't
    overwrite the existing scripts from the template.  This removes
    the necessity for the header:Update() on main tanks changing.
    - Stop using ProxySetAttribute when the frame is hidden, it's pointless
    the Update isn't triggered anyway.
    - Stop calling SecureGroupHeader_Update directly, it causes taint.
    - Must use IsVisible to skip over hidden frames since inactive frames from
    other profiles in group headers will still be shown but not visible
    because their parent group header is hidden.
    - And a function leaked into the global namespace.
    - And another global variable leak.
    - Another global variable leak.
    - Fix a global variable leak.
    - Fix some positioning related issues where groups would move from where
    they were positionined in config mode when players actually entered
    the group.
    - Prevent groups from being stuck to the mouse while moving in some rare
    cases.
    - Ticket 459: Group frame positioning buginess after changing size of a
    layout.
    - Fix for frames getting stuck to the mouse while moving.
    - Get rid of the ugly gap in the background of the CastBar when the icon
    is shown and it's not set to auto-hide.  In the process end up
    simplifying some of the bar text layout code.
    - Add range check for offensive Shaman abilities.
    - Make the RangeFader know about resurrection spells and use them to range
    check dead units.
    - Hide/Show the minimap icon when the proflie changes accordingly.
    LibDBIcon:Refresh() does not do this for us. :(
    - Fix config dialog ghosting of some settings when changing profiles.
    - Fix the default texts to not adding a + to the delay for channeled spells
    since they are actually removing time from the channel.
    - If the first return for LuaTexts is nil set an empty text.  Allows some
    tags to be simplified such as:
    return Classification(unit)
    is now valid.
    - Hmm ok guess we have to actually force the update if we're in config
    mode.
    - Fix some weirdness in config mode where force shown frames would get
    stuck when losing their targets.
    - Fix a typo
    - Speedup for target of and target of target of frames.  Don't wait for
    the timer to catch these frames and fore an update if their parent
    frames updated.
    - Fix VisualHeal for cross realm players in BGs.
    - Fix cast texts when changing targets mid cast.
    - 3.2.0 compatability for LuaTexts.
    - Have to force DogTagTexts to update if the unit on a frame changes (e.g.
    the vehicle swaps).
    - Fix Ticket 461, Wacky Unit Cast Text.
    - HideBlizzard needs to update what is hidden when the profile is changed
    since the settings may very from profile to profile.
    - Improvements to the text provider system.  In particular:
    - Do not cause an UpdateLayout on every text provider UpdateFrame call.
      In order to do this config changes now remove all the texts and build
      new ones rather than trying to update this in place.  This allows
      the standard update system to assume a text is correct if it already
      exits.
    - For DogTagTexts only call AddFontString when we need to add a string.
      LibDogTag will check if the text needs to be reconfigured and if not
      simply update the text.  LibDogTag tracks it's own events and never
      needs to be prompted to update.  So this would cause texts to be
      updated multiple times for the same reasons.
    - For LuaTexts no longer remove texts from hidden frames.  But simply
      remove them from the update schedule.  When the frame is shown they
      will be rescheduled again.  This eliminates the need to UpdateLayout
      since before they were removed and rebuilt.  This however is not
      possible for DogTagTexts becuase there's no way to ask it to stop
      updating in place texts.
    These changes will result in large performance improvements for people
    using DogTags and modest improvements for LuaTexts.  LuaTexts still
    outperforms DogTags but only modestly now.
    - Make CombatText a tad more efficient by turning off the timer when it's
    not needed.
Cameron Knight:
    - Some tweaks to the right-click menu, including a line to replace Set/Clear focus explaining why it's not possible.
    - In order to at least prevent Set Focus from erroring, popup menus are screened for "blacklisted" actions, which currently include SET_FOCUS and CLEAR_FOCUS. These will no longer appear on PB4's menus (unless a real solution can be achieved)
    - fix figure_unit_menu to calculate NPC targets properly. It was changed to "TARGET" from "RAID_TARGET_ICON".
    - Flesh out the LoD handling. Add TOC files to all modules.
    - fix a typo, changed a function name and didn't change it another place.
    - forgot the ending @ on @localization@
    - add initial LoadOnDemand support (just loads LOD modules regardless of options). Add a toc for HealthBar, Localize the tocs.
Shefki:
    - Fix Ticket 450: Blizzard BuffFrame broken for Vehicles.
    - Put the PlayerFrame in the proper state when showing while in a vehicle.
    - Use the OnLoad scripts for the Blizzard frames to enable the events they
    need.  This will require little to no-maintenance to keep them working.
    - Emulate some events so the player frame looks properly when set to
    show after a fresh login.
    - Toggling the hiding of the RuneBar on a non-DK should not show it.
    - Fix Ticket 353: ReadyCheck icon missing from group frames in config
    mode.
    - Fix extra space in default Class code in LuaTexts.  You'll have to
    reselect from the drop down to get the updated code.
    - Fix Ticket 451: Errors with custom color for BlankSpace.  In particular
    the support code for alpha from the color selection needed to be
    removed like normal Bars.
    - Remove an unnecessary return that I missed when I removed the alpha
    code.
    - Remove some useless options from the config dialog for BlankSpace.
    - Fix the ordering of the color options in the config dialog for bars.
    - Fix ticket 413: Grey player health bar.
    Patch provided by Vangul.
    - Add a SeparateDigits helper function to LuaTexts.
    - Use wipe instead of clearing the table in lua.
    - Update the maintank list from oRA faster.  An optimizaiton broke this.
    - Add IsOffline(unit), IsAFK(unit) and IsDND(unit) helper functions to
    LuaTextx.
    - Provide access to the event that triggers the text to update with
    LuaTexts.  There is a variable in the ScriptEnv called event now with
    this info.  Texts that are just created will receive "_new" and texts
    updating due to implicit update reasons or timers will receive
    "_timer."  This should allow for caching of things like Auras and
    proper detection of combat lock downs.
    - Changing the profile will now enable/disable modules per the profile
    settings.
    - LuaTexts is the default text provider module now.
    - Fix the portraits reverting to full body mode when the frame is reused.
    - Fix missing Remove and Type controls after creating a new text.
    - Ticket 437: Text enable checkbox not functionining properly.
    - Make the determination if you're in a 10,25 or 40 man raid based off if
    anyone is in those groups not by current size.  This should allow it
    to scale appropriately based on what groups people in.  Should end
    complaints about people missing from raid groups.
    - Fix the delay calculation to properly spend 10 minutes cleary the frame.
    - Add some more possible tests for Unit and Caster Aura filters.
    - Add the Caster filter type.
    - Delay clearing frames in groups and never clear singleton frames.  Group
    frames will be cleared starting 5 minutes after you leave the group and
    will finish 15 minutes after you've left the group.  This will eliminate
    CPU churn from group members changing while in the group and from
    target, focus et al changing any other time.
    - Speed up entering config mode by not showing the groups until they're
    done being setup.
    - Go back to using PLAYER_TARGET_CHANGED but ignore UNIT_TARGET events for
    player.  Seems UNIT_TARGET requires a server round trip that makes the
    target frame laggy.
    - Ticket 400: Groups failing to update based on config while in config
    mode.
    - Offsets need to be reversed when the frame is mirrored.
    - Stop listening to UPDATE_MOUSEOVER_UNIT, PLAYER_PET_CHANGED and
    PLAYER_TARGET_CHANGED.  We're not using the mouseover unit and it's
    wacky so it doesn't help the other wacky frames.  PLAYER_PET_CHANGED
    is obsolete and is no longer even fired, UNIT_PET is though.
    PLAYER_TARGET_CHANGED doubles up with UNIT_TARGET.
    - Avoid an unnecessary extra call to UnitGUID()
    - Ticket 270: Allow bar texture to be reset to default.
    You were supposed to be able to reset it to default by setting it back
    to the same value as the default.  However, we weren't properly looking
    up what the defualt value was.
    (this time the correct changes for this commit)
    - Revert "Ticket 270: Allow bar texture to be reset to default."
    This reverts commit 64c67054f6e05fce1290e592f65a91cc495b6be1.
    - Ticket 270: Allow bar texture to be reset to default.
    You were supposed to be able to reset it to default by setting it back
    to the same value as the default.  However, we weren't properly looking
    up what the defualt value was.
    - Ticket 293: Alter the spacing range to allow negative spacing for bars.
    - Ticket 358: Toggle for vehicle swap.
    - Fix a bug in a function we're not even really using.
    - Aura text configuration should be disabled when the current text is
    disabled.
    - The unitid for the player's pet in party pet frames with include
    player's pet turned on is actually playerpet, damn you Blizzard.
    - Remove duplicate configuration for enable/disabling time remaining text.
    - Fix a typo in a string.
    - Allow the slider to go down to 30% for Aura font sizes.
    - Configuration for and improvements to texts on Auras.
    - Friendly colors should disable when set to use unfriendly colors.
    - Add in a default I missed comitting when i only committed part of the
    Options file.  Sorry.
    - Fix a typo.
    - Ticket 368: Allow frame level of auras to be set.
    - Ticket 356: Add options to color friendly auras by type.
    - Show tenth of a second precision for time left text timers on auras and
    use SetFormattedText() to avoid creating garbage.
    - Fix default LuaTexts to put something on empty texts when in config mode
    for the player frame.  In particular the castbar.
    - Fix error in LuaTexts Reptuation - Standard default code.  In order to
    get this applied to your config you'll have to go through and reselect
    the Reputation - Standard code from the drop down box for each Layout.
    - Bump the Interface number to 30100 and change to \n instead of \r.
    - Fix an error in the documentation for the
    call_background_color_function().
    - Remove alpha from the custom color configs and color apis for bars.
    This is already handled by the full and empty opacity configuration.
    - Ticket 163: Add custom background color option for Bars.
    - Ticket 418: Weird error with temporary weapon enchants.
    - Ticket 419: right clicking debuff removes buffs.
    - Ticket 238 et al.  Fix scaling problems with a large number of frames.
    Most notable with Texts and ManaSpark.
    - Stop treating raidpet units as wacky.  We really do get events.  Should
    improve performance.
    - Add a text for the PVPTimer in the default config for both DogTag and
    LuaTexts.
    - Fix a reference to a function I was using for profiling.
    - Add ShortClassification, ShortRace and ShortClass
    - Minor localization fixes for LuaTexts.
    - Class function shouldn't be in global namespace.  Oops.
    - Spread wacky frame updates over the frames that occur between our update
    rate.  This theoretically improves perceived performance by removing
    jerkiness but in practice probably doesn't change much.  But it's a good
    idea anyway.
    - Don't update hidden frames on a timer.  Should be a very large
    performance upgrade in large raid groups.
    - Disable fast power updates in LuaTexts if predictedPower is off.
    - Fix a bug with PowerBar's not updating with predictedPower turned off.
    - Apply the same fix ckknight did to CastBar to LuaTexts.
Cameron Knight:
    - make :FixCastData() less likely to break with the invalid key for next issue
vangual:
    - Adding more Warrior selfbuffs and procs.
Shefki:
    - Make that 4 places we had PLAYER_REGEN_DISABLED trapped.
    Message for disabling config mode wasn't localized either, oops.
    - Seems unnecssary to register PLAYER_REGEN_DISABLED in 3 places.
    - Update HealthBar and PowerBar every OnUpdate.  In a strange way
    this should actually improve perforamnce, since we won't be updating
    bucketed events on a timer and they won't group up.
    - Fix Abbreviate.
    - Add AggroColor(unit), HPColor(cur,max), PowerColor(power_type),
    and ReputationColor(reaction)
    - Fix HostileColor to support checking PVP flags like it should have.
    - Add PVPDuration() function.
    - Fix typo in vehicle name support.
    - Fix the bug where Offline(0:00) shows up for people that are clearly not
    offline.
    - Don't run PARTY_MEMBERS_CHANGED once a minute but only the first time
    like I intended.
    - Fix a typo in MaxXP() and dump the unit == "playerpet" crap.
    - Any unit not just those in your party should get marked as Dead.  Oops.
    - Fix some bugs with FormatDuration() that we picked up from DogTags.
    Oops.
    - Fix typo in UNIT_SEPLLCAST_CHANNEL_STOP event name.
    Reselect: Cast - Standard time and Cast - Standard name in texts to
    fix in your own configurations.  It won't pick it up automatically. :(
    - Provide access to the timers via AFKDuration(unit), DeadDuration(unit)
    and OfflineDuration(unit).
    Allow scripts access to the already existing FormatDuration()
    - Add Abbreviate() to LuaTexts convenience functions.
    - Remove HasDivineIntervention().  Ended up being nothing but a wrapper
    for UnitAura().  Don't want to encourage the idea that I'm gonna replace
    all the DogTags that there's no point in doing so.
    - Oops add the missing load.xml for LuaTexts.
    - Tag cleanup in the defaults not just the presets.
    - Add the LuaTexts module.
    - Allow texts to be disabled individually.
    - Short does nothing for a Percent it should be Round(1)
    Remove some dead code.
    - Remove some dead code from the default DogTagTexts, health is always
    known exactly now.
    - Avoid some garbage collection by using :SetFormmatedText()
    - DogTagTexts isn't CombatIcon.
Cameron Knight:
    - on fontstring deletion, be sure to reset the font, so as to c

Additional Files