diff --git a/Core/Config.lua b/Core/Config.lua index c77bd4a..464275c 100644 --- a/Core/Config.lua +++ b/Core/Config.lua @@ -4,6 +4,7 @@ local addonTable = select(2, ...) addonTable.Config = {} addonTable.Config.Options = { + ALWAYS_SHOW_CURRENT_CHARACTER = "always_show_current_character", SHOW_CHARACTER_RACE_ICONS = "show_character_race_icons", SHOW_INVENTORY_TOOLTIPS = "show_inventory_tooltips", @@ -35,6 +36,7 @@ addonTable.Config.Defaults = { [addonTable.Config.Options.TOOLTIPS_SORT_BY_NAME] = false, [addonTable.Config.Options.TOOLTIPS_FACTION_ONLY] = false, [addonTable.Config.Options.TOOLTIPS_CHARACTER_LIMIT] = 4, + [addonTable.Config.Options.ALWAYS_SHOW_CURRENT_CHARACTER] = false, [addonTable.Config.Options.SHOW_CHARACTER_RACE_ICONS] = true, [addonTable.Config.Options.SHOW_BLANK_LINE_BEFORE_INVENTORY] = false, [addonTable.Config.Options.SHOW_TOTAL_LINE_AFTER_CHARACTERS] = false, diff --git a/Locales.lua b/Locales.lua index 14dbd1b..caa4efb 100644 --- a/Locales.lua +++ b/Locales.lua @@ -30,6 +30,7 @@ L["SORT_BY_NAME"] = "Sort by name" L["SHOW_GUILD_BANKS"] = "Show guild banks" L["SHOW_EQUIPPED"] = "Show equipped" L["SHOW_CURRENCY"] = "Show currency" +L["ALWAYS_SHOW_CURRENT_CHARACTER"] = "Always show current character" L["SHOW_RACE_ICONS"] = "Show race icons" L["HIDE_IN_INVENTORY_TOOLTIPS"] = "Hide in inventory tooltips" L["SHOW_IN_INVENTORY_TOOLTIPS"] = "Show in inventory tooltips" diff --git a/Options/Initialize.lua b/Options/Initialize.lua index b547b26..c3c01d4 100644 --- a/Options/Initialize.lua +++ b/Options/Initialize.lua @@ -43,6 +43,11 @@ local TOOLTIP_OPTIONS = { { type = "spacing", }, + { + type = "checkbox", + text = addonTable.Locales.ALWAYS_SHOW_CURRENT_CHARACTER, + option = "always_show_current_character", + }, { type = "checkbox", text = addonTable.Locales.SHOW_RACE_ICONS, diff --git a/Tracking/Tooltips.lua b/Tracking/Tooltips.lua index 2066fb3..65a042a 100644 --- a/Tracking/Tooltips.lua +++ b/Tracking/Tooltips.lua @@ -150,8 +150,19 @@ function addonTable.Tooltips.AddItemLines(tooltip, summaries, itemLink) AddDoubleLine(addonTable.Locales.INVENTORY, LINK_FONT_COLOR:WrapTextInColorCode(addonTable.Locales.TOTAL_X:format(WHITE_FONT_COLOR:WrapTextInColorCode(totals)))) end - local charactersShown = 0 + local currentCharacter = UnitName("player") + local currentRealm = GetNormalizedRealmName() + local charactersToShow = {} for _, s in ipairs(tooltipInfo.characters) do + if addonTable.Config.Get(addonTable.Config.Options.ALWAYS_SHOW_CURRENT_CHARACTER) and s.character == currentCharacter and s.realmNormalized == currentRealm then + table.insert(charactersToShow, 1, s) + else + table.insert(charactersToShow, s) + end + end + + local charactersShown = 0 + for _, s in ipairs(charactersToShow) do local entries = {} if s.bags > 0 then table.insert(entries, addonTable.Locales.BAGS_X:format(WHITE_FONT_COLOR:WrapTextInColorCode(s.bags))) @@ -266,8 +277,20 @@ function addonTable.Tooltips.AddCurrencyLines(tooltip, currencyID) end tooltip:AddDoubleLine(addonTable.Locales.ALL_CHARACTERS_COLON, WHITE_FONT_COLOR:WrapTextInColorCode(FormatLargeNumber(quantity))) - for index = 1, math.min(#summary, addonTable.Config.Get("tooltips_character_limit")) do - local s = summary[index] + + local currentCharacter = UnitName("player") + local currentRealm = GetNormalizedRealmName() + local charactersToShow = {} + for _, s in ipairs(summary) do + if addonTable.Config.Get(addonTable.Config.Options.ALWAYS_SHOW_CURRENT_CHARACTER) and s.character == currentCharacter and s.realmNormalized == currentRealm then + table.insert(charactersToShow, 1, s) + else + table.insert(charactersToShow, s) + end + end + + for index = 1, math.min(#charactersToShow, addonTable.Config.Get("tooltips_character_limit")) do + local s = charactersToShow[index] local character = s.character if appendRealm then character = character .. "-" .. s.realmNormalized