Jump to content

Auto Lantern Effect


Recommended Posts

"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



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.