UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LocationBasedNetObjectPrioritizer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
9#include "LocationBasedNetObjectPrioritizer.generated.h"
10
11namespace UE::Net
12{
13 class FWorldLocations;
14}
15
16UCLASS(Transient, MinimalAPI, Abstract)
18{
20
21protected:
22 // UNetObjectPrioritizer interface
23 IRISCORE_API virtual void Init(FNetObjectPrioritizerInitParams& Params) override;
24 IRISCORE_API virtual void Deinit() override;
25 IRISCORE_API virtual void OnMaxInternalNetRefIndexIncreased(uint32 NewMaxInternalIndex) override;
26 IRISCORE_API virtual bool AddObject(uint32 ObjectIndex, FNetObjectPrioritizerAddObjectParams& Params) override;
27 IRISCORE_API virtual void RemoveObject(uint32 ObjectIndex, const FNetObjectPrioritizationInfo& Info) override;
28 IRISCORE_API virtual void UpdateObjects(FNetObjectPrioritizerUpdateParams&) override;
29
30protected:
32
34 {
35 bool IsUsingWorldLocations() const { return GetLocationStateIndex() == InvalidStateIndex; }
36 bool IsUsingLocationInState() const { return GetLocationStateIndex() != InvalidStateIndex; }
37
39 uint16 GetLocationStateOffset() const { return Data[0]; }
40
42 uint16 GetLocationStateIndex() const { return Data[1]; }
43
44 void SetLocationIndex(uint32 Index) { Data[2] = Index & 65535U; Data[3] = Index >> 16U; }
45 uint32 GetLocationIndex() const { return (uint32(Data[3]) << 16U) | uint32(Data[2]); }
46 };
47
48 IRISCORE_API VectorRegister GetLocation(const FObjectLocationInfo& Info) const;
49 IRISCORE_API void SetLocation(const FObjectLocationInfo& Info, VectorRegister Location);
50 IRISCORE_API void UpdateLocation(const uint32 ObjectIndex, const FObjectLocationInfo& Info, const UE::Net::FReplicationInstanceProtocol* InstanceProtocol);
51
52private:
53 enum : unsigned
54 {
55 LocationsChunkSize = 64*1024,
56 InvalidStateIndex = 65535U,
57 InvalidStateOffset = 65535U,
58 };
59
60 uint32 AllocLocation();
61 void FreeLocation(uint32 Index);
62
64 UE::Net::FNetBitArray AssignedLocationIndices;
65 const UE::Net::FWorldLocations* WorldLocations = nullptr;
66};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
uint32 Offset
Definition VulkanMemory.cpp:4033
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition ChunkedArray.h:56
Definition NetBitArray.h:74
Definition WorldLocations.h:57
Definition LocationBasedNetObjectPrioritizer.h:18
Definition NetObjectPrioritizer.h:158
Definition NetworkVersion.cpp:28
U16 Index
Definition radfft.cpp:71
Definition NetObjectPrioritizer.h:82
Definition NetObjectPrioritizer.h:113
Definition NetObjectPrioritizer.h:98
Definition NetObjectPrioritizer.h:133
Definition ReplicationProtocol.h:42
Definition LocationBasedNetObjectPrioritizer.h:34
void SetLocationIndex(uint32 Index)
Definition LocationBasedNetObjectPrioritizer.h:44
bool IsUsingLocationInState() const
Definition LocationBasedNetObjectPrioritizer.h:36
void SetLocationStateOffset(uint16 Offset)
Definition LocationBasedNetObjectPrioritizer.h:38
void SetLocationStateIndex(uint16 Index)
Definition LocationBasedNetObjectPrioritizer.h:41
uint16 GetLocationStateOffset() const
Definition LocationBasedNetObjectPrioritizer.h:39
bool IsUsingWorldLocations() const
Definition LocationBasedNetObjectPrioritizer.h:35
uint32 GetLocationIndex() const
Definition LocationBasedNetObjectPrioritizer.h:45
uint16 GetLocationStateIndex() const
Definition LocationBasedNetObjectPrioritizer.h:42
Definition UnrealMathFPU.h:42