Advertisement
Heathcliff97

Metin2 DirectX9 Minimap Transparency bug fix

Jan 31st, 2022 (edited)
1,006
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.18 KB | None | 0 0
  1. In StateManager.h searh:
  2. HRESULT DrawIndexedPrimitive(D3DPRIMITIVETYPE PrimitiveType, UINT minIndex, UINT NumVertices, UINT startIndex, UINT primCount);
  3.  
  4. Add under:
  5. HRESULT DrawIndexedPrimitive1(D3DPRIMITIVETYPE PrimitiveType, UINT minIndex, UINT NumVertices, UINT startIndex, UINT primCount);
  6.  
  7.  
  8. In StateManager.cpp search:
  9. HRESULT CStateManager::DrawIndexedPrimitive(D3DPRIMITIVETYPE PrimitiveType, UINT minIndex, UINT NumVertices, UINT startIndex, UINT primCount)
  10. {
  11.  
  12.     return (m_lpD3DDev->DrawIndexedPrimitive(PrimitiveType, minIndex, 0, NumVertices, startIndex, primCount));
  13.  
  14. }
  15.  
  16. Add under:
  17. HRESULT CStateManager::DrawIndexedPrimitive1(D3DPRIMITIVETYPE PrimitiveType, UINT minIndex, UINT NumVertices, UINT startIndex, UINT primCount)
  18. {
  19.     return (m_lpD3DDev->DrawIndexedPrimitive(PrimitiveType, 0, minIndex, NumVertices, startIndex, primCount));
  20.  
  21. }
  22.  
  23.  
  24. In PythonMinimap.cpp search:
  25.     for (BYTE byTerrainNum = 0; byTerrainNum < AROUND_AREA_NUM; ++byTerrainNum)
  26.     {
  27.         LPDIRECT3DTEXTURE9 pMiniMapTexture = m_lpMiniMapTexture[byTerrainNum];
  28.         STATEMANAGER.SetTexture(0, pMiniMapTexture);
  29.         if (pMiniMapTexture)
  30.         {
  31.             CStateManager& rkSttMgr=CStateManager::Instance();
  32.             rkSttMgr.DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 4, byTerrainNum * 6, 2);
  33.         }
  34.         else
  35.         {
  36.             STATEMANAGER.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TFACTOR);
  37.             STATEMANAGER.DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 4, byTerrainNum * 6, 2);
  38.             STATEMANAGER.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
  39.         }
  40.     }
  41.  
  42. Change like this:
  43.     for (BYTE byTerrainNum = 0; byTerrainNum < AROUND_AREA_NUM; ++byTerrainNum)
  44.     {
  45.         LPDIRECT3DTEXTURE9 pMiniMapTexture = m_lpMiniMapTexture[byTerrainNum];
  46.         STATEMANAGER.SetTexture(0, pMiniMapTexture);
  47.         if (pMiniMapTexture)
  48.         {
  49.             CStateManager& rkSttMgr=CStateManager::Instance();
  50.             rkSttMgr.DrawIndexedPrimitive1(D3DPT_TRIANGLELIST, byTerrainNum * 4, 4, byTerrainNum * 6, 2); // Directx9 Fix
  51.         }
  52.         else
  53.         {
  54.             STATEMANAGER.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TFACTOR);
  55.             STATEMANAGER.DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 4, byTerrainNum * 6, 2);
  56.             STATEMANAGER.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
  57.         }
  58.     }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement