[2.0.0] Frame natives are broken again

My map contains the following code:

BlzEnableUIAutoPosition(false)
BlzHideOriginFrames(true)
BlzFrameSetScale(BlzGetFrameByName("ConsoleUIBackdrop", 0), 0.10)
bj_forLoopAIndex = 1
bj_forLoopAIndexEnd = 12
while (true) do
if (bj_forLoopAIndex > bj_forLoopAIndexEnd) then break end
BlzFrameClearAllPoints(BlzGetOriginFrame(ORIGIN_FRAME_COMMAND_BUTTON, (GetForLoopIndexA() - 1)))
BlzFrameSetAbsPoint(BlzGetOriginFrame(ORIGIN_FRAME_COMMAND_BUTTON, (GetForLoopIndexA() - 1)), FRAMEPOINT_BOTTOM, (0.40 + (0.04 * I2R(GetForLoopIndexA()))), 0)
bj_forLoopAIndex = bj_forLoopAIndex + 1
end
BlzFrameSetVisible(BlzGetFrameByName("UpperButtonBarFrame", 0), true)
BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT, 0), true)
BlzFrameClearAllPoints(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT, 0))
BlzFrameSetAbsPoint(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT, 0), FRAMEPOINT_BOTTOMLEFT, (0.116), 0.05)
BlzFrameSetAbsPoint(BlzGetOriginFrame(ORIGIN_FRAME_PORTRAIT, 0), FRAMEPOINT_TOPRIGHT, (0.176), (0.125))
BlzFrameSetVisible(BlzFrameGetParent(BlzGetFrameByName("SimpleInfoPanelUnitDetail", 0)), true)
BlzFrameSetAbsPoint(BlzGetFrameByName("InfoPanelIconBackdrop", 0), FRAMEPOINT_TOPLEFT, 0, 0)
BlzFrameSetAbsPoint(BlzGetFrameByName("InfoPanelIconBackdrop", 2), FRAMEPOINT_TOPLEFT, 0, 0)
BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_UNIT_PANEL_BUFF_BAR, 0), false)
BlzFrameSetText(BlzGetOriginFrame(ORIGIN_FRAME_UNIT_PANEL_BUFF_BAR_LABEL, 0), " ")
BlzFrameSetText(BlzGetFrameByName("InventoryText", 0), " ")
BlzFrameSetAbsPoint(BlzGetFrameByName("SimpleInventoryCover", 0), FRAMEPOINT_BOTTOMLEFT, 0, -6.00)
BlzFrameSetAbsPoint(BlzGetFrameByName("SimpleInventoryCover", 0), FRAMEPOINT_BOTTOMRIGHT, 0.10, -6.00)
bj_forLoopAIndex = 1
bj_forLoopAIndexEnd = 6
while (true) do
if (bj_forLoopAIndex > bj_forLoopAIndexEnd) then break end
BlzFrameClearAllPoints(BlzGetFrameByName(("InventoryButton_" .. I2S((GetForLoopIndexA() - 1))), 0))
BlzFrameSetAbsPoint(BlzGetFrameByName(("InventoryButton_" .. I2S((GetForLoopIndexA() - 1))), 0), FRAMEPOINT_BOTTOM, (0.40 + ((0.035) * I2R(GetForLoopIndexA()))), 0.04)
bj_forLoopAIndex = bj_forLoopAIndex + 1
end
BlzFrameSetVisible(BlzGetOriginFrame(ORIGIN_FRAME_MINIMAP, 0), true)
BlzFrameClearAllPoints(BlzGetOriginFrame(ORIGIN_FRAME_MINIMAP, 0))
BlzFrameSetParent(BlzGetOriginFrame(ORIGIN_FRAME_MINIMAP, 0), BlzGetFrameByName("ConsoleUIBackdrop", 0))
BlzFrameSetAbsPoint(BlzGetOriginFrame(ORIGIN_FRAME_MINIMAP, 0), FRAMEPOINT_BOTTOMLEFT, -0.13, 0.00)
BlzFrameSetAbsPoint(BlzGetOriginFrame(ORIGIN_FRAME_MINIMAP, 0), FRAMEPOINT_TOPRIGHT, 0.02, 0.15)
BlzFrameSetAbsPoint(BlzGetFrameByName("SimpleNameValue", 0), FRAMEPOINT_TOP, 0.06, 0.14)
BlzFrameClearAllPoints(BlzGetFrameByName("SimpleClassValue", 0))
BlzFrameSetAbsPoint(BlzGetFrameByName("SimpleClassValue", 0), FRAMEPOINT_TOP, 0.06, -0.10)
BlzFrameSetAbsPoint(BlzGetFrameByName("SimpleClassValue", 0), FRAMEPOINT_TOP, 0.06, -0.10)
udg_PortraitHPText = BlzCreateFrameByType("TEXT", "PortraitHPTextCustom", BlzGetFrameByName("ConsoleUIBackdrop", 0), "SimpleInfoPanelTitleTextTemplate", 0)
BlzFrameSetAbsPoint(udg_PortraitHPText, FRAMEPOINT_CENTER, (0.065), 0.04)
BlzFrameSetTextColor(udg_PortraitHPText, BlzConvertColor(255, 50, 255, 0))
udg_PortraitMPText = BlzCreateFrameByType("TEXT", "PortraitMPTextCustom", BlzGetFrameByName("ConsoleUIBackdrop", 0), "SimpleInfoPanelTitleTextTemplate", 0)
BlzFrameSetAbsPoint(udg_PortraitMPText, FRAMEPOINT_CENTER, (0.065), 0.02)
BlzFrameSetTextColor(udg_PortraitMPText, BlzConvertColor(255, 0, 100, 255))
udg_DamageLabelText = BlzCreateFrameByType("TEXT", "DamageLabel", BlzGetFrameByName("ConsoleUIBackdrop", 0), "SimpleInfoPanelLabelTextTemplate", 0)
BlzFrameSetAbsPoint(udg_DamageLabelText, FRAMEPOINT_CENTER, 0.13, 0.02)
BlzFrameSetTextColor(udg_DamageLabelText, BlzConvertColor(255, 255, 204, 0))
BlzFrameSetText(udg_DamageLabelText, "Damage|cffffffff:|r")
udg_DamageValueText = BlzCreateFrameByType("TEXT", "DamageValue", BlzGetFrameByName("ConsoleUIBackdrop", 0), "SimpleInfoPanelLabelTextTemplate", 0)
BlzFrameSetAbsPoint(udg_DamageValueText, FRAMEPOINT_CENTER, 0.16, 0.02)
BlzFrameSetTextColor(udg_DamageValueText, BlzConvertColor(255, 255, 255, 255))
BlzFrameSetText(udg_DamageValueText, "0")
udg_GoldResourceText = BlzCreateFrameByType("TEXT", "GoldResource", BlzGetFrameByName("ConsoleUIBackdrop", 0), "SimpleInfoPanelLabelTextTemplate", 0)
BlzFrameSetAbsPoint(udg_GoldResourceText, FRAMEPOINT_LEFT, 0.42, 0.08)
BlzFrameSetText(udg_GoldResourceText, "|cffffcc00Gold|r: 0")

On 1.36, that resulted in a UI that looked like this:
https://i.imgur.com/h0ZfgEF.png

On 2.0.0, it now looks like this:
https://i.imgur.com/EASyH8V.png

My assumption is that new frames were added and BlzHideOriginFrames(true) is now defunct because of this.

EDIT: here is the map, for testing purposes https://www.hiveworkshop.com/pastebin/c7b203a94cd31b341f845d6903b80e62.33090

3 Likes

They added new parent frames for the background textures.
(“ConsoleTopBar”, 0)
(“ConsoleBottomBar”, 0)
(“ConsoleBottomBarOverlay”, 0)

seems like they are not affected by BlzHideOriginFrames(true)

Edit: this new simpleframes also manage other frames.
one should reparent this 3 before hiding them.

BlzFrameSetParent(BlzGetFrameByName("CommandBarFrame", 0), BlzGetFrameByName("ConsoleUI", 0))
BlzFrameSetParent(BlzFrameGetParent(BlzGetFrameByName("SimpleInfoPanelUnitDetail", 0)), BlzGetFrameByName("ConsoleUI", 0))
BlzFrameSetParent(BlzGetOriginFrame(ORIGIN_FRAME_UBERTOOLTIP , 0), BlzGetFrameByName("ConsoleUI", 0))
1 Like

I confirm the bug with the native BlzHideOriginFrames (true). Devs, please fix this, this trouble can ruin a lot of good mods.

Hmm, thanks, looks like hiding them helped me.

          BlzFrameSetVisible(BlzGetFrameByName("ConsoleTopBar", 0), false)
          BlzFrameSetVisible(BlzGetFrameByName("ConsoleBottomBar", 0), false)
          BlzFrameSetVisible(BlzGetFrameByName("ConsoleBottomBarOverlay", 0), false)

Still, it’s a devs bug that needs to be fixed

1 Like

BlzGetOriginFrame(ORIGIN_FRAME_UBERTOOLTIP, 0) returns null. it is now child [4] of (“ConsoleBottomBar”,0)
Edit: i take it back was the other bug. That when an originframe was first accessed by Frame child api, then the originframe access fails.

Also interaction of HUD Scale option with custom frames is not very clear yet. I would like to be able to disable the influence of this setting on custom UI in the mode, but I’m afraid that’s asking too much…