fishinggggg + uh everything kinda broke last commit i fixed it all dw

This commit is contained in:
Milxnor
2023-03-23 21:51:48 -04:00
parent bdf3bd2bc0
commit 757f7b21d3
25 changed files with 669 additions and 107 deletions

View File

@@ -18,6 +18,18 @@ public:
// MORE STUFF HERE
void* MostRecentProperty;
uint8_t* MostRecentPropertyAddress;
uint8_t*& GetMostRecentPropertyAddress()
{
auto off = (void*)(&((struct FFrame*)NULL)->MostRecentPropertyAddress);
LOG_INFO(LogDev, "{}", off);
return MostRecentPropertyAddress;
static auto MostRecentPropertyAddressOffset = 56;
return *(uint8_t**)(__int64(this) + MostRecentPropertyAddressOffset);
}
void Step(UObject* Context, RESULT_DECL)
{
static void (*StepOriginal)(__int64 frame, UObject* Context, RESULT_DECL) = decltype(StepOriginal)(Addresses::FrameStep);
@@ -26,4 +38,44 @@ public:
// int32 B = *Code++;
// (GNatives[B])(Context, *this, RESULT_PARAM);
}
__forceinline void StepCompiledIn(void* Result/*, const FFieldClass* ExpectedPropertyType*/) // https://github.com/EpicGames/UnrealEngine/blob/cdaec5b33ea5d332e51eee4e4866495c90442122/Engine/Source/Runtime/CoreUObject/Public/UObject/Stack.h#L444
{
if (Code)
{
Step(Object, Result);
}
else
{
LOG_INFO(LogDev, "UNIMPLENTED!");
/* checkSlow(ExpectedPropertyType && ExpectedPropertyType->IsChildOf(FProperty::StaticClass()));
checkSlow(PropertyChainForCompiledIn && PropertyChainForCompiledIn->IsA(ExpectedPropertyType));
FProperty* Property = (FProperty*)PropertyChainForCompiledIn;
PropertyChainForCompiledIn = Property->Next;
StepExplicitProperty(Result, Property); */
}
}
template</* class TProperty, */ typename TNativeType>
__forceinline TNativeType& StepCompiledInRef(void* const TemporaryBuffer)
{
GetMostRecentPropertyAddress() = nullptr;
// GetMostRecentPropertyContainer() = nullptr; // added in ue5.1
if (Code)
{
Step(Object, TemporaryBuffer);
}
else
{
LOG_INFO(LogDev, "UNIMPLENTED2!");
/* checkSlow(CastField<TProperty>(PropertyChainForCompiledIn) && CastField<FProperty>(PropertyChainForCompiledIn));
TProperty* Property = (TProperty*)PropertyChainForCompiledIn;
PropertyChainForCompiledIn = Property->Next;
StepExplicitProperty(TemporaryBuffer, Property); */
}
return (GetMostRecentPropertyAddress() != NULL) ? *(TNativeType*)(GetMostRecentPropertyAddress()) : *(TNativeType*)TemporaryBuffer;
}
};