Implement uniform scaling (Fixes GF large maps marker positionng issues)

Clear guild terrain marker on map change
Add AtlasScale capability
This commit is contained in:
SuntrustDev
2026-02-17 14:43:33 +01:00
parent a0279b8f4b
commit 41aecfbc4d
5 changed files with 96 additions and 15 deletions

View File

@@ -81,6 +81,7 @@ class CPythonMiniMap : public CScreen, public CSingleton<CPythonMiniMap>
void UnregisterAtlasWindow();
void OpenAtlasWindow();
void SetAtlasCenterPosition(int x, int y);
void SetAtlasScale(float fx, float fy);
// NPC List
void ClearAtlasMarkInfo();
@@ -106,6 +107,9 @@ class CPythonMiniMap : public CScreen, public CSingleton<CPythonMiniMap>
void __RenderTargetMark(int ixCenter, int iyCenter);
void __GlobalPositionToAtlasPosition(long lx, long ly, float * pfx, float * pfy);
void __AtlasPositionToGlobalPosition(float fAtlasX, float fAtlasY, float* pfWorldX, float* pfWorldY) const;
void ComputeAtlasCenteringOffsets();
float GetAtlasUniformScale() const;
protected:
// Atlas
@@ -208,7 +212,7 @@ class CPythonMiniMap : public CScreen, public CSingleton<CPythonMiniMap>
D3DXMATRIX m_matMiniMapCover;
bool m_bShowAtlas;
CGraphicImageInstance m_AtlasImageInstance;
CGraphicExpandedImageInstance m_AtlasImageInstance;
D3DXMATRIX m_matWorldAtlas;
CGraphicExpandedImageInstance m_AtlasPlayerMark;
@@ -217,6 +221,9 @@ class CPythonMiniMap : public CScreen, public CSingleton<CPythonMiniMap>
DWORD m_dwAtlasBaseX;
DWORD m_dwAtlasBaseY;
float m_fAtlasOffsetX;
float m_fAtlasOffsetY;
float m_fAtlasMaxX;
float m_fAtlasMaxY;