218 lines
4.3 KiB
C++
218 lines
4.3 KiB
C++
|
|
#pragma once
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* SDK generated by Dumper-7
|
|||
|
|
*
|
|||
|
|
* https://github.com/Encryqed/Dumper-7
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
// Package: CoreUObject
|
|||
|
|
|
|||
|
|
#include "Basic.hpp"
|
|||
|
|
|
|||
|
|
#include "CoreUObject_classes.hpp"
|
|||
|
|
#include "CoreUObject_parameters.hpp"
|
|||
|
|
|
|||
|
|
|
|||
|
|
namespace SDK
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Finds a UObject in the global object array by name, optionally with ECastFlags to reduce heavy string comparison
|
|||
|
|
|
|||
|
|
class UObject* UObject::FindObjectFastImpl(const std::string& Name, EClassCastFlags RequiredType)
|
|||
|
|
{
|
|||
|
|
for (int i = 0; i < GObjects->Num(); ++i)
|
|||
|
|
{
|
|||
|
|
UObject* Object = GObjects->GetByIndex(i);
|
|||
|
|
|
|||
|
|
if (!Object)
|
|||
|
|
continue;
|
|||
|
|
|
|||
|
|
if (Object->HasTypeFlag(RequiredType) && Object->GetName() == Name)
|
|||
|
|
return Object;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return nullptr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Finds a UObject in the global object array by full-name, optionally with ECastFlags to reduce heavy string comparison
|
|||
|
|
|
|||
|
|
class UObject* UObject::FindObjectImpl(const std::string& FullName, EClassCastFlags RequiredType)
|
|||
|
|
{
|
|||
|
|
for (int i = 0; i < GObjects->Num(); ++i)
|
|||
|
|
{
|
|||
|
|
UObject* Object = GObjects->GetByIndex(i);
|
|||
|
|
|
|||
|
|
if (!Object)
|
|||
|
|
continue;
|
|||
|
|
|
|||
|
|
if (Object->HasTypeFlag(RequiredType) && Object->GetFullName() == FullName)
|
|||
|
|
return Object;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return nullptr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Returns the name of this object in the format 'Class Package.Outer.Object'
|
|||
|
|
|
|||
|
|
std::string UObject::GetFullName() const
|
|||
|
|
{
|
|||
|
|
if (this && Class)
|
|||
|
|
{
|
|||
|
|
std::string Temp;
|
|||
|
|
|
|||
|
|
for (UObject* NextOuter = Outer; NextOuter; NextOuter = NextOuter->Outer)
|
|||
|
|
{
|
|||
|
|
Temp = NextOuter->GetName() + "." + Temp;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
std::string Name = Class->GetName();
|
|||
|
|
Name += " ";
|
|||
|
|
Name += Temp;
|
|||
|
|
Name += GetName();
|
|||
|
|
|
|||
|
|
return Name;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return "None";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Retuns the name of this object
|
|||
|
|
|
|||
|
|
std::string UObject::GetName() const
|
|||
|
|
{
|
|||
|
|
return this ? Name.ToString() : "None";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Checks Class->FunctionFlags for TypeFlags
|
|||
|
|
|
|||
|
|
bool UObject::HasTypeFlag(EClassCastFlags TypeFlags) const
|
|||
|
|
{
|
|||
|
|
return (Class->CastFlags & TypeFlags);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Checks a UObjects' type by TypeFlags
|
|||
|
|
|
|||
|
|
bool UObject::IsA(EClassCastFlags TypeFlags) const
|
|||
|
|
{
|
|||
|
|
return (Class->CastFlags & TypeFlags);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Checks a UObjects' type by Class name
|
|||
|
|
|
|||
|
|
bool UObject::IsA(const class FName& ClassName) const
|
|||
|
|
{
|
|||
|
|
return Class->IsSubclassOf(ClassName);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Checks a UObjects' type by Class
|
|||
|
|
|
|||
|
|
bool UObject::IsA(const class UClass* TypeClass) const
|
|||
|
|
{
|
|||
|
|
return Class->IsSubclassOf(TypeClass);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Checks whether this object is a classes' default-object
|
|||
|
|
|
|||
|
|
bool UObject::IsDefaultObject() const
|
|||
|
|
{
|
|||
|
|
return (Flags & EObjectFlags::ClassDefaultObject);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Function CoreUObject.Object.ExecuteUbergraph
|
|||
|
|
// (Event, Public, BlueprintEvent)
|
|||
|
|
// Parameters:
|
|||
|
|
// int32 EntryPoint (Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
|
|||
|
|
|
|||
|
|
void UObject::ExecuteUbergraph(int32 EntryPoint)
|
|||
|
|
{
|
|||
|
|
static class UFunction* Func = nullptr;
|
|||
|
|
|
|||
|
|
if (Func == nullptr)
|
|||
|
|
Func = Class->GetFunction("Object", "ExecuteUbergraph");
|
|||
|
|
|
|||
|
|
Params::Object_ExecuteUbergraph Parms{};
|
|||
|
|
|
|||
|
|
Parms.EntryPoint = EntryPoint;
|
|||
|
|
|
|||
|
|
UObject::ProcessEvent(Func, &Parms);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Checks if this class has a certain base
|
|||
|
|
|
|||
|
|
bool UStruct::IsSubclassOf(const UStruct* Base) const
|
|||
|
|
{
|
|||
|
|
if (!Base)
|
|||
|
|
return false;
|
|||
|
|
|
|||
|
|
for (const UStruct* Struct = this; Struct; Struct = Struct->Super)
|
|||
|
|
{
|
|||
|
|
if (Struct == Base)
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Checks if this class has a certain base
|
|||
|
|
|
|||
|
|
bool UStruct::IsSubclassOf(const FName& baseClassName) const
|
|||
|
|
{
|
|||
|
|
if (baseClassName.IsNone())
|
|||
|
|
return false;
|
|||
|
|
|
|||
|
|
for (const UStruct* Struct = this; Struct; Struct = Struct->Super)
|
|||
|
|
{
|
|||
|
|
if (Struct->Name == baseClassName)
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// Predefined Function
|
|||
|
|
// Gets a UFunction from this UClasses' 'Children' list
|
|||
|
|
|
|||
|
|
class UFunction* UClass::GetFunction(const char* ClassName, const char* FuncName) const
|
|||
|
|
{
|
|||
|
|
for(const UStruct* Clss = this; Clss; Clss = Clss->Super)
|
|||
|
|
{
|
|||
|
|
if (Clss->GetName() != ClassName)
|
|||
|
|
continue;
|
|||
|
|
|
|||
|
|
for (UField* Field = Clss->Children; Field; Field = Field->Next)
|
|||
|
|
{
|
|||
|
|
if(Field->HasTypeFlag(EClassCastFlags::Function) && Field->GetName() == FuncName)
|
|||
|
|
return static_cast<class UFunction*>(Field);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return nullptr;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|