From 3e5d9722c41a7502c7cb851cc02b651dbd4fd90e Mon Sep 17 00:00:00 2001 From: guttir14 Date: Sun, 11 Jul 2021 02:14:51 +0300 Subject: [PATCH] Little fix --- Dumper/Dumper.vcxproj | 2 ++ Dumper/generic.cpp | 10 ++++------ Dumper/generic.h | 2 +- Dumper/wrappers.cpp | 18 ++++++++---------- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Dumper/Dumper.vcxproj b/Dumper/Dumper.vcxproj index daa8f89..2342c8b 100644 --- a/Dumper/Dumper.vcxproj +++ b/Dumper/Dumper.vcxproj @@ -66,6 +66,7 @@ false stdcpplatest FastCall + true Console @@ -94,6 +95,7 @@ false + true Console diff --git a/Dumper/generic.cpp b/Dumper/generic.cpp index 31c914c..bb19d57 100644 --- a/Dumper/generic.cpp +++ b/Dumper/generic.cpp @@ -48,9 +48,7 @@ uint8* TUObjectArray::GetObjectPtr(uint32 id) const { void TUObjectArray::Dump(std::function callback) const { for (uint32 i = 0; i < NumElements; i++) { uint8* object = GetObjectPtr(i); - if (!object) { - continue; - } + if (!object) continue; callback(object); } } @@ -65,11 +63,11 @@ UE_UObject TUObjectArray::FindObject(const std::string &name) const { return nullptr; } -void TUObjectArray::ForEachObjectOfClass(const UE_UClass cmp, std::function callback) const { - for (uint32 i = 0u; i < NumElements; i++) { +void TUObjectArray::ForEachObjectOfClass(const UE_UClass cmp, std::function callback) const { + for (uint32 i = 0; i < NumElements; i++) { UE_UObject object = GetObjectPtr(i); if (object && object.IsA(cmp) && object.GetName().find("_Default") == std::string::npos) { - callback(object); + if (callback(object)) return; } } } diff --git a/Dumper/generic.h b/Dumper/generic.h index 4f96984..e10b102 100644 --- a/Dumper/generic.h +++ b/Dumper/generic.h @@ -37,7 +37,7 @@ struct TUObjectArray { uint8* GetObjectPtr(uint32 id) const; void Dump(std::function callback) const; class UE_UObject FindObject(const std::string &name) const; - void ForEachObjectOfClass(const class UE_UClass cmp, std::function callback) const; + void ForEachObjectOfClass(const class UE_UClass cmp, std::function callback) const; bool IsObject(UE_UObject address) const; }; diff --git a/Dumper/wrappers.cpp b/Dumper/wrappers.cpp index 59c6d7b..a500d2e 100644 --- a/Dumper/wrappers.cpp +++ b/Dumper/wrappers.cpp @@ -1012,9 +1012,10 @@ void UE_UPackage::FillPadding(UE_UStruct object, std::vector& members, u auto size = end - offset; if (findPointers && size >= 8) { - auto normalized = (offset + 7) & ~7; - if (normalized != offset) { - auto diff = normalized - offset; + auto normalizedOffset = (offset + 7) & ~7; + + if (normalizedOffset != offset) { + auto diff = normalizedOffset - offset; GeneratePadding(members, offset, diff); offset += diff; } @@ -1059,14 +1060,14 @@ void UE_UPackage::FillPadding(UE_UStruct object, std::vector& members, u ObjObjects.ForEachObjectOfClass((UE_UClass)object, callback); - auto prevOFfset = offset; + auto start = offset; for (uint32 i = 0; i < num; i++) { auto ptr = pointers[i]; if (ptr && ptr != (uint64)-1) { auto ptrObject = UE_UObject((void*)ptr); - auto ptrOffset = prevOFfset + i * 8; + auto ptrOffset = start + i * 8; if (ptrOffset > offset) { GeneratePadding(members, offset, ptrOffset - offset); offset = ptrOffset; @@ -1077,11 +1078,8 @@ void UE_UPackage::FillPadding(UE_UStruct object, std::vector& members, u m.Size = 8; if (ptrObject.IsA()) { - auto ptrClass = ptrObject.GetClass(); - auto ptrClassName = ptrClass.GetCppName(); - m.Type = "struct " + ptrClassName + "*"; - auto ptrName = ptrObject.GetName(); - m.Name = ptrName; + m.Type = "struct " + ptrObject.GetClass().GetCppName() + "*"; + m.Name = ptrObject.GetName(); } else { m.Type = "void*";