UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ReplayPlaylistTracker.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
10#include "Net/ReplayResult.h"
11
17DECLARE_DELEGATE_TwoParams(FPreStartNextPlaylistReplay, const struct FReplayPlaylistTracker& /*ThisPlaylistTracker*/, struct FReplayPlaylistUpdatedOptions& /*OverrideWorldUpdate*/);
18
25
42
44struct FReplayPlaylistTracker : public TSharedFromThis<FReplayPlaylistTracker>, public FNoncopyable
45{
46private:
47
51
52public:
53
55 {
56 // Forcibly reset this in case we end up cancelling requests while trying to start a new replay.
57 bIsStartingReplay = false;
58 Reset();
59 }
60
62 const int32 IsOnLastReplay() const
63 {
64 return GetCurrentReplay() == GetNumReplays();
65 }
66
68 const int32 GetNumReplays() const
69 {
70 return Playlist.Num();
71 }
72
74 const int32 GetCurrentReplay() const
75 {
76 return CurrentReplay;
77 }
78
81 {
82 return Playlist;
83 }
84
87 {
88 return AdditionalOptions;
89 }
90
92 class UWorld* GetWorldOverride() const
93 {
94 return WorldOverride.Get();
95 }
96
99 {
100 return GameInstance.Get();
101 }
102
103private:
104
106
107 void Reset();
108
109 bool Start();
110
111 bool Restart();
112
113 void Quit();
114
115 void PlayNextReplay();
116
118 void OnDemoPlaybackFailed(UWorld* InWorld, const UE::Net::TNetResult<EReplayResult>& Result);
119
121 void OnDemoStopped(UWorld* InWorld);
122
124 void OnDemoPlaybackFinished(UWorld* InWorld);
125
126 bool bIsStartingReplay;
127 int32 CurrentReplay;
128 TArray<FString> Playlist;
129 TArray<FString> AdditionalOptions;
130 TWeakObjectPtr<class UWorld> WorldOverride;
133
134 FDelegateHandle OnDemoPlaybackFailedHandle;
135 FDelegateHandle OnDemoPlaybackFinishedHandle;
136 FDelegateHandle OnDemoStoppedHandle;
137
138 FPreStartNextPlaylistReplay PreStartNextReplay;
139};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
@ Restart
Definition PrecomputedVolumetricLightmapStreaming.cpp:25
Definition IDelegateInstance.h:14
Definition DemoNetDriver.cpp:2741
Definition GameInstance.cpp:1294
Definition UnrealTemplate.h:321
Definition ArrayView.h:139
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition SharedPointer.h:1640
Definition GameInstance.h:152
Definition World.h:918
Definition ReplayPlaylistTracker.h:28
TArray< FString > Playlist
Definition ReplayPlaylistTracker.h:30
FPreStartNextPlaylistReplay PreStartNextPlaylistReplayDelegate
Definition ReplayPlaylistTracker.h:33
FReplayPlaylistUpdatedOptions InitialOptions
Definition ReplayPlaylistTracker.h:40
Definition ReplayPlaylistTracker.h:45
class UGameInstance * GetGameInstance() const
Definition ReplayPlaylistTracker.h:98
~FReplayPlaylistTracker()
Definition ReplayPlaylistTracker.h:54
const TArrayView< const FString > GetAdditionalOptions() const
Definition ReplayPlaylistTracker.h:86
class UWorld * GetWorldOverride() const
Definition ReplayPlaylistTracker.h:92
const TArrayView< const FString > GetPlaylist() const
Definition ReplayPlaylistTracker.h:80
const int32 IsOnLastReplay() const
Definition ReplayPlaylistTracker.h:62
const int32 GetCurrentReplay() const
Definition ReplayPlaylistTracker.h:74
const int32 GetNumReplays() const
Definition ReplayPlaylistTracker.h:68
Definition ReplayPlaylistTracker.h:21
TOptional< class UWorld * > NewWorldOverride
Definition ReplayPlaylistTracker.h:22
TOptional< TArray< FString > > NewAdditionalOptions
Definition ReplayPlaylistTracker.h:23
Definition Optional.h:131
Definition WeakObjectPtrTemplates.h:25
FORCEINLINE T * Get(bool bEvenIfPendingKill) const
Definition WeakObjectPtrTemplates.h:132
Definition NetResult.h:330