diff --git a/src/dependency/minidef/src/CppGen.cpp b/src/dependency/minidef/src/CppGen.cpp index f8ed495..2757a25 100644 --- a/src/dependency/minidef/src/CppGen.cpp +++ b/src/dependency/minidef/src/CppGen.cpp @@ -293,7 +293,7 @@ void CppFileWriter::WriteInternal(WriteBuffer& buf, const char* templateStr, va_ } void CppFileWriter::PrintTypeName( - char* buf, int32_t bufSize, Def::TypeRef type, const Def::DefinitionFile& definitions, bool printActualEnumType) + char* buf, int32_t bufSize, Def::TypeRef type, const Def::DefinitionFile& definitions, PrintFlags flags) { if (buf == nullptr || bufSize == 0 || !IsValid(type)) { @@ -303,7 +303,8 @@ void CppFileWriter::PrintTypeName( if (type.FieldKind == Def::EFieldType::DefinedClass) { auto& t = definitions.Types[type.TypeIdx]; - if ((uint32_t)t.TypeFlags & (uint32_t)Def::ETypeFlags::IsNative) + if (((uint32_t)t.TypeFlags & (uint32_t)Def::ETypeFlags::IsNative) && + ((uint32_t)flags & (uint32_t)PrintFlags::PrintNativeTypeName)) { bx::strCopy(buf, bufSize, t.NativeCName); } @@ -315,7 +316,7 @@ void CppFileWriter::PrintTypeName( else if (type.FieldKind == Def::EFieldType::DefinedEnum) { bx::strCopy(buf, bufSize, definitions.Enums[type.TypeIdx].Name); - if (printActualEnumType) + if ((int32_t)flags & (int32_t)PrintFlags::PrintFullEnumName) { bx::strCat(buf, bufSize, "::Enum"); } @@ -454,7 +455,10 @@ void CppFileWriter::WriteSaveLoadMethods(const Def::DefinitionFile& definitions) for (int32_t fieldIdx = 0; fieldIdx < t.FieldCount; ++fieldIdx) { const char* fieldName = t.FieldNames[fieldIdx]; - PrintTypeName(fieldTypeName, sizeof(fieldTypeName), t.FieldTypes[fieldIdx], definitions, false); + // This prints native type name, seems wrong?? + // Havent i already fixed this??? + PrintTypeName( + fieldTypeName, sizeof(fieldTypeName), t.FieldTypes[fieldIdx], definitions, PrintFlags::None); WriteCpp(WriteTemplates::LoadFuncBodyMemberCheck4, fieldName, fieldTypeName, typeName, fieldName); } WriteCpp(WriteTemplates::LoadFuncBodyTypeUpgradeStart); diff --git a/src/dependency/minidef/src/CppGen.h b/src/dependency/minidef/src/CppGen.h index 00327bf..50fc7e4 100644 --- a/src/dependency/minidef/src/CppGen.h +++ b/src/dependency/minidef/src/CppGen.h @@ -10,6 +10,13 @@ struct WriteBuffer uint64_t WrittenBytes = 0; }; +enum class PrintFlags : uint32_t +{ + None = 0, + PrintFullEnumName = 1 << 0, + PrintNativeTypeName = 1 << 1, +}; + struct CppFileWriter { private: @@ -25,7 +32,8 @@ struct CppFileWriter int32_t bufSize, Def::TypeRef type, const Def::DefinitionFile& definitions, - bool printActualEnumType = true); + PrintFlags flags = (PrintFlags)((uint32_t)PrintFlags::PrintFullEnumName | + (uint32_t)PrintFlags::PrintNativeTypeName)); void WriteEnums(const Def::DefinitionFile& definitions); void WriteTypes(const Def::DefinitionFile& definitions); void WriteSaveLoadMethods(const Def::DefinitionFile& definitions); diff --git a/tools/minidef.exe b/tools/minidef.exe index 7de4333..df94859 100644 --- a/tools/minidef.exe +++ b/tools/minidef.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5c6004281f2e69ec9d7fd6d780f14961a66146ead980f0c5104b18861a5fd017 -size 124416 +oid sha256:6e9808e99c44500636ce2fe352667531a6d18c3ad05b665a744db6ef6b53f1f0 +size 216064