This seems like a really ugly change, but if you’re defining properties or net serializers etc. for custom USTRUCTS, the TStructOpsTypeTraitsBase class has changed.
For example, this:
template<>
struct TStructOpsTypeTraits<FOrbSecondaryTickFunction> : public TStructOpsTypeTraitsBase
{
enum
{
WithCopy = false
};
};
Becomes this:
template<>
struct TStructOpsTypeTraits<FOrbSecondaryTickFunction> : public TStructOpsTypeTraitsBase2<FOrbSecondaryTickFunction>
{
enum
{
WithCopy = false
};
};
Additionally, some network properties have now been moved into a single struct type. This:
const UWorld* MyWorld = GetWorld();
if (MyWorld && MyWorld->GetTimeSeconds() <= GetOwner()->NetUpdateTime)
{
UNetDriver* NetDriver = MyWorld->GetNetDriver();
if (NetDriver && NetDriver->IsServer())
{
FNetworkObjectInfo* NetActor = NetDriver->GetNetworkActor(GetOwner());
if (NetActor && NetDriver->IsNetworkActorUpdateFrequencyThrottled(*NetActor) && ShouldCancelAdaptiveReplication())
{
NetDriver->CancelAdaptiveReplication(*NetActor);
}
}
}
Becomes this:
const UWorld* MyWorld = GetWorld();
if (MyWorld && MyWorld->GetTimeSeconds() <= GetOwner()->GetNetworkObjectInfo()->NextUpdateTime)
{
UNetDriver* NetDriver = MyWorld->GetNetDriver();
if (NetDriver && NetDriver->IsServer())
{
FNetworkObjectInfo* NetActor = NetDriver->GetNetworkObjectInfo(GetOwner());
if (NetActor && NetDriver->IsNetworkActorUpdateFrequencyThrottled(*NetActor) && ShouldCancelAdaptiveReplication())
{
NetDriver->CancelAdaptiveReplication(*NetActor);
}
}
}
You’ll also need to add this include to the .cpp file:
#include "Engine/NetworkObjectList.h"