From b4637e4782eb27ee381793d9d77e0d3bebc158f6 Mon Sep 17 00:00:00 2001 From: d1str4ught <> Date: Mon, 22 Sep 2025 00:45:08 +0200 Subject: [PATCH] client sources moved to C++20 --- CMakeLists.txt | 2 +- src/SpeedTreeLib/SpeedTreeWrapper.cpp | 21 ++++++++++++++++++--- src/UserInterface/UserInterface.cpp | 7 +++---- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52c3831..2732f64 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ project(m2dev-client-src) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_MODULE_PATH diff --git a/src/SpeedTreeLib/SpeedTreeWrapper.cpp b/src/SpeedTreeLib/SpeedTreeWrapper.cpp index 656284f..32b5ac0 100644 --- a/src/SpeedTreeLib/SpeedTreeWrapper.cpp +++ b/src/SpeedTreeLib/SpeedTreeWrapper.cpp @@ -48,6 +48,8 @@ #include "SpeedTreeWrapper.h" #include "VertexShaders.h" +#include + using namespace std; LPDIRECT3DVERTEXDECLARATION9 CSpeedTreeWrapper::ms_dwBranchVertexShader = nullptr; @@ -429,15 +431,28 @@ bool CSpeedTreeWrapper::LoadTree(const char * pszSptFile, const BYTE * c_pbBlock m_pTextureInfo = new CSpeedTreeRT::STextures; m_pSpeedTree->GetTextures(*m_pTextureInfo); + std::filesystem::path path = pszSptFile; + path = path.parent_path(); + + auto branchTexture = path / m_pTextureInfo->m_pBranchTextureFilename; + branchTexture.replace_extension(".dds"); + // load branch textures - LoadTexture((CFileNameHelper::GetPath(string(pszSptFile)) + CFileNameHelper::NoExtension(string(m_pTextureInfo->m_pBranchTextureFilename)) + ".dds").c_str(), m_BranchImageInstance); + LoadTexture(branchTexture.generic_string().c_str(), m_BranchImageInstance); #ifdef WRAPPER_RENDER_SELF_SHADOWS + auto selfShadowTexture = path / m_pTextureInfo->m_pSelfShadowFilename; + selfShadowTexture.replace_extension(".dds"); + if (m_pTextureInfo->m_pSelfShadowFilename != NULL) - LoadTexture((CFileNameHelper::GetPath(string(pszSptFile)) + CFileNameHelper::NoExtension(string(m_pTextureInfo->m_pSelfShadowFilename)) + ".dds").c_str(), m_ShadowImageInstance); + LoadTexture(selfShadowTexture.generic_string().c_str(), m_ShadowImageInstance); #endif + + auto compositeTexture = path / m_pTextureInfo->m_pCompositeFilename; + compositeTexture.replace_extension(".dds"); + if (m_pTextureInfo->m_pCompositeFilename) - LoadTexture((CFileNameHelper::GetPath(string(pszSptFile)) + CFileNameHelper::NoExtension(string(m_pTextureInfo->m_pCompositeFilename)) + ".dds").c_str(), m_CompositeImageInstance); + LoadTexture(compositeTexture.generic_string().c_str(), m_CompositeImageInstance); // setup the index and vertex buffers SetupBuffers(); diff --git a/src/UserInterface/UserInterface.cpp b/src/UserInterface/UserInterface.cpp index d1d435b..908041d 100644 --- a/src/UserInterface/UserInterface.cpp +++ b/src/UserInterface/UserInterface.cpp @@ -15,6 +15,7 @@ #include "PackLib/PackManager.h" #include +#include extern "C" { extern int _fltused; @@ -250,11 +251,9 @@ bool PackInitialize(const char * c_pszFolder) "uiloading", }; - std::filesystem::path folderPath = c_pszFolder; - - CPackManager::instance().AddPack((folderPath / "root.pck").generic_string()); + CPackManager::instance().AddPack(std::format("{}/root.pck", c_pszFolder)); for (const std::string& packFileName : packFiles) { - CPackManager::instance().AddPack((folderPath / (packFileName + ".pck")).generic_string()); + CPackManager::instance().AddPack(std::format("{}/{}.pck", c_pszFolder, packFileName)); } NANOEND