#pragma once #include #include "PalIndividual.hpp" #include "PalCharacter.hpp" namespace PalUIExtension::Api::Pal { class PalIndividualCharacterHandle : public UnrealWrapper { public: static auto ClassPath() -> const TCHAR* { return STR("/Script/Pal.PalIndividualCharacterHandle"); } static auto DebugTag() -> const TCHAR* { return STR("PalIndividualCharacterHandle"); } PalIndividualCharacterHandle() = default; explicit PalIndividualCharacterHandle(UObject* Obj) : UnrealWrapper(Obj, ClassOf(), DebugTag()) {} auto TryGetIndividualParameterObject() -> UObject* { struct P { UObject* ReturnValue; } p{ nullptr }; auto Result = CallForReturn(STR("TryGetIndividualParameter"), p, &P::ReturnValue); return (Result && *Result) ? *Result : nullptr; } auto TryGetIndividualActorObject() -> UObject* { struct P { UObject* ReturnValue; } p{ nullptr }; auto Result = CallForReturn(STR("TryGetIndividualActor"), p, &P::ReturnValue); return (Result && *Result) ? *Result : nullptr; } auto TryGetIndividualActor() -> PalCharacter { UObject* A = TryGetIndividualActorObject(); return A ? PalCharacter{ A } : PalCharacter{}; } auto TryGetPhantomActor(int32 PhantomId) -> UObject* { struct P { int32 PhantomId; UObject* ReturnValue; } p{ PhantomId, nullptr }; auto Result = CallForReturn(STR("TryGetPhantomActor"), p, &P::ReturnValue); return (Result && *Result) ? *Result : nullptr; } auto GetPhantomIDByActor(UObject* Character) -> std::optional { struct P { UObject* Character; int32 ReturnValue; } p{ Character, 0 }; return CallForReturn(STR("GetPhantomIDByActor"), p, &P::ReturnValue); } auto GetInstanceIds() -> std::optional { return PalIndividual::GetInstanceIds(Get()); } }; }