PitBull Unit Frames 4.0


Change log

    - Fix a bug in the defaults that prevented difficulty colors from updating after you leveled.
    UNIT_LEVEL needs to be handled for the player and for the unit on the
    unit frame.
    - Avoid a rare error related to load orders and LibDBIcon-1.0.
    - Style change to use capped variable for library name.
    - Oops forgot to make config mode respect the individual icon configs.
    - Add the ability to disable individual raid target icons per layout.
    - Fix an error when opening a bar providers config tab.
    I'd forgotten that bar providers module isn't in #info-1 but #info-2.
    - Add boss1-4 ass valid boss ids.
    Seems that Blizzard is generating events now for them on the PTR.
    - Fix filename for LibDualSpec-1.0 in embeded installs.
    - Ticket #604: Add support for Dual-spec profile swaps.
    - 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
    -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.
    - 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


Uploaded on
Jun 07, 2010
Game version
  • 3.3.5
451.6 KiB