r20160421073404
Details
-
FilenameOakInterruptsDisplay-r20160421073404.zip
-
Uploaded by
-
UploadedApr 21, 2016
-
Size24.75 KB
-
Downloads64
-
MD50643d5dfd3b639dd751e1b637ddc7d63
Supported WoW Retail Versions
- 6.2.4
Changelog
Oakshlaran:
- Add basic ConfigMode support
- Add menu to displays
This update adds a button to the title bars of each display to popup a
menu to allow access to certain functionality, in order to avoid using
slash commands. The functionality included is:
- toggle locking of the display
- toggle rotatation/announce on/off
- share the rotation
This is accomplished with a new 'menu' module that handles constructing
and displaying the menu. Future enhancements to the menu module could
include moving away from EasyMenu, and removing the button in favour of
right-clicking on the title bar - this however requires a more involved
rewrite of display.lua turning the title bar into a button and then
reimplementing the drag behaviour.
issue: www.wowace.com/addons/oakinterruptsdisplay/tickets/5-buttons-for-common-actions/
- Fix bug when creating automatically named display
When creating a display without providing a name the flow of logic
resulted in nil values being used in places where the generated name
should have been used.
- Add ability to drag players between displays
Previously it was overly labour intensive to construct a list of a few
specific players as the user had to refill a list and then remove all
the players they didn't want from that list. Now palyers can be dragged
from one list to another (removing from the original list). New lists
still automatically fill, though this could be changed in the future
depending on UX feedback.
This feature works by checking if the display of a frame needs to be
switched (only when being dragged), depending on whether it overlaps
another display - when two displays overlap the chosen display is not
specifically defined (determined by the order from pairs()). In addition
the rearrange MouseUpdate function now returns a display if a new one is
chosen to inform the caller that the frame has switched display. When
the moving frame overlaps the current display a new one will not be
chosen, effectively meaning that when overlapping multiple displays, the
one the was overlapped first is used.
issue: http://www.wowace.com/addons/oakinterruptsdisplay/tickets/2-drag-interrupters-between-lists
- Fix empty rotation bug on entering/leaving combat
Previously a rotation list would go to highlight the first frame when
entering combat and unhighlight the next_index frame when leaving
combat, even if these frames didn't exist. Now a check that the list
isn't empty is run first to avoid this bug.
- Revamp rotation sharing message; improve announce
The previous rotation sharing message was hard to read and ugly. The
message was split into multiple lines, with a heading line. To
facilitate this the Announce function was changed to accept the channel
to print to so that the order is not shared to RAID_WARNING (when the
user can) as it wouldn't appear well in the middle of the screen.
- Fix announcing when dead
Previously when the user died, and they were announcing to YELL, they
would stop announcing, as you cannot yell while dead. To rectify this
we now test if the user is dead, and if so, switch to announcing to
party/raid.
- Disabled nolib creation
- Add saving of display settings
Previously, users would have to set up any displays everytime their UI
reloaded. This change has added the CharDisplays variable to save
settings between sessions. Currently saved settings are:
- position of a display
- rotation/announce flag
- locked flag
- grow direction
- autoinclude flag
When the user logs in displays are now created to replicate the
situation at the previous logout (though the lists are not populated),
with the one small caveat that the display's name (as returned by
GetName(), not the user chosen name) of the display may have changed.
Because of this the position settings are not saved via SetUserPlaced,
but are instead included in CharDisplays.
In addition some functions were moved and renamed in an effort to bring
a little more consistency to the structure of the code.
Known issues:
- If the user reloads during combat and drops combat while
reloading, a call to BGColor* can occur for a nil frame
issue: www.wowace.com/addons/oakinterruptsdisplay/tickets/1-save-display-list-settings/
- Add show/hide slash commands
Previously there was no way to hide a display, the user would have to
delete it and then recreate when it was needed again (so you would just
never hide it). To address this two new display interface functions were
added and slash commands calling them included. Additionally the
functions to create and close displays were renamed for consistency.
issue: www.wowace.com/addons/oakinterruptsdisplay/tickets/3-show-hide-list/
- Fix background when changing display direction
- Add background colouring functions; fix highlight bug
Previously when in combat, if a rotation list was edited (someone was
removed or the order rearranged) the highlighting of frames did not
update properly. Observed bugs were:
- if the next interrupter was removed, when that frame was reused by
the FramePool, it would still be highlighted
- if the order was rearranged incombat, the highlighting would not
update to reflect this
- when leaving combat, if the highlighting was desynced from the
rotation it would not unhighlight everything
To fix these issues general use background colouring functions were
added to display.lua intended to be used for all highlighting puposes.
The colouring of new interrupter frames was moved out of InitFrame (as
this function only fires when a new frame is created, not when reused)
fixing the issue of reused frames being highlighted and colouring of a
list is now done after rearrange.MouseUpdate which is when the
rearrangement of the order takes place.
- Fix rotation not updating properly when on cooldown
- Fixed bug occuring when 'polling' data field changes.
- Fixed bug introduced when updating dataobject spec to include 'polling'
- Rotation logic and lock/unlock combat flag bump.
- rotation now skips a player is they're disconnected
- lock/unlock combat flag is now case insensitive
- The combat flag for lock/unlock is now case insensitive.
- Bug fixes.
- Fixed interrupt rotation logic bug always jumping to person after
whoever used an interrupt
- Fixed bug when removing interrupter from a list
- Rearranged library inclusions; added .pkgmeta.
- Initial comming.