aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/UI/UIComponent_MenuBackground.cpp
diff options
context:
space:
mode:
authorqwasdrizzel <145519042+qwasdrizzel@users.noreply.github.com>2026-03-16 21:44:26 -0500
committerGitHub <noreply@github.com>2026-03-16 21:44:26 -0500
commitce739f6045ec72127491286ea3f3f21e537c1b55 (patch)
treef33bd42a47c1b4a7b2153a7fb77127ee3b407db9 /Minecraft.Client/Common/UI/UIComponent_MenuBackground.cpp
parent255a18fe8e9b57377975f82e2b227afe2a12eda0 (diff)
parent5a59f5d146b43811dde6a5a0245ee9875d7b5cd1 (diff)
Merge branch 'smartcmd:main' into main
Diffstat (limited to 'Minecraft.Client/Common/UI/UIComponent_MenuBackground.cpp')
-rw-r--r--Minecraft.Client/Common/UI/UIComponent_MenuBackground.cpp39
1 files changed, 25 insertions, 14 deletions
diff --git a/Minecraft.Client/Common/UI/UIComponent_MenuBackground.cpp b/Minecraft.Client/Common/UI/UIComponent_MenuBackground.cpp
index d3a4c4c0..b7c4ebbd 100644
--- a/Minecraft.Client/Common/UI/UIComponent_MenuBackground.cpp
+++ b/Minecraft.Client/Common/UI/UIComponent_MenuBackground.cpp
@@ -2,6 +2,8 @@
#include "UI.h"
#include "UIComponent_MenuBackground.h"
+#include <algorithm>
+
UIComponent_MenuBackground::UIComponent_MenuBackground(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer)
{
m_bSplitscreen = false;
@@ -42,15 +44,15 @@ void UIComponent_MenuBackground::render(S32 width, S32 height, C4JRender::eViewp
{
case C4JRender::VIEWPORT_TYPE_SPLIT_BOTTOM:
case C4JRender::VIEWPORT_TYPE_QUADRANT_BOTTOM_LEFT:
- yPos = (S32)(ui.getScreenHeight() / 2);
+ yPos = static_cast<S32>(ui.getScreenHeight() / 2);
break;
case C4JRender::VIEWPORT_TYPE_SPLIT_RIGHT:
case C4JRender::VIEWPORT_TYPE_QUADRANT_TOP_RIGHT:
- xPos = (S32)(ui.getScreenWidth() / 2);
+ xPos = static_cast<S32>(ui.getScreenWidth() / 2);
break;
case C4JRender::VIEWPORT_TYPE_QUADRANT_BOTTOM_RIGHT:
- xPos = (S32)(ui.getScreenWidth() / 2);
- yPos = (S32)(ui.getScreenHeight() / 2);
+ xPos = static_cast<S32>(ui.getScreenWidth() / 2);
+ yPos = static_cast<S32>(ui.getScreenHeight() / 2);
break;
}
ui.setupRenderPosition(xPos, yPos);
@@ -64,28 +66,33 @@ void UIComponent_MenuBackground::render(S32 width, S32 height, C4JRender::eViewp
{
case C4JRender::VIEWPORT_TYPE_SPLIT_LEFT:
case C4JRender::VIEWPORT_TYPE_SPLIT_RIGHT:
- tileHeight = (S32)(ui.getScreenHeight());
+ tileHeight = static_cast<S32>(ui.getScreenHeight());
break;
case C4JRender::VIEWPORT_TYPE_SPLIT_TOP:
- tileWidth = (S32)(ui.getScreenWidth());
- tileYStart = (S32)(m_movieHeight / 2);
+ tileWidth = static_cast<S32>(ui.getScreenWidth());
+ tileYStart = static_cast<S32>(ui.getScreenHeight() / 2);
break;
case C4JRender::VIEWPORT_TYPE_SPLIT_BOTTOM:
- tileWidth = (S32)(ui.getScreenWidth());
- tileYStart = (S32)(m_movieHeight / 2);
+ tileWidth = static_cast<S32>(ui.getScreenWidth());
+ tileYStart = static_cast<S32>(ui.getScreenHeight() / 2);
break;
case C4JRender::VIEWPORT_TYPE_QUADRANT_TOP_LEFT:
case C4JRender::VIEWPORT_TYPE_QUADRANT_TOP_RIGHT:
case C4JRender::VIEWPORT_TYPE_QUADRANT_BOTTOM_LEFT:
case C4JRender::VIEWPORT_TYPE_QUADRANT_BOTTOM_RIGHT:
- tileYStart = (S32)(m_movieHeight / 2);
+ tileYStart = static_cast<S32>(ui.getScreenHeight() / 2);
break;
}
- IggyPlayerSetDisplaySize( getMovie(), m_movieWidth, m_movieHeight );
+ F32 scaleW = static_cast<F32>(tileXStart + tileWidth) / static_cast<F32>(m_movieWidth);
+ F32 scaleH = static_cast<F32>(tileYStart + tileHeight) / static_cast<F32>(m_movieHeight);
+ F32 scale = (scaleW > scaleH) ? scaleW : scaleH;
+ scale = max(scale, 1.0f);
+
+ IggyPlayerSetDisplaySize( getMovie(), static_cast<S32>(m_movieWidth * scale), static_cast<S32>(m_movieHeight * scale) );
IggyPlayerDrawTilesStart ( getMovie() );
-
+
m_renderWidth = tileWidth;
m_renderHeight = tileHeight;
IggyPlayerDrawTile ( getMovie() ,
@@ -93,11 +100,15 @@ void UIComponent_MenuBackground::render(S32 width, S32 height, C4JRender::eViewp
tileYStart ,
tileXStart + tileWidth ,
tileYStart + tileHeight ,
- 0 );
+ 0 );
IggyPlayerDrawTilesEnd ( getMovie() );
}
else
{
- UIScene::render(width, height, viewport);
+ if(m_bIsReloading) return;
+ if(!m_hasTickedOnce || !getMovie()) return;
+ ui.setupRenderPosition(0, 0);
+ IggyPlayerSetDisplaySize( getMovie(), static_cast<S32>(ui.getScreenWidth()), static_cast<S32>(ui.getScreenHeight()) );
+ IggyPlayerDraw( getMovie() );
}
} \ No newline at end of file