CantSt0p 52 Posted June 3 Share Posted June 3 "extended version" to load a CRC list.. here is a diff. ChatGPT 3.5 powered Spoiler Subject: [PATCH] ENABLE_AUTO_LANTERN_EFFECT extend extend for CRC list not a single CRC --- .../Srcs/Client/GameLib/Area.cpp | 23 ++++++++++++++----- .../Srcs/Client/GameLib/PropertyManager.cpp | 7 ++---- .../Srcs/Client/GameLib/PropertyManager.h | 8 +++---- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git Client/GameLib/Area.cpp Client/GameLib/Area.cpp index 5ebaefba7..105d88fa5 100644 --- Client/GameLib/Area.cpp +++ Client/GameLib/Area.cpp @@ -879,14 +879,25 @@ bool CArea::__Load_LoadObject(const char * c_szFileName) m_ObjectDataVector.push_back(ObjectData); #ifdef ENABLE_AUTO_LANTERN_EFFECT - if (ObjectData.dwCRC == CPropertyManager::Instance().GetLanternCRC()) + const std::vector<DWORD>& lanternCRC = CPropertyManager::Instance().GetLanternCRC(); + const std::vector<DWORD>& lanternEffectCRC = CPropertyManager::Instance().GetLanternEffectCRC(); + + for (size_t i = 0; i < lanternCRC.size(); ++i) { - ObjectData.dwCRC = CPropertyManager::Instance().GetLanternEffectCRC(); + if (ObjectData.dwCRC == lanternCRC[i]) + { + ObjectData.dwCRC = lanternEffectCRC[i]; - if (!CPropertyManager::Instance().Get(ObjectData.dwCRC, &pProperty)) - TraceError(" CArea::LoadObject Property(%u) Cannot Load Lantern Effect ERROR", ObjectData.dwCRC); - else - m_ObjectDataVector.push_back(ObjectData); + if (!CPropertyManager::Instance().Get(ObjectData.dwCRC, &pProperty)) + { + TraceError(" CArea::LoadObject Property(%u) Cannot Load Lantern Effect ERROR", ObjectData.dwCRC); + } + else + { + m_ObjectDataVector.push_back(ObjectData); + } + break; + } } #endif } diff --git Client/GameLib/PropertyManager.cpp Client/GameLib/PropertyManager.cpp index 10af03eb1..596019b08 100644 --- Client/GameLib/PropertyManager.cpp +++ Client/GameLib/PropertyManager.cpp @@ -6,9 +6,6 @@ CPropertyManager::CPropertyManager() : m_isFileMode(true) { -#ifdef ENABLE_AUTO_LANTERN_EFFECT - m_dwLanternCRC = m_dwLanternEffectCRC = 0xffffffff; -#endif } CPropertyManager::~CPropertyManager() @@ -154,8 +151,8 @@ bool CPropertyManager::Register(const char* c_pszFileName, CProperty** ppPropert DWORD dwCRC = pProperty->GetCRC(); #ifdef ENABLE_AUTO_LANTERN_EFFECT - m_dwLanternCRC = 1678169896; - m_dwLanternEffectCRC = 1025956065; + m_dwLanternCRC = {2288483325, 1678169896, }; + m_dwLanternEffectCRC = {3363030126, 1025956065, }; #endif TPropertyCRCMap::iterator itor = m_PropertyByCRCMap.find(dwCRC); diff --git Client/GameLib/PropertyManager.h Client/GameLib/PropertyManager.h index d5bc6d75b..45f517839 100644 --- Client/GameLib/PropertyManager.h +++ Client/GameLib/PropertyManager.h @@ -43,12 +43,12 @@ class CPropertyManager : public CSingleton<CPropertyManager> CEterFileDict m_fileDict; #ifdef ENABLE_AUTO_LANTERN_EFFECT public: - DWORD GetLanternCRC() const { return m_dwLanternCRC; } - DWORD GetLanternEffectCRC() const { return m_dwLanternEffectCRC; } + const std::vector<DWORD>& GetLanternCRC() const { return m_dwLanternCRC; } + const std::vector<DWORD>& GetLanternEffectCRC() const { return m_dwLanternEffectCRC; } private: - DWORD m_dwLanternCRC; - DWORD m_dwLanternEffectCRC; + std::vector<DWORD> m_dwLanternCRC; + std::vector<DWORD> m_dwLanternEffectCRC; #endif }; https://diffy.org/ Link to comment Share on other sites More sharing options...
Recommended Posts