#include "Core/SaltyGameState.h" #include "Core/TelemetrySubsystem.h" #include "Engine/GameInstance.h" #include "Engine/World.h" #include "Net/UnrealNetwork.h" void ASaltyGameState::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const { Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREPLIFETIME(ASaltyGameState, SessionId); } void ASaltyGameState::SetSessionId(const FGuid& InSessionId) { if (!HasAuthority()) { return; } SessionId = InSessionId; AdoptSessionId(); } void ASaltyGameState::OnRep_SessionId() { AdoptSessionId(); } void ASaltyGameState::AdoptSessionId() { if (const UGameInstance* GameInstance = GetGameInstance()) { if (UTelemetrySubsystem* Telemetry = GameInstance->GetSubsystem()) { Telemetry->BeginSession(SessionId); } } }