UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UpdateLevelVisibilityLevelInfo.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "UpdateLevelVisibilityLevelInfo.generated.h"
6
10{
12
13 enum : uint32
14 {
15 InvalidTransactionIndex = 0U,
16 InvalidTransactionId = 0U,
17 IsClientTransactionMask = 0x80000000U,
19 };
20
22
23 bool IsClientTransaction() const { return Data & IsClientTransactionMask; }
24 bool IsValid() const { return Data != InvalidTransactionId; }
25 void SetIsClientInstigator(bool bValue) { Data = (Data & ~IsClientTransactionMask) | (bValue ? IsClientTransactionMask : 0U); }
26 uint32 GetTransactionIndex() const { return Data & ValueMask; }
27 void SetTransactionIndex(uint32 TransactionIndex) { Data = (Data & IsClientTransactionMask) | (TransactionIndex & ValueMask); }
28
29 uint32 IncrementTransactionIndex();
30 bool operator==(const FNetLevelVisibilityTransactionId& Other) const { return Data == Other.Data; }
31 ENGINE_API bool NetSerialize(FArchive& Ar, UPackageMap* PackageMap, bool& bOutSuccess);
32
33private:
35
36 UPROPERTY()
37 uint32 Data;
38};
39
48
50USTRUCT()
52{
54
56 : PackageName(NAME_None)
57 , FileName(NAME_None)
58 , bIsVisible(false)
59 , bTryMakeVisible(false)
60 , bSkipCloseOnError(false)
61 {
62 }
63
69 ENGINE_API FUpdateLevelVisibilityLevelInfo(const class ULevel* const Level, const bool bInIsVisible, const bool bInTryMakeVisible = false);
70
72 UPROPERTY()
73 FName PackageName;
74
76 UPROPERTY()
77 FName FileName;
78
80 UPROPERTY()
82
84 UPROPERTY()
85 uint32 bIsVisible : 1;
86
88 UPROPERTY()
89 uint32 bTryMakeVisible : 1;
90
92 UPROPERTY(NotReplicated)
93 uint32 bSkipCloseOnError : 1;
94
95 ENGINE_API bool NetSerialize(FArchive& Ar, UPackageMap* PackageMap, bool& bOutSuccess);
96};
97
106
108: Data(InvalidTransactionId)
109{
110}
111
113: Data((bIsClientInstigator ? IsClientTransactionMask : 0U) | (LevelVisibilityTransactionIndex & ValueMask))
114{
115}
116
118{
119 uint32 NewIndex = (GetTransactionIndex() + 1U) & ValueMask;
120 // Deal with wraparound since zero is reserved as the invalid index
121 if (NewIndex == InvalidTransactionIndex)
122 {
123 ++NewIndex;
124 }
125 SetTransactionIndex(NewIndex);
126 return NewIndex;
127}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition NameTypes.h:617
Definition Level.h:423
Definition CoreNet.h:191
@ false
Definition radaudio_common.h:23
Definition UpdateLevelVisibilityLevelInfo.h:10
uint32 IncrementTransactionIndex()
Definition UpdateLevelVisibilityLevelInfo.h:117
uint32 GetTransactionIndex() const
Definition UpdateLevelVisibilityLevelInfo.h:26
@ InvalidTransactionIndex
Definition UpdateLevelVisibilityLevelInfo.h:15
@ ValueMask
Definition UpdateLevelVisibilityLevelInfo.h:18
bool operator==(const FNetLevelVisibilityTransactionId &Other) const
Definition UpdateLevelVisibilityLevelInfo.h:30
bool IsClientTransaction() const
Definition UpdateLevelVisibilityLevelInfo.h:23
bool IsValid() const
Definition UpdateLevelVisibilityLevelInfo.h:24
FNetLevelVisibilityTransactionId()
Definition UpdateLevelVisibilityLevelInfo.h:107
void SetTransactionIndex(uint32 TransactionIndex)
Definition UpdateLevelVisibilityLevelInfo.h:27
void SetIsClientInstigator(bool bValue)
Definition UpdateLevelVisibilityLevelInfo.h:25
Definition UpdateLevelVisibilityLevelInfo.h:52
ENGINE_API FUpdateLevelVisibilityLevelInfo(const class ULevel *const Level, const bool bInIsVisible, const bool bInTryMakeVisible=false)
FUpdateLevelVisibilityLevelInfo()
Definition UpdateLevelVisibilityLevelInfo.h:55
Definition StructOpsTypeTraits.h:11
Definition StructOpsTypeTraits.h:46