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*";