Commit 9c78d7b2 authored by TOM_RUS's avatar TOM_RUS
Browse files

WOW-29558patch8.1.5_PTR

parent 353508d7
......@@ -92,6 +92,20 @@ local PlayerLocation =
{ Name = "isConnected", Type = "bool", Nilable = true },
},
},
{
Name = "UnitIsSameServer",
Type = "Function",
Arguments =
{
{ Name = "playerLocation", Type = "table", Mixin = "PlayerLocationMixin", Nilable = false },
},
Returns =
{
{ Name = "unitIsSameServer", Type = "bool", Nilable = false },
},
},
},
Events =
......
......@@ -29,6 +29,15 @@ local PvpInfo =
{ Name = "canTogglePvPInArea", Type = "bool", Nilable = false },
},
},
{
Name = "GetActiveBrawlInfo",
Type = "Function",
Returns =
{
{ Name = "brawlInfo", Type = "PvpBrawlInfo", Nilable = true },
},
},
{
Name = "GetArenaCrowdControlInfo",
Type = "Function",
......@@ -75,7 +84,7 @@ local PvpInfo =
},
},
{
Name = "GetBrawlInfo",
Name = "GetAvailableBrawlInfo",
Type = "Function",
Documentation = { "If nil is returned, PVP_BRAWL_INFO_UPDATED event will be sent when the data is ready." },
......@@ -629,9 +638,8 @@ local PvpInfo =
{ Name = "name", Type = "string", Nilable = false },
{ Name = "shortDescription", Type = "string", Nilable = false },
{ Name = "longDescription", Type = "string", Nilable = false },
{ Name = "active", Type = "bool", Nilable = false },
{ Name = "canQueue", Type = "bool", Nilable = false },
{ Name = "timeLeftUntilNextChange", Type = "number", Nilable = false },
{ Name = "lfgDungeonID", Type = "number", Nilable = false },
{ Name = "brawlType", Type = "BrawlType", Nilable = false },
{ Name = "mapNames", Type = "table", InnerType = "string", Nilable = false },
},
......
......@@ -35,52 +35,6 @@ local QuestLog =
{ Name = "maxNumQuestsCanAccept", Type = "number", Nilable = false },
},
},
{
Name = "GetNextWaypoint",
Type = "Function",
Arguments =
{
{ Name = "questID", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "mapID", Type = "number", Nilable = false },
{ Name = "x", Type = "number", Nilable = false },
{ Name = "y", Type = "number", Nilable = false },
},
},
{
Name = "GetNextWaypointForMap",
Type = "Function",
Arguments =
{
{ Name = "questID", Type = "number", Nilable = false },
{ Name = "uiMapID", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "x", Type = "number", Nilable = false },
{ Name = "y", Type = "number", Nilable = false },
},
},
{
Name = "GetNextWaypointText",
Type = "Function",
Arguments =
{
{ Name = "questID", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "waypointText", Type = "string", Nilable = false },
},
},
{
Name = "GetNumQuestObjectives",
Type = "Function",
......
......@@ -98,6 +98,11 @@ local SocialInfo =
Type = "Function",
Documentation = { "Not allowed to be called by addons" },
},
{
Name = "TwitterDisconnect",
Type = "Function",
Documentation = { "Not allowed to be called by addons" },
},
{
Name = "TwitterGetMSTillCanPost",
Type = "Function",
......
......@@ -2,4 +2,5 @@
## Title: Blizzard Auth Challenge UI
## Secure: 1
## LoadOnDemand: 0
## AllowLoad: Both
Blizzard_AuthChallengeUI.xml
......@@ -40,6 +40,7 @@ end
function AzeriteRespecMixin:OnHide()
PlaySound(SOUNDKIT.UI_80_AZERITEARMOR_REFORGE_ETHEREALWINDOW_CLOSE)
StaticPopup_Hide("CONFIRM_AZERITE_EMPOWERED_RESPEC");
StaticPopup_Hide("CONFIRM_AZERITE_EMPOWERED_RESPEC_EXPENSIVE");
C_AzeriteEmpoweredItem.CloseAzeriteEmpoweredItemRespec();
self:SetRespecItem(nil);
end
......@@ -59,9 +60,15 @@ function AzeriteRespecMixin:GetRespecItemLocation()
return self.respecItemLocation;
end
local SHOW_EXPENSIVE_WARNING_THRESHOLD = 1000 * COPPER_PER_SILVER * SILVER_PER_GOLD;
function AzeriteRespecMixin:AzeriteRespecItem()
local item = Item:CreateFromItemLocation(self.respecItemLocation);
StaticPopup_Show("CONFIRM_AZERITE_EMPOWERED_RESPEC", item:GetItemLink(), nil, {empoweredItemLocation = self.respecItemLocation, respecCost = self.respecCost});
local data = {empoweredItemLocation = self.respecItemLocation, respecCost = self.respecCost};
if self.respecCost >= SHOW_EXPENSIVE_WARNING_THRESHOLD then
StaticPopup_Show("CONFIRM_AZERITE_EMPOWERED_RESPEC_EXPENSIVE", item:GetItemLink(), nil, data);
else
StaticPopup_Show("CONFIRM_AZERITE_EMPOWERED_RESPEC", item:GetItemLink(), nil, data);
end
end
function AzeriteRespecMixin:UpdateAzeriteRespecButtonState()
......
......@@ -78,11 +78,13 @@ function AzeriteEmpoweredItemPowerMixin:OnFinalEffectUpdate(elapsed)
end
function AzeriteEmpoweredItemPowerMixin:SetupModelScene(forceUpdate)
self.ClickEffect:Hide();
self.clickEffectActor = AzeriteModelInfo.SetupModelScene(self.ClickEffect, AzeriteModelInfo.ModelSceneTypePowerClick, forceUpdate);
if self.clickEffectActor then
self.clickEffectActor:SetAnimation(0, 0, 0, 0);
end
self.CanSelectEffect:Hide();
AzeriteModelInfo.SetupModelScene(self.CanSelectEffect, AzeriteModelInfo.ModelSceneTypePowerReadyForSelection, forceUpdate);
end
......@@ -209,6 +211,8 @@ function AzeriteEmpoweredItemPowerMixin:PlayTransitionAnimation()
self.IconNotSelectableOverlay:SetAlpha(self:GetIconNotSelectableOverlayAlphaValue());
end
self.CanSelectEffect:Show();
self.TransitionAnimation.IconOn:SetFromAlpha(self.IconOn:GetAlpha());
self.TransitionAnimation.IconOn:SetToAlpha(self:GetIconOnAlphaValue());
......@@ -476,6 +480,7 @@ function AzeriteEmpoweredItemPowerMixin:OnTransitionAnimationFinished()
self.needsBuffAvailableSoundPlayed = nil;
PlaySound(SOUNDKIT.UI_80_AZERITEARMOR_BUFFAVAILABLE);
end
self.CanSelectEffect:SetShown(self.CanSelectEffect:GetAlpha() ~= 0);
end
function AzeriteEmpoweredItemPowerMixin:CancelItemLoadCallback()
......@@ -618,8 +623,18 @@ end
function AzeriteEmpoweredItemPowerMixin:PlayClickedAnimation()
if self.clickEffectActor then
self.ClickEffect:Show();
self.clickEffectActor:SetAnimation(0, 0, 1, 0);
C_Timer.After(.2, function() self.clickEffectActor:SetAnimation(0, 0, 0, 0); end);
C_Timer.After(.2,
function()
self.clickEffectActor:SetAnimation(0, 0, 0, 0);
C_Timer.After(5,
function()
self.ClickEffect:Hide();
end
);
end
);
end
end
......
......@@ -52,8 +52,17 @@ end
function AzeriteEmpoweredItemSlotMixin:PlayLockedInEffect()
if self.lockedInEffectActor then
self.LockedInEffect:Show();
self.lockedInEffectActor:SetAnimation(0, 0, 1, 0);
C_Timer.After(1, function() self.lockedInEffectActor:SetAnimation(0, 0, 0, 0); end);
C_Timer.After(1,
function()
self.lockedInEffectActor:SetAnimation(0, 0, 0, 0);
C_Timer.After(5,
function() self.LockedInEffect:Hide();
end
);
end
);
end
end
......@@ -66,6 +75,7 @@ function AzeriteEmpoweredItemSlotMixin:SetupModelScene(forceUpdate)
if self.lockedInEffectActor then
self.lockedInEffectActor:SetAnimation(0, 0, 0, 0);
end
self.LockedInEffect:Hide();
end
end
......
......@@ -132,7 +132,13 @@ end
function BarberShop_UpdateCustomizationOptions(self)
self.HairStyleSelector.Category:SetText(GetCustomizationDetails(CHAR_CUSTOMIZE_HAIR_STYLE));
self.HairColorSelector.Category:SetText(GetCustomizationDetails(CHAR_CUSTOMIZE_HAIR_COLOR));
self.FacialHairSelector.Category:SetText(GetCustomizationDetails(CHAR_CUSTOMIZE_FACIAL_HAIR));
local facialHairIsValid = IsBarberShopStyleValid(STYLE_FACIAL_HAIR);
self.FacialHairSelector:SetShown(facialHairIsValid);
if ( facialHairIsValid ) then
self.FacialHairSelector.Category:SetText(GetCustomizationDetails(CHAR_CUSTOMIZE_FACIAL_HAIR));
end
for i = 1, STYLE_NUM_CUSTOM_DISPLAY do
local barberStyle = STYLE_CUSTOM_DISPLAY1 + i - 1;
......
......@@ -2196,18 +2196,13 @@ function CalendarDayContextMenu_Initialize(self, flags, dayButton, eventButton)
if ( validCreationDate and _CalendarFrame_CanInviteeRSVP(event.inviteStatus) ) then
-- spacer
if ( _CalendarFrame_IsSignUpEvent(event.calendarType, event.inviteType) ) then
-- We no longer show remove event in the dropdown, only Sign Up.
if ( event.inviteStatus == CALENDAR_INVITESTATUS_NOT_SIGNEDUP ) then
-- sign up
if ( needSpacer ) then
UIMenu_AddButton(self, "");
end
UIMenu_AddButton(self, CALENDAR_SIGNUP, nil, CalendarDayContextMenu_SignUp);
else
-- cancel sign up
if ( needSpacer ) then
UIMenu_AddButton(self, "");
end
UIMenu_AddButton(self, CALENDAR_REMOVE_SIGNUP, nil, CalendarDayContextMenu_RemoveInvite);
end
elseif ( event.modStatus ~= "CREATOR" ) then
if ( needSpacer ) then
......
......@@ -43,8 +43,6 @@ do
self:RegisterEvent("CLUB_MEMBER_ROLE_UPDATED");
self:RegisterEvent("VOICE_CHAT_CHANNEL_MEMBER_ACTIVE_STATE_CHANGED");
self:RegisterEvent("VOICE_CHAT_CHANNEL_TRANSMIT_CHANGED");
self:RegisterEvent("VOICE_CHAT_MUTED_CHANGED");
self:RegisterEvent("VOICE_CHAT_DEAFENED_CHANGED");
self:RegisterEvent("VOICE_CHAT_CHANNEL_MEMBER_MUTE_FOR_ME_CHANGED");
self:RegisterEvent("VOICE_CHAT_CHANNEL_MEMBER_ADDED");
self:RegisterEvent("VOICE_CHAT_CHANNEL_MEMBER_GUID_UPDATED");
......@@ -149,10 +147,6 @@ function ChannelFrameMixin:OnEvent(event, ...)
self:OnMemberActiveStateChanged(...);
elseif event == "VOICE_CHAT_CHANNEL_TRANSMIT_CHANGED" then
self:OnChatChannelTransmitChanged(...);
elseif event == "VOICE_CHAT_MUTED_CHANGED" then
self:OnMutedChanged(...);
elseif event == "VOICE_CHAT_DEAFENED_CHANGED" then
self:OnDeafenedChanged(...);
elseif event == "VOICE_CHAT_CHANNEL_MEMBER_MUTE_FOR_ME_CHANGED" then
self:OnMemberMuted(...);
elseif event == "VOICE_CHAT_CHANNEL_MEMBER_ADDED" then
......@@ -411,13 +405,16 @@ function ChannelFrameMixin:OnVoiceChannelDisplayNameChanged(channelID, channelNa
end
function ChannelFrameMixin:OnVoiceChatError(platformCode, statusCode)
local errorCode = Voice_GetGameErrorFromStatusCode(statusCode);
local errorString = Voice_GetGameAlertStringFromStatusCode(statusCode);
if errorString then
UIErrorsFrame:TryDisplayMessage(errorCode, errorString, RED_FONT_COLOR:GetRGB());
ChatFrame_DisplayUsageError(errorString);
self.lastError = statusCode;
end
local errorCode = Voice_GetGameErrorFromStatusCode(statusCode);
if errorCode then
UIErrorsFrame:TryDisplayMessage(errorCode, errorString, RED_FONT_COLOR:GetRGB());
end
end
function ChannelFrameMixin:OnVoiceChatConnectionSuccess()
......@@ -591,22 +588,6 @@ function ChannelFrameMixin:OnMemberActiveStateChanged(memberID, channelID, isAct
end
end
function ChannelFrameMixin:OnMutedChanged(isMuted)
if isMuted then
PlaySound(SOUNDKIT.UI_VOICECHAT_MUTEON);
else
PlaySound(SOUNDKIT.UI_VOICECHAT_MUTEOFF);
end
end
function ChannelFrameMixin:OnDeafenedChanged(isDeafened)
if isDeafened then
PlaySound(SOUNDKIT.UI_VOICECHAT_DEAFENON);
else
PlaySound(SOUNDKIT.UI_VOICECHAT_DEAFENOFF);
end
end
function ChannelFrameMixin:OnMemberMuted(memberID, channelID, isMuted)
if isMuted then
PlaySound(SOUNDKIT.UI_VOICECHAT_MUTEOTHERON);
......
......@@ -45,12 +45,14 @@ function Voice_FormatTextForChannelID(channelID, text)
end
local SUPPRESS_ERROR_MESSAGE = true;
local DISPLAY_BASIC_ERROR_ONLY = false;
local voiceChatStatusToGameError =
{
[Enum.VoiceChatStatusCode.Success] = SUPPRESS_ERROR_MESSAGE,
[Enum.VoiceChatStatusCode.OperationPending] = SUPPRESS_ERROR_MESSAGE,
[Enum.VoiceChatStatusCode.ClientAlreadyLoggedIn] = SUPPRESS_ERROR_MESSAGE,
[Enum.VoiceChatStatusCode.AlreadyInChannel] = SUPPRESS_ERROR_MESSAGE,
[Enum.VoiceChatStatusCode.OperationPending] = DISPLAY_BASIC_ERROR_ONLY,
[Enum.VoiceChatStatusCode.ClientAlreadyLoggedIn] = DISPLAY_BASIC_ERROR_ONLY,
[Enum.VoiceChatStatusCode.AlreadyInChannel] = DISPLAY_BASIC_ERROR_ONLY,
[Enum.VoiceChatStatusCode.TooManyRequests] = LE_GAME_ERR_VOICE_CHAT_TOO_MANY_REQUESTS,
[Enum.VoiceChatStatusCode.ChannelNameTooShort] = LE_GAME_ERR_VOICE_CHAT_CHANNEL_NAME_TOO_SHORT,
[Enum.VoiceChatStatusCode.ChannelNameTooLong] = LE_GAME_ERR_VOICE_CHAT_CHANNEL_NAME_TOO_LONG,
......@@ -58,6 +60,8 @@ local voiceChatStatusToGameError =
[Enum.VoiceChatStatusCode.TargetNotFound] = LE_GAME_ERR_VOICE_CHAT_TARGET_NOT_FOUND,
[Enum.VoiceChatStatusCode.ProxyConnectionTimeOut] = LE_GAME_ERR_VOICE_CHAT_SERVICE_LOST,
[Enum.VoiceChatStatusCode.ProxyConnectionUnexpectedDisconnect] = LE_GAME_ERR_VOICE_CHAT_SERVICE_LOST,
[Enum.VoiceChatStatusCode.UnableToLaunchProxy] = LE_GAME_ERR_VOICE_CHAT_GENERIC_UNABLE_TO_CONNECT,
[Enum.VoiceChatStatusCode.ProxyConnectionUnableToConnect] = LE_GAME_ERR_VOICE_CHAT_GENERIC_UNABLE_TO_CONNECT,
[Enum.VoiceChatStatusCode.PlayerSilenced] = LE_GAME_ERR_VOICE_CHAT_PLAYER_SILENCED,
[Enum.VoiceChatStatusCode.PlayerVoiceChatParentalDisabled] = LE_GAME_ERR_VOICE_CHAT_PARENTAL_DISABLE_ALL,
[Enum.VoiceChatStatusCode.Disabled] = LE_GAME_ERR_VOICE_CHAT_DISABLED,
......@@ -69,7 +73,7 @@ function Voice_GetGameErrorFromStatusCode(statusCode)
return nil;
end
return gameError or LE_GAME_ERR_VOICE_CHAT_GENERIC_UNABLE_TO_CONNECT;
return gameError;
end
function Voice_GetGameErrorStringFromStatusCode(statusCode)
......@@ -77,8 +81,10 @@ function Voice_GetGameErrorStringFromStatusCode(statusCode)
if gameError then
local stringId = GetGameMessageInfo(gameError);
if stringId then
return _G[stringId];
return _G[stringId] .. VOICE_CHAT_ERROR_CODE_FORMATTER:format(statusCode);
end
elseif gameError == DISPLAY_BASIC_ERROR_ONLY then
return VOICE_CHAT_ERROR_CODE_FORMATTER:format(statusCode);
end
end
......@@ -86,6 +92,9 @@ function Voice_IsConnectionError(statusCode)
return statusCode == Enum.VoiceChatStatusCode.ProxyConnectionTimeOut or statusCode == Enum.VoiceChatStatusCode.ProxyConnectionUnexpectedDisconnect;
end
-- This exists so that the chat frame isn't spammed with voice errors related to certain features being disabled.
-- However, panels like Voice Options should be able to display the current system error, so they use
-- a different filtering/blacklisting table.
local SUPPRESS_ALERT_MESSAGE = true;
local voiceChatStatusAlertBlacklist =
{
......
......@@ -2921,7 +2921,11 @@ function WardrobeSetsDataProviderMixin:SortSets(sets, reverseUIOrder, ignorePatc
return set1.uiOrder > set2.uiOrder;
end
end
return set1.setID > set2.setID;
if reverseUIOrder then
return set1.setID < set2.setID;
else
return set1.setID > set2.setID;
end
end
table.sort(sets, comparison);
......
......@@ -108,13 +108,13 @@ end
function CommunitiesGuildTextEditFrame_SetType(self, editType, guildInfoFrame)
if ( editType == "motd" ) then
self:SetHeight(162);
self.Container.ScrollFrame.EditBox:SetMaxLetters(128);
self.Container.ScrollFrame.EditBox:SetMaxLetters(255);
self.Container.ScrollFrame.EditBox:SetText(GetGuildRosterMOTD());
self.Title:SetText(GUILD_MOTD_EDITLABEL);
self.Container.ScrollFrame.EditBox:SetScript("OnEnterPressed", CommunitiesGuildTextEditFrame_OnAccept);
elseif ( editType == "info" ) then
self:SetHeight(295);
self.Container.ScrollFrame.EditBox:SetMaxLetters(500);
self.Container.ScrollFrame.EditBox:SetMaxLetters(499);
self.Container.ScrollFrame.EditBox:SetText(GetGuildInfoText());
self.Title:SetText(GUILD_INFO_EDITLABEL);
self.Container.ScrollFrame.EditBox:SetScript("OnEnterPressed", nil);
......
......@@ -162,13 +162,13 @@
</Layers>
<Frames>
<ScrollFrame name="$parentMOTDScrollFrame" parentKey="MOTDScrollFrame" inherits="MinimalScrollFrameTemplate">
<Size x="254" y="42"/>
<Size x="246" y="46"/>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="$parentHeader2" relativePoint="BOTTOMLEFT" x="14" y="-2"/>
<Anchor point="TOPLEFT" relativeTo="$parentHeader2" relativePoint="BOTTOMLEFT" x="14" y="-1"/>
</Anchors>
<ScrollChild>
<SimpleHTML parentKey="MOTD" disallowFormatting="true">
<Size x="254" y="42"/>
<Size x="246" y="46"/>
<Scripts>
<OnHyperlinkClick>
SetItemRef(link, text, button, self);
......@@ -183,7 +183,7 @@
<OnLoad>
self.scrollBarHideable = true;
self.noScrollThumb = true;
ScrollBar_AdjustAnchors(self.ScrollBar, 2, -2);
ScrollBar_AdjustAnchors(self.ScrollBar, 3, -2);
self.ScrollBar:Hide();
ScrollFrame_OnLoad(self);
</OnLoad>
......
......@@ -3,6 +3,7 @@
## Secure: 1
## Author: Blizzard Entertainment
## SavedVariablesMachine: Blizzard_Console_SavedVars
## AllowLoad: Both
Blizzard_Console_AutoComplete.lua
Blizzard_Console_AutoComplete.xml
......
......@@ -23,6 +23,13 @@ do
InActiveBattlefield = C_PvP.IsActiveBattlefield;
HasInspectHonorData = function() return true; end;
RequestInspectHonorData = function() return; end;
C_PvP.GetBrawlInfo = function()
local info = C_PvP.GetAvailableBrawlInfo();
if info then
info.active = info.canQueue;
end
return info;
end
end
-- SocialUI changes
......
......@@ -3117,7 +3117,7 @@ function AdventureJournal_Reward_OnEnter(self)
frame.Item1.UpdateTooltip = function() AdventureJournal_Reward_OnEnter(self) end;
if ( rewardData.itemLink ) then
tooltip:SetHyperlink(rewardData.itemLink);
GameTooltip_ShowCompareItem(tooltip, frame.Item1);
GameTooltip_ShowCompareItem(tooltip, frame.Item1.tooltip);
local quality = select(3, GetItemInfo(rewardData.itemLink));
SetItemButtonQuality(frame.Item1, quality, rewardData.itemLink);
......
......@@ -2997,17 +2997,17 @@
</Layers>
<Frames>
<GameTooltip name="$parentTooltip" parentKey="tooltip" inherits="GameTooltipTemplate">
<KeyValues>
<KeyValue key="IsEmbedded" value="true" type="boolean"/>
</KeyValues>
<KeyValues>
<KeyValue key="IsEmbedded" value="true" type="boolean"/>
</KeyValues>
<Anchors>
<Anchor point="TOPLEFT" relativeKey="$parent.icon" relativePoint="TOPRIGHT" x="0" y="10"/>
</Anchors>
<Scripts>
<OnLoad inherit="prepend">
GameTooltip_SetBackdropStyle(self, GAME_TOOLTIP_BACKDROP_STYLE_EMBEDDED);
self.shoppingTooltips = { ShoppingTooltip1, ShoppingTooltip2 };
</OnLoad>
GameTooltip_SetBackdropStyle(self, GAME_TOOLTIP_BACKDROP_STYLE_EMBEDDED);
self.shoppingTooltips = { ShoppingTooltip1, ShoppingTooltip2 };
</OnLoad>
<OnUpdate function="GameTooltip_OnUpdate"/>
</Scripts>
</GameTooltip>
......
......@@ -176,6 +176,13 @@
<Frame parentKey="MissionTab" setAllPoints="true" useParentLevel="true">
<Frames>
<Frame parentKey="MissionList" inherits="GarrisonMissionListTemplate" mixin="OrderHallMissionListMixin" name="$parentMissions">
<Scripts>
<OnLoad inherit="prepend">
self.CompleteDialog:ClearAllPoints();
self.CompleteDialog:SetPoint("TOPLEFT", -34, 63);
self.CompleteDialog:SetSize(961, 660);
</OnLoad>
</Scripts>
</Frame>
<Frame parentKey="ZoneSupportMissionPageBackground" hidden="true" frameLevel="1">
<Layers>
......
......@@ -124,6 +124,11 @@ local function SetWidgetFrameAnchors(frame, anchorFrame)
frame:SetFrameLevel(anchorFrame:GetFrameLevel() +10);
end
local function WidgetInit(widgetFrame)
widgetFrame.Text:SetSize(165, 50);
widgetFrame.Text:SetFontObjectsToTry(GameFontNormalLarge, GameFontNormalMed1, GameFontNormal);
end
local function WidgetsLayout(widgetContainer, sortedWidgets)
for index, widgetFrame in ipairs(sortedWidgets) do
if ( index == 1 ) then
......@@ -147,7 +152,7 @@ function IslandsQueueFrameMixin:OnLoad()
self.portrait:Hide();
SetPortraitToTexture(self.ArtOverlayFrame.portrait, "Interface\\Icons\\icon_treasuremap");
self.IslandCardsFrame:RegisterForWidgetSet(ISLANDS_QUEUE_WIDGET_SET_ID, WidgetsLayout);
self.IslandCardsFrame:RegisterForWidgetSet(ISLANDS_QUEUE_WIDGET_SET_ID, WidgetsLayout, WidgetInit);
self:RegisterEvent("ISLANDS_QUEUE_CLOSE");
end
......
......@@ -54,20 +54,33 @@ function MapCanvasDetailLayerMixin:RefreshDetailTiles()
local numDetailTilesCols = math.ceil(layerInfo.layerWidth / layerInfo.tileWidth);
local textures = C_Map.GetMapArtLayerTextures(self.mapID, self.layerIndex);
local prevRowDetailTile;
local prevColDetailTile;
for tileCol = 1, numDetailTilesCols do
for tileRow = 1, numDetailTilesRows do
if tileRow == 1 then
prevRowDetailTile = nil;
end
local detailTile = self.detailTilePool:Acquire();
self.textureLoadGroup:AddTexture(detailTile);
local textureIndex = (tileRow - 1) * numDetailTilesCols + tileCol;
detailTile:SetTexture(textures[textureIndex], nil, nil, "TRILINEAR");
local offsetX = math.floor(layerInfo.tileWidth * (tileCol - 1));
local offsetY = math.floor(layerInfo.tileHeight * (tileRow - 1));
detailTile:ClearAllPoints();
detailTile:SetPoint("TOPLEFT", self, "TOPLEFT", offsetX, -offsetY);
if prevRowDetailTile then
detailTile:SetPoint("TOPLEFT", prevRowDetailTile, "BOTTOMLEFT");