diff --git a/BMap/BMap/BMExports.cpp b/BMap/BMap/BMExports.cpp index 873f175..4230f8c 100644 --- a/BMap/BMap/BMExports.cpp +++ b/BMap/BMap/BMExports.cpp @@ -6,7 +6,7 @@ #pragma region Help & Save Functions -static constexpr const LibCmo::CK2::CK_ID INVALID_CKID = 0; +static constexpr LibCmo::CK2::CK_ID INVALID_CKID = 0; static LibCmo::CK2::CK_ID SafeGetID(LibCmo::CK2::ObjImpls::CKObject* obj) { if (obj == nullptr) return INVALID_CKID; else return obj->GetID(); diff --git a/DEVNOTE.md b/DEVNOTE.md new file mode 100644 index 0000000..e69de29 diff --git a/LibCmo/LibCmo/CK2/CKBitmapData.cpp b/LibCmo/LibCmo/CK2/CKBitmapData.cpp index 1a438a7..46e0adc 100644 --- a/LibCmo/LibCmo/CK2/CKBitmapData.cpp +++ b/LibCmo/LibCmo/CK2/CKBitmapData.cpp @@ -4,14 +4,15 @@ #include "CKFile.hpp" #include "DataHandlers/CKBitmapHandler.hpp" #include "MgrImpls/CKPathManager.hpp" +#include #include namespace LibCmo::CK2 { #pragma region Assist RW Functions - constexpr const CKDWORD c_SpecificFmtHasTransparent = 2; - constexpr const CKDWORD c_SpecificFmtNoTransparent = 1; + constexpr CKDWORD c_SpecificFmtHasTransparent = 2; + constexpr CKDWORD c_SpecificFmtNoTransparent = 1; bool CKBitmapData::ReadSpecificFormatBitmap(CKStateChunk* chk, VxMath::VxImageDescEx* slot) { // read transparent prop @@ -521,7 +522,7 @@ namespace LibCmo::CK2 { m_Slots.resize(count); if (count == 0) { - YYCC::EnumHelper::Add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_INVALID); + yycc::cenum::add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_INVALID); } } @@ -535,8 +536,8 @@ namespace LibCmo::CK2 { m_CurrentSlot = slot; // NOTE: idk what the fuck this is. just interpter the IDA decompiled code. - if (YYCC::EnumHelper::Has(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP)) { - YYCC::EnumHelper::Add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_FORCERESTORE); + if (yycc::cenum::has(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP)) { + yycc::cenum::add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_FORCERESTORE); } } @@ -660,14 +661,14 @@ namespace LibCmo::CK2 { // but we decide split the flag settings and slot. // User should set slot count manually. if (is_cube) { - YYCC::EnumHelper::Add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP); + yycc::cenum::add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP); } else { - YYCC::EnumHelper::Remove(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP); + yycc::cenum::remove(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP); } } bool CKBitmapData::IsCubeMap() const { - return YYCC::EnumHelper::Has(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP); + return yycc::cenum::has(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP); } const CKBitmapProperties& CKBitmapData::GetSaveFormat() const { @@ -688,14 +689,14 @@ namespace LibCmo::CK2 { void CKBitmapData::SetTransparent(bool Transparency) { if (Transparency) { - YYCC::EnumHelper::Add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_TRANSPARENT); + yycc::cenum::add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_TRANSPARENT); } else { - YYCC::EnumHelper::Remove(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_TRANSPARENT); + yycc::cenum::remove(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_TRANSPARENT); } } bool CKBitmapData::IsTransparent() const { - return YYCC::EnumHelper::Has(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_TRANSPARENT); + return yycc::cenum::has(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_TRANSPARENT); } void CKBitmapData::SetTransparentColor(CKDWORD col) { diff --git a/LibCmo/LibCmo/CK2/CKBitmapData.hpp b/LibCmo/LibCmo/CK2/CKBitmapData.hpp index 22a1dfe..46371e2 100644 --- a/LibCmo/LibCmo/CK2/CKBitmapData.hpp +++ b/LibCmo/LibCmo/CK2/CKBitmapData.hpp @@ -1,6 +1,7 @@ #pragma once #include "../VTInternal.hpp" +#include namespace LibCmo::CK2 { @@ -26,7 +27,7 @@ namespace LibCmo::CK2 { CKBitmapSlot() : m_ImageData(), m_FileName() {} ~CKBitmapSlot() {} - YYCC_DEF_CLS_COPY_MOVE(CKBitmapSlot); + YYCC_DEFAULT_COPY_MOVE(CKBitmapSlot) VxMath::VxImageDescEx m_ImageData; XContainer::XString m_FileName; @@ -36,7 +37,7 @@ namespace LibCmo::CK2 { public: CKBitmapData(CKContext* ctx); ~CKBitmapData(); - YYCC_DEL_CLS_COPY_MOVE(CKBitmapData); + YYCC_DELETE_COPY_MOVE(CKBitmapData) #pragma region RW Funcs diff --git a/LibCmo/LibCmo/CK2/CKContext.hpp b/LibCmo/LibCmo/CK2/CKContext.hpp index 5a9a9c4..e48ad9f 100644 --- a/LibCmo/LibCmo/CK2/CKContext.hpp +++ b/LibCmo/LibCmo/CK2/CKContext.hpp @@ -1,6 +1,7 @@ #pragma once #include "../VTInternal.hpp" +#include #include #include #include @@ -21,7 +22,7 @@ namespace LibCmo::CK2 { public: CKContext(); ~CKContext(); - YYCC_DEL_CLS_COPY_MOVE(CKContext); + YYCC_DELETE_COPY_MOVE(CKContext) // ========== Engine runtime ========== public: diff --git a/LibCmo/LibCmo/CK2/CKDefines.hpp b/LibCmo/LibCmo/CK2/CKDefines.hpp index 3818fd9..916ba54 100644 --- a/LibCmo/LibCmo/CK2/CKDefines.hpp +++ b/LibCmo/LibCmo/CK2/CKDefines.hpp @@ -2,6 +2,7 @@ #include "CKTypes.hpp" #include "CKGlobals.hpp" +#include namespace LibCmo::CK2 { @@ -9,39 +10,39 @@ namespace LibCmo::CK2 { // Virtools Managers GUID second DWORD must be 0 - constexpr const CKDWORD OBJECT_MANAGER_GUID1 = 0x7cbb3b91; - constexpr const CKDWORD ATTRIBUTE_MANAGER_GUID1 = 0x3d242466; - constexpr const CKDWORD MESSAGE_MANAGER_GUID1 = 0x466a0fac; - constexpr const CKDWORD FLOOR_MANAGER_GUID1 = 0x420936f9; - constexpr const CKDWORD COLLISION_MANAGER_GUID1 = 0x38244712; - constexpr const CKDWORD GRID_MANAGER_GUID1 = 0x7f004791; - constexpr const CKDWORD TIME_MANAGER_GUID1 = 0x89ce7b32; - constexpr const CKDWORD BEHAVIOR_MANAGER_GUID1 = 0x58d621ae; - constexpr const CKDWORD INPUT_MANAGER_GUID1 = 0xf787c904; - constexpr const CKDWORD SOUND_MANAGER_GUID1 = 0xdce135f6; - constexpr const CKDWORD MIDI_MANAGER_GUID1 = 0x594154a6; - constexpr const CKDWORD INTERFACE_MANAGER_GUID1 = 0x9a4b8e3d; - constexpr const CKDWORD RENDER_MANAGER_GUID1 = 0xa213c8d5; - constexpr const CKDWORD PARAMETER_MANAGER_GUID1 = 0x9ce57ab6; - constexpr const CKDWORD PATH_MANAGER_GUID1 = 0x15fd54b9; - constexpr const CKDWORD VARIABLE_MANAGER_GUID1 = 0x98cc3cc9; + constexpr CKDWORD OBJECT_MANAGER_GUID1 = 0x7cbb3b91; + constexpr CKDWORD ATTRIBUTE_MANAGER_GUID1 = 0x3d242466; + constexpr CKDWORD MESSAGE_MANAGER_GUID1 = 0x466a0fac; + constexpr CKDWORD FLOOR_MANAGER_GUID1 = 0x420936f9; + constexpr CKDWORD COLLISION_MANAGER_GUID1 = 0x38244712; + constexpr CKDWORD GRID_MANAGER_GUID1 = 0x7f004791; + constexpr CKDWORD TIME_MANAGER_GUID1 = 0x89ce7b32; + constexpr CKDWORD BEHAVIOR_MANAGER_GUID1 = 0x58d621ae; + constexpr CKDWORD INPUT_MANAGER_GUID1 = 0xf787c904; + constexpr CKDWORD SOUND_MANAGER_GUID1 = 0xdce135f6; + constexpr CKDWORD MIDI_MANAGER_GUID1 = 0x594154a6; + constexpr CKDWORD INTERFACE_MANAGER_GUID1 = 0x9a4b8e3d; + constexpr CKDWORD RENDER_MANAGER_GUID1 = 0xa213c8d5; + constexpr CKDWORD PARAMETER_MANAGER_GUID1 = 0x9ce57ab6; + constexpr CKDWORD PATH_MANAGER_GUID1 = 0x15fd54b9; + constexpr CKDWORD VARIABLE_MANAGER_GUID1 = 0x98cc3cc9; - constexpr const CKGUID OBJECT_MANAGER_GUID { OBJECT_MANAGER_GUID1, 0 }; - constexpr const CKGUID ATTRIBUTE_MANAGER_GUID { ATTRIBUTE_MANAGER_GUID1, 0 }; - constexpr const CKGUID MESSAGE_MANAGER_GUID { MESSAGE_MANAGER_GUID1, 0 }; - constexpr const CKGUID TIME_MANAGER_GUID { TIME_MANAGER_GUID1, 0 }; - constexpr const CKGUID SOUND_MANAGER_GUID { SOUND_MANAGER_GUID1, 0 }; - constexpr const CKGUID MIDI_MANAGER_GUID { MIDI_MANAGER_GUID1, 0 }; - constexpr const CKGUID INPUT_MANAGER_GUID { INPUT_MANAGER_GUID1, 0 }; - constexpr const CKGUID BEHAVIOR_MANAGER_GUID { BEHAVIOR_MANAGER_GUID1, 0 }; - constexpr const CKGUID FLOOR_MANAGER_GUID { FLOOR_MANAGER_GUID1, 0 }; - constexpr const CKGUID COLLISION_MANAGER_GUID { COLLISION_MANAGER_GUID1, 0 }; - constexpr const CKGUID GRID_MANAGER_GUID { GRID_MANAGER_GUID1, 0 }; - constexpr const CKGUID INTERFACE_MANAGER_GUID { INTERFACE_MANAGER_GUID1, 0 }; - constexpr const CKGUID RENDER_MANAGER_GUID { RENDER_MANAGER_GUID1, 0 }; - constexpr const CKGUID PARAMETER_MANAGER_GUID { PARAMETER_MANAGER_GUID1, 0 }; - constexpr const CKGUID PATH_MANAGER_GUID { PATH_MANAGER_GUID1, 0 }; - constexpr const CKGUID VARIABLE_MANAGER_GUID { VARIABLE_MANAGER_GUID1, 0 }; + constexpr CKGUID OBJECT_MANAGER_GUID { OBJECT_MANAGER_GUID1, 0 }; + constexpr CKGUID ATTRIBUTE_MANAGER_GUID { ATTRIBUTE_MANAGER_GUID1, 0 }; + constexpr CKGUID MESSAGE_MANAGER_GUID { MESSAGE_MANAGER_GUID1, 0 }; + constexpr CKGUID TIME_MANAGER_GUID { TIME_MANAGER_GUID1, 0 }; + constexpr CKGUID SOUND_MANAGER_GUID { SOUND_MANAGER_GUID1, 0 }; + constexpr CKGUID MIDI_MANAGER_GUID { MIDI_MANAGER_GUID1, 0 }; + constexpr CKGUID INPUT_MANAGER_GUID { INPUT_MANAGER_GUID1, 0 }; + constexpr CKGUID BEHAVIOR_MANAGER_GUID { BEHAVIOR_MANAGER_GUID1, 0 }; + constexpr CKGUID FLOOR_MANAGER_GUID { FLOOR_MANAGER_GUID1, 0 }; + constexpr CKGUID COLLISION_MANAGER_GUID { COLLISION_MANAGER_GUID1, 0 }; + constexpr CKGUID GRID_MANAGER_GUID { GRID_MANAGER_GUID1, 0 }; + constexpr CKGUID INTERFACE_MANAGER_GUID { INTERFACE_MANAGER_GUID1, 0 }; + constexpr CKGUID RENDER_MANAGER_GUID { RENDER_MANAGER_GUID1, 0 }; + constexpr CKGUID PARAMETER_MANAGER_GUID { PARAMETER_MANAGER_GUID1, 0 }; + constexpr CKGUID PATH_MANAGER_GUID { PATH_MANAGER_GUID1, 0 }; + constexpr CKGUID VARIABLE_MANAGER_GUID { VARIABLE_MANAGER_GUID1, 0 }; #pragma endregion @@ -50,17 +51,17 @@ namespace LibCmo::CK2 { /** * @brief The identifier of Virtools file. */ - constexpr const CKCHAR CKNEMOFI[] = u8"Nemo Fi"; + constexpr CKCHAR CKNEMOFI[] = u8"Nemo Fi"; /** * @brief Current Version of CK Engine (Day/Month/Year) */ - constexpr const CKDWORD CKVERSION = 0x13022002u; + constexpr CKDWORD CKVERSION = 0x13022002u; /** * @brief Current Version of Dev */ - constexpr const CKDWORD DEVBUILD = 0x02010001u; - constexpr const CKDWORD DEVVERSION = 0u; - constexpr const CKGUID VIRTOOLS_GUID = CKGUID(0x56495254u, 0x4f4f4c53u); + constexpr CKDWORD DEVBUILD = 0x02010001u; + constexpr CKDWORD DEVVERSION = 0u; + constexpr CKGUID VIRTOOLS_GUID = CKGUID(0x56495254u, 0x4f4f4c53u); #pragma endregion @@ -135,7 +136,7 @@ namespace LibCmo::CK2 { m_ReaderGuid(), m_Ext() {} CKBitmapProperties(const CKGUID& guid, CKSTRING ext) : m_ReaderGuid(guid), m_Ext(ext) {} - YYCC_DEF_CLS_COPY_MOVE(CKBitmapProperties); + YYCC_DEFAULT_COPY_MOVE(CKBitmapProperties) CKGUID m_ReaderGuid; /**< CKGUID that uniquely identifies the reader that created this properties structure */ CKFileExtension m_Ext; /**< File Extension of the image being described by this structure */ diff --git a/LibCmo/LibCmo/CK2/CKFile.hpp b/LibCmo/LibCmo/CK2/CKFile.hpp index 7d1b15e..dac017d 100644 --- a/LibCmo/LibCmo/CK2/CKFile.hpp +++ b/LibCmo/LibCmo/CK2/CKFile.hpp @@ -1,6 +1,7 @@ #pragma once #include "../VTInternal.hpp" +#include namespace LibCmo::XContainer { using XIntArray = XArray; @@ -40,7 +41,7 @@ namespace LibCmo::CK2 { ~CKBufferParser() { if (this->m_NeedManualFree) delete[](this->m_MemBegin); } - YYCC_DEL_CLS_COPY_MOVE(CKBufferParser); + YYCC_DELETE_COPY_MOVE(CKBufferParser) const void* GetPtr(CKINT extraoff = 0) { return (this->m_MemBegin + m_MemPos + extraoff); } void* GetMutablePtr(CKINT extraoff = 0) { return (this->m_MemBegin + m_MemPos + extraoff); } @@ -96,7 +97,7 @@ namespace LibCmo::CK2 { ObjectCount(0u), ManagerCount(0u), MaxIDSaved(0u), Crc(0u), Hdr1PackSize(0u), Hdr1UnPackSize(0u), DataPackSize(0u), DataUnPackSize(0u) {} ~CKFileInfo() {} - YYCC_DEF_CLS_COPY_MOVE(CKFileInfo); + YYCC_DEFAULT_COPY_MOVE(CKFileInfo) CKDWORD ProductVersion; /**< Virtools Version (Dev/Creation). (CK_VIRTOOLS_VERSION) */ CKDWORD ProductBuild; /**< Virtools Build Number. */ @@ -155,7 +156,7 @@ namespace LibCmo::CK2 { CKFilePluginDependencies() : m_PluginCategory(CK_PLUGIN_TYPE::CKPLUGIN_MANAGER_DLL), m_Guids() {} ~CKFilePluginDependencies() {} - YYCC_DEF_CLS_COPY_MOVE(CKFilePluginDependencies); + YYCC_DEFAULT_COPY_MOVE(CKFilePluginDependencies) CK_PLUGIN_TYPE m_PluginCategory; XContainer::XArray m_Guids; @@ -187,7 +188,7 @@ namespace LibCmo::CK2 { public: CKFileReader(CKContext* ctx); ~CKFileReader(); - YYCC_DEL_CLS_COPY_MOVE(CKFileReader); + YYCC_DELETE_COPY_MOVE(CKFileReader) // ========== Loading ========== CKERROR ShallowLoad(CKSTRING u8_filename); @@ -228,7 +229,7 @@ namespace LibCmo::CK2 { CKFileWriter(CKContext* ctx); CKFileWriter(CKContext* ctx, CKFileReader* reader, bool is_shallow); ~CKFileWriter(); - YYCC_DEL_CLS_COPY_MOVE(CKFileWriter); + YYCC_DELETE_COPY_MOVE(CKFileWriter) // ========== Saving Preparing ========== bool AddSavedObject(ObjImpls::CKObject* obj, CKDWORD flags = CK_STATESAVE_ALL); diff --git a/LibCmo/LibCmo/CK2/CKFileReader.cpp b/LibCmo/LibCmo/CK2/CKFileReader.cpp index 2ae809a..d2aadfd 100644 --- a/LibCmo/LibCmo/CK2/CKFileReader.cpp +++ b/LibCmo/LibCmo/CK2/CKFileReader.cpp @@ -4,6 +4,8 @@ #include "MgrImpls/CKPathManager.hpp" #include "../VxMath/VxMemoryMappedFile.hpp" #include "CKContext.hpp" +#include +#include #include namespace LibCmo::CK2 { @@ -234,8 +236,8 @@ namespace LibCmo::CK2 { std::string name_conv; // ========== compress feature process ========== - if (YYCC::EnumHelper::Has(this->m_FileInfo.FileWriteMode, CK_FILE_WRITEMODE::CKFILE_CHUNKCOMPRESSED_OLD) || - YYCC::EnumHelper::Has(this->m_FileInfo.FileWriteMode, CK_FILE_WRITEMODE::CKFILE_WHOLECOMPRESSED)) { + if (yycc::cenum::has(this->m_FileInfo.FileWriteMode, CK_FILE_WRITEMODE::CKFILE_CHUNKCOMPRESSED_OLD) + || yycc::cenum::has(this->m_FileInfo.FileWriteMode, CK_FILE_WRITEMODE::CKFILE_WHOLECOMPRESSED)) { void* decomp_buffer = CKUnPackData(this->m_FileInfo.DataUnPackSize, parser->GetPtr(), this->m_FileInfo.DataPackSize); if (decomp_buffer != nullptr) { @@ -351,7 +353,7 @@ namespace LibCmo::CK2 { // read file body XContainer::XString tempfilename = m_Ctx->GetPathManager()->GetTempFilePath(file.c_str()); - FILE* fp = YYCC::IOHelper::UTF8FOpen(tempfilename.c_str(), u8"wb"); + FILE* fp = yycc::patch::fopen::fopen(tempfilename.c_str(), u8"wb"); if (fp != nullptr) { std::fwrite(parser->GetPtr(), sizeof(CKBYTE), filebodylen, fp); std::fclose(fp); diff --git a/LibCmo/LibCmo/CK2/CKFileWriter.cpp b/LibCmo/LibCmo/CK2/CKFileWriter.cpp index a176a18..764f973 100644 --- a/LibCmo/LibCmo/CK2/CKFileWriter.cpp +++ b/LibCmo/LibCmo/CK2/CKFileWriter.cpp @@ -5,6 +5,8 @@ #include "MgrImpls/CKBaseManager.hpp" #include "MgrImpls/CKPathManager.hpp" #include "../VxMath/VxMemoryMappedFile.hpp" +#include +#include #include namespace LibCmo::CK2 { @@ -216,8 +218,8 @@ namespace LibCmo::CK2 { } // compress header if needed - if (YYCC::EnumHelper::Has(fileWriteMode, CK_FILE_WRITEMODE::CKFILE_CHUNKCOMPRESSED_OLD) || - YYCC::EnumHelper::Has(fileWriteMode, CK_FILE_WRITEMODE::CKFILE_WHOLECOMPRESSED)) { + if (yycc::cenum::has(fileWriteMode, CK_FILE_WRITEMODE::CKFILE_CHUNKCOMPRESSED_OLD) + || yycc::cenum::has(fileWriteMode, CK_FILE_WRITEMODE::CKFILE_WHOLECOMPRESSED)) { CKDWORD comp_buf_size = 0; void* comp_buffer = CKPackData(hdrparser->GetBase(), hdrparser->GetSize(), comp_buf_size, m_Ctx->GetCompressionLevel()); @@ -263,8 +265,8 @@ namespace LibCmo::CK2 { } // compress header if needed - if (YYCC::EnumHelper::Has(fileWriteMode, CK_FILE_WRITEMODE::CKFILE_CHUNKCOMPRESSED_OLD) || - YYCC::EnumHelper::Has(fileWriteMode, CK_FILE_WRITEMODE::CKFILE_WHOLECOMPRESSED)) { + if (yycc::cenum::has(fileWriteMode, CK_FILE_WRITEMODE::CKFILE_CHUNKCOMPRESSED_OLD) + || yycc::cenum::has(fileWriteMode, CK_FILE_WRITEMODE::CKFILE_WHOLECOMPRESSED)) { CKDWORD comp_buf_size = 0; void* comp_buffer = CKPackData(datparser->GetBase(), datparser->GetSize(), comp_buf_size, m_Ctx->GetCompressionLevel()); @@ -303,7 +305,7 @@ namespace LibCmo::CK2 { // ========== Open File & Write Essential Data ========== // open file and test - FILE* fs = YYCC::IOHelper::UTF8FOpen(u8_filename, u8"wb"); + FILE* fs = yycc::patch::fopen::fopen(u8_filename, u8"wb"); if (fs == nullptr) return CKERROR::CKERR_CANTWRITETOFILE; // write small header + header + data std::fwrite(&rawHeader, sizeof(CKRawFileInfo), 1, fs); @@ -363,7 +365,7 @@ namespace LibCmo::CK2 { // try open file to check whether we can write it. CKERROR err; - FILE* tryfile = YYCC::IOHelper::UTF8FOpen(filename, u8"ab"); + FILE* tryfile = yycc::patch::fopen::fopen(filename, u8"ab"); if (tryfile == nullptr) { err = CKERROR::CKERR_CANTWRITETOFILE; } else { diff --git a/LibCmo/LibCmo/CK2/CKGlobals.cpp b/LibCmo/LibCmo/CK2/CKGlobals.cpp index 0abc0dc..cb822ae 100644 --- a/LibCmo/LibCmo/CK2/CKGlobals.cpp +++ b/LibCmo/LibCmo/CK2/CKGlobals.cpp @@ -1,15 +1,18 @@ +// Idk why I need import this first when I refactoring this file. +// But I keep it because I don't want to raise any potential bugs. #include "../VTUtils.hpp" -#if defined(YYCC_OS_WINDOWS) -#define ZLIB_WINAPI -#endif +// We import zlib first to prevent any possible conflict. #include #include +// Import self header #include "CKGlobals.hpp" - +// Import STL and YYCC headers +#include #include #include +// Import implementations. #include "ObjImpls/CKObject.hpp" #include "ObjImpls/CKSceneObject.hpp" #include "ObjImpls/CKBeObject.hpp" @@ -128,7 +131,7 @@ namespace LibCmo::CK2 { CKDWORD CKStrLen(CKSTRING strl) { if (strl == nullptr) return 0u; - size_t len = std::strlen(YYCC::EncodingHelper::ToOrdinary(strl)); + size_t len = std::strlen(yycc::string::reinterpret::as_ordinary(strl)); if (len > static_cast(std::numeric_limits::max())) throw RuntimeException("Exceed maximum value when cast size_t to CKDWORD."); return static_cast(len); diff --git a/LibCmo/LibCmo/CK2/CKGlobals.hpp b/LibCmo/LibCmo/CK2/CKGlobals.hpp index 82f92c2..21de0a3 100644 --- a/LibCmo/LibCmo/CK2/CKGlobals.hpp +++ b/LibCmo/LibCmo/CK2/CKGlobals.hpp @@ -2,6 +2,7 @@ #include "CKTypes.hpp" #include "../XContainer/XTypes.hpp" +#include #include #include @@ -146,7 +147,7 @@ namespace LibCmo::CK2 { DerivationLevel(0), Parents(), Children(), ToBeNotify(), CommonToBeNotify() {} - YYCC_DEF_CLS_COPY_MOVE(CKClassDesc); + YYCC_DEFAULT_COPY_MOVE(CKClassDesc) }; // ========== CKClass Registration ========== diff --git a/LibCmo/LibCmo/CK2/CKIdentifiers.hpp b/LibCmo/LibCmo/CK2/CKIdentifiers.hpp index 00812bf..98b3f9b 100644 --- a/LibCmo/LibCmo/CK2/CKIdentifiers.hpp +++ b/LibCmo/LibCmo/CK2/CKIdentifiers.hpp @@ -10,7 +10,7 @@ namespace LibCmo::CK2 { - constexpr const CKDWORD CK_STATESAVE_ALL = 0xFFFFFFFF; + constexpr CKDWORD CK_STATESAVE_ALL = 0xFFFFFFFF; /** Object diff --git a/LibCmo/LibCmo/CK2/CKStateChunk.hpp b/LibCmo/LibCmo/CK2/CKStateChunk.hpp index fb397f8..93492cb 100644 --- a/LibCmo/LibCmo/CK2/CKStateChunk.hpp +++ b/LibCmo/LibCmo/CK2/CKStateChunk.hpp @@ -1,6 +1,7 @@ #pragma once #include "../VTInternal.hpp" +#include #include #include #include @@ -54,7 +55,7 @@ namespace LibCmo::CK2 { LockedReadBufferDeleter() : m_Host(nullptr), m_ConsumedSize(0) {} LockedReadBufferDeleter(CKStateChunk* host, CKDWORD init_size) : m_Host(host), m_ConsumedSize(init_size) {} - YYCC_DEF_CLS_COPY_MOVE(LockedReadBufferDeleter); + YYCC_DEFAULT_COPY_MOVE(LockedReadBufferDeleter) void operator()(const void* /*buf*/); void SetConsumedSize(CKDWORD newsize); @@ -68,7 +69,7 @@ namespace LibCmo::CK2 { LockedWriteBufferDeleter() : m_Host(nullptr), m_ConsumedSize(0) {} LockedWriteBufferDeleter(CKStateChunk* host, CKDWORD init_size) : m_Host(host), m_ConsumedSize(init_size) {} - YYCC_DEF_CLS_COPY_MOVE(LockedWriteBufferDeleter); + YYCC_DEFAULT_COPY_MOVE(LockedWriteBufferDeleter) void operator()(const void* /*buf*/); void SetConsumedSize(CKDWORD newsize); @@ -82,7 +83,7 @@ namespace LibCmo::CK2 { BufferDeleter() : m_Host(nullptr), m_BufSize(0) {} BufferDeleter(CKStateChunk* host, CKDWORD bufsize) : m_Host(host), m_BufSize(bufsize) {} - YYCC_DEF_CLS_COPY_MOVE(BufferDeleter); + YYCC_DEFAULT_COPY_MOVE(BufferDeleter) void operator()(const void* buf); CKDWORD GetBufferSize() const; diff --git a/LibCmo/LibCmo/CK2/CKStateChunkOthers.cpp b/LibCmo/LibCmo/CK2/CKStateChunkOthers.cpp index a7daf62..125c1c1 100644 --- a/LibCmo/LibCmo/CK2/CKStateChunkOthers.cpp +++ b/LibCmo/LibCmo/CK2/CKStateChunkOthers.cpp @@ -1,6 +1,7 @@ #include "CKStateChunk.hpp" #include "CKFile.hpp" #include "CKContext.hpp" +#include namespace LibCmo::CK2 { @@ -419,23 +420,23 @@ namespace LibCmo::CK2 { std::memcpy(this->m_pData, dwbuf + bufpos, sizeof(CKDWORD) * this->m_DataDwSize); bufpos += this->m_DataDwSize; } - if (!YYCC::EnumHelper::Has(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_FILE)) { + if (!yycc::cenum::has(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_FILE)) { // forced no bind file this->m_BindFile = nullptr; } - if (YYCC::EnumHelper::Has(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_IDS)) { + if (yycc::cenum::has(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_IDS)) { this->m_ObjectList.resize(dwbuf[bufpos]); bufpos += 1u; std::memcpy(this->m_ObjectList.data(), dwbuf + bufpos, sizeof(CKDWORD) * this->m_ObjectList.size()); bufpos += this->m_ObjectList.size(); } - if (YYCC::EnumHelper::Has(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_CHN)) { + if (yycc::cenum::has(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_CHN)) { this->m_ChunkList.resize(dwbuf[bufpos]); bufpos += 1u; std::memcpy(this->m_ChunkList.data(), dwbuf + bufpos, sizeof(CKDWORD) * this->m_ChunkList.size()); bufpos += this->m_ChunkList.size(); } - if (YYCC::EnumHelper::Has(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_MAN)) { + if (yycc::cenum::has(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_MAN)) { this->m_ManagerList.resize(dwbuf[bufpos]); bufpos += 1u; std::memcpy(this->m_ManagerList.data(), dwbuf + bufpos, sizeof(CKDWORD) * this->m_ManagerList.size()); @@ -459,19 +460,19 @@ namespace LibCmo::CK2 { if (!m_ObjectList.empty()) { size += CKSizeof(CKDWORD) * static_cast(m_ObjectList.size()) + sizeof(CKDWORD); - YYCC::EnumHelper::Add(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_IDS); + yycc::cenum::add(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_IDS); } if (!m_ChunkList.empty()) { size += CKSizeof(CKDWORD) * static_cast(m_ChunkList.size()) + sizeof(CKDWORD); - YYCC::EnumHelper::Add(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_CHN); + yycc::cenum::add(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_CHN); } if (!m_ManagerList.empty()) { size += CKSizeof(CKDWORD) * static_cast(m_ManagerList.size()) + sizeof(CKDWORD); - YYCC::EnumHelper::Add(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_MAN); + yycc::cenum::add(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_MAN); } if (this->m_BindFile != nullptr) { - YYCC::EnumHelper::Add(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_FILE); + yycc::cenum::add(options, CK_STATECHUNK_CHUNKOPTIONS::CHNK_OPTION_FILE); } // if buffer provided, write it diff --git a/LibCmo/LibCmo/VTUtils.cpp b/LibCmo/LibCmo/VTUtils.cpp index e78b20b..9a26a33 100644 --- a/LibCmo/LibCmo/VTUtils.cpp +++ b/LibCmo/LibCmo/VTUtils.cpp @@ -1,5 +1,10 @@ #include "VTUtils.hpp" +// Check LibCmo build type first. +#if !(defined(LIBCMO_BUILD_DEBUG) ^ defined(LIBCMO_BUILD_RELEASE)) +#error "You must define ONE of LIBCMO_BUILD_DEBUG and LIBCMO_BUILD_RELEASE to indicate build type!" +#endif + // Check YYCC library version #include #if YYCC_VERCMP_NE(YYCC_VER_MAJOR, YYCC_VER_MINOR, YYCC_VER_PATCH, 2, 0, 0) diff --git a/LibCmo/LibCmo/VTUtils.hpp b/LibCmo/LibCmo/VTUtils.hpp index 999ee8b..54bccda 100644 --- a/LibCmo/LibCmo/VTUtils.hpp +++ b/LibCmo/LibCmo/VTUtils.hpp @@ -1,10 +1,5 @@ #pragma once -// Check LibCmo build type first. -#if !(defined(LIBCMO_BUILD_DEBUG) ^ defined(LIBCMO_BUILD_RELEASE)) -#error "You must define ONE of LIBCMO_BUILD_DEBUG and LIBCMO_BUILD_RELEASE to indicate build type!" -#endif - // Include YYCC library core header for all headers #include diff --git a/Unvirt/AccessibleValue.hpp b/Unvirt/AccessibleValue.hpp index 0d025bd..4472091 100644 --- a/Unvirt/AccessibleValue.hpp +++ b/Unvirt/AccessibleValue.hpp @@ -8,7 +8,7 @@ namespace Unvirt { namespace AccessibleValue { - constexpr const char8_t c_InvalidEnumName[] = u8"[undefined]"; + constexpr char8_t c_InvalidEnumName[] = u8"[undefined]"; #pragma region Size Formatter