fix: update YYCC dependency
- move EnumsHelper into YYCC because it is widely used. - rename all calling to EnumsHelper due to this modification. - add version checker in code to make sure that user use correct YYCC library to compile. - modify some include syntax because the include directory layout changes of YYCC. - update CMake script to resolve the bug that we can not export LibCmo (thanks doyaGu and BLumia).
This commit is contained in:
		| @ -32,7 +32,7 @@ namespace LibCmo::CK2::ObjImpls { | ||||
| 		m_ObjectFlags = flags; | ||||
| 	} | ||||
| 	bool CKObject::IsToBeDeleted() const { | ||||
| 		return EnumsHelper::Has(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_TOBEDELETED); | ||||
| 		return YYCC::EnumHelper::Has(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_TOBEDELETED); | ||||
| 	} | ||||
| 	CKContext* CKObject::GetCKContext() const { | ||||
| 		return m_Context; | ||||
| @ -51,10 +51,10 @@ namespace LibCmo::CK2::ObjImpls { | ||||
| 	void CKObject::PreSave(CKFileVisitor* file, CKDWORD flags) {} | ||||
|  | ||||
| 	bool CKObject::Save(CKStateChunk* chunk, CKFileVisitor* file, CKDWORD flags) { | ||||
| 		if (EnumsHelper::Has(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE)) { | ||||
| 		if (YYCC::EnumHelper::Has(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE)) { | ||||
| 			// if hierarchy hidden | ||||
| 			chunk->WriteIdentifier(CK_STATESAVEFLAGS_OBJECT::CK_STATESAVE_OBJECTHIERAHIDDEN); | ||||
| 		} else if (!EnumsHelper::Has(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE)) { | ||||
| 		} else if (!YYCC::EnumHelper::Has(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE)) { | ||||
| 			// if really hidden | ||||
| 			chunk->WriteIdentifier(CK_STATESAVEFLAGS_OBJECT::CK_STATESAVE_OBJECTHIDDEN); | ||||
| 		} | ||||
| @ -65,18 +65,20 @@ namespace LibCmo::CK2::ObjImpls { | ||||
|  | ||||
| 	bool CKObject::Load(CKStateChunk* chunk, CKFileVisitor* file) { | ||||
| 		if (chunk->SeekIdentifier(CK_STATESAVEFLAGS_OBJECT::CK_STATESAVE_OBJECTHIDDEN)) { | ||||
| 			EnumsHelper::Rm(this->m_ObjectFlags,  | ||||
| 				EnumsHelper::Merge({ CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE, CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE })); | ||||
| 			YYCC::EnumHelper::Remove(this->m_ObjectFlags,  | ||||
| 				CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE, | ||||
| 				CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE | ||||
| 			); | ||||
| 		} else { | ||||
| 			if (chunk->SeekIdentifier(CK_STATESAVEFLAGS_OBJECT::CK_STATESAVE_OBJECTHIERAHIDDEN)) { | ||||
| 				// != 0 | ||||
| 				EnumsHelper::Rm(this->m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE); | ||||
| 				EnumsHelper::Add(this->m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE); | ||||
| 				YYCC::EnumHelper::Remove(this->m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE); | ||||
| 				YYCC::EnumHelper::Add(this->m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE); | ||||
|  | ||||
| 			} else { | ||||
| 				// == 0 | ||||
| 				EnumsHelper::Add(this->m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE); | ||||
| 				EnumsHelper::Rm(this->m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE); | ||||
| 				YYCC::EnumHelper::Add(this->m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE); | ||||
| 				YYCC::EnumHelper::Remove(this->m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE); | ||||
|  | ||||
| 			} | ||||
| 		} | ||||
| @ -89,17 +91,17 @@ namespace LibCmo::CK2::ObjImpls { | ||||
|  | ||||
| 	void CKObject::Show(CK_OBJECT_SHOWOPTION show) { | ||||
| 		// clear all visible data of object flags | ||||
| 		EnumsHelper::Rm(m_ObjectFlags, EnumsHelper::Merge({ | ||||
| 		YYCC::EnumHelper::Remove(m_ObjectFlags, | ||||
| 			CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE, | ||||
| 			CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE | ||||
| 			})); | ||||
| 		); | ||||
|  | ||||
| 		switch (show) { | ||||
| 			case CK_OBJECT_SHOWOPTION::CKSHOW: | ||||
| 				EnumsHelper::Add(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE); | ||||
| 				YYCC::EnumHelper::Add(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE); | ||||
| 				break; | ||||
| 			case CK_OBJECT_SHOWOPTION::CKHIERARCHICALHIDE: | ||||
| 				EnumsHelper::Add(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE); | ||||
| 				YYCC::EnumHelper::Add(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_HIERACHICALHIDE); | ||||
| 				break; | ||||
| 			case CK_OBJECT_SHOWOPTION::CKHIDE: | ||||
| 				return; | ||||
| @ -107,7 +109,7 @@ namespace LibCmo::CK2::ObjImpls { | ||||
| 	} | ||||
|  | ||||
| 	bool CKObject::IsVisible() const { | ||||
| 		return EnumsHelper::Has(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE); | ||||
| 		return YYCC::EnumHelper::Has(m_ObjectFlags, CK_OBJECT_FLAGS::CK_OBJECT_VISIBLE); | ||||
| 	} | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user