From b7aa65128e279d81ecf54b47876341753e02e54a Mon Sep 17 00:00:00 2001 From: rtw1x1 Date: Fri, 2 Jan 2026 20:24:34 +0000 Subject: [PATCH] Revert "Fix quest marker alignment on minimap" --- src/UserInterface/PythonMiniMap.cpp | 37 +++++++++-------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/src/UserInterface/PythonMiniMap.cpp b/src/UserInterface/PythonMiniMap.cpp index f199d07..7767832 100644 --- a/src/UserInterface/PythonMiniMap.cpp +++ b/src/UserInterface/PythonMiniMap.cpp @@ -222,9 +222,7 @@ void CPythonMiniMap::Update(float fCenterX, float fCenterY) } } - // Calculate dynamic radius based on actual minimap window size - // Subtract border width (approx 9 pixels) to keep markers inside visible area - const float c_fMiniMapWindowRadius = (m_fWidth < m_fHeight ? m_fWidth : m_fHeight) / 2.0f - 9.0f; + const float c_fMiniMapWindowRadius = 55.0f; float fDistanceFromCenterX = (rAtlasMarkInfo.m_fX - m_fCenterX) * fooCellScale * m_fScale; float fDistanceFromCenterY = (rAtlasMarkInfo.m_fY - m_fCenterY) * fooCellScale * m_fScale; @@ -232,11 +230,12 @@ void CPythonMiniMap::Update(float fCenterX, float fCenterY) if (fDistanceFromCenter >= c_fMiniMapWindowRadius) { - float fRadian = atan2f(fDistanceFromCenterY, fDistanceFromCenterX); - fDistanceFromCenterX = c_fMiniMapWindowRadius * cosf(fRadian); - fDistanceFromCenterY = c_fMiniMapWindowRadius * sinf(fRadian); - rAtlasMarkInfo.m_fMiniMapX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX; - rAtlasMarkInfo.m_fMiniMapY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY; + float fRadianX = acosf(fDistanceFromCenterX / fDistanceFromCenter); + float fRadianY = asinf(fDistanceFromCenterY / fDistanceFromCenter); + fDistanceFromCenterX = 55.0f * cosf(fRadianX); + fDistanceFromCenterY = 55.0f * sinf(fRadianY); + rAtlasMarkInfo.m_fMiniMapX = ( m_fWidth - (float)m_WhiteMark.GetWidth() ) / 2.0f + fDistanceFromCenterX + m_fScreenX + 2.0f; + rAtlasMarkInfo.m_fMiniMapY = ( m_fHeight - (float)m_WhiteMark.GetHeight() ) / 2.0f + fDistanceFromCenterY + m_fScreenY + 2.0f; } else { @@ -466,10 +465,7 @@ void CPythonMiniMap::Render(float fScreenX, float fScreenY) if (rAtlasMarkInfo.m_fMiniMapY <= 0.0f) continue; - __RenderTargetMark( - rAtlasMarkInfo.m_fMiniMapX + m_WhiteMark.GetWidth() / 2, - rAtlasMarkInfo.m_fMiniMapY + m_WhiteMark.GetHeight() / 2 - ); + __RenderTargetMark(rAtlasMarkInfo.m_fMiniMapX, rAtlasMarkInfo.m_fMiniMapY); } } @@ -669,10 +665,7 @@ bool CPythonMiniMap::Create() void CPythonMiniMap::__SetPosition() { - // Calculate dynamic radius - use smaller dimension to ensure circular clipping - // Subtract border width (approx 9 pixels) to keep markers inside visible area - float fWindowRadius = (m_fWidth < m_fHeight ? m_fWidth : m_fHeight) / 2.0f - 9.0f; - m_fMiniMapRadius = fMIN(6400.0f / ((float) CTerrainImpl::CELLSCALE) * m_fScale, fWindowRadius); + m_fMiniMapRadius = fMIN(6400.0f / ((float) CTerrainImpl::CELLSCALE) * m_fScale, 64.0f); m_matWorld._11 = m_fWidth * m_fScale; m_matWorld._22 = m_fHeight * m_fScale; @@ -1029,19 +1022,11 @@ void CPythonMiniMap::RenderAtlas(float fScreenX, float fScreenY) if (TYPE_TARGET == rAtlasMarkInfo.m_byType) { - // Convert from WhiteMark-centered to actual center for rendering - __RenderMiniWayPointMark( - rAtlasMarkInfo.m_fScreenX + m_WhiteMark.GetWidth() / 2, - rAtlasMarkInfo.m_fScreenY + m_WhiteMark.GetHeight() / 2 - ); + __RenderMiniWayPointMark(rAtlasMarkInfo.m_fScreenX, rAtlasMarkInfo.m_fScreenY); } else { - // Convert from WhiteMark-centered to actual center for rendering - __RenderWayPointMark( - rAtlasMarkInfo.m_fScreenX + m_WhiteMark.GetWidth() / 2, - rAtlasMarkInfo.m_fScreenY + m_WhiteMark.GetHeight() / 2 - ); + __RenderWayPointMark(rAtlasMarkInfo.m_fScreenX, rAtlasMarkInfo.m_fScreenY); } }