You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
81 lines
2.1 KiB
C++
81 lines
2.1 KiB
C++
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "EditorTutorial.h"
|
|
#include "TutorialStateSettings.generated.h"
|
|
|
|
/** Track the progress of an individual tutorial */
|
|
USTRUCT()
|
|
struct FTutorialProgress
|
|
{
|
|
GENERATED_USTRUCT_BODY()
|
|
|
|
FTutorialProgress()
|
|
{
|
|
bUserDismissedThisSession = false;
|
|
}
|
|
|
|
UPROPERTY()
|
|
FStringClassReference Tutorial;
|
|
|
|
UPROPERTY()
|
|
int32 CurrentStage;
|
|
|
|
UPROPERTY()
|
|
bool bUserDismissed;
|
|
|
|
/** Non-persistent flag indicating the user dismissed this tutorial */
|
|
bool bUserDismissedThisSession;
|
|
};
|
|
|
|
/** Tutorial settings used to track completion state */
|
|
UCLASS(config=EditorSettings)
|
|
class UTutorialStateSettings : public UObject
|
|
{
|
|
GENERATED_UCLASS_BODY()
|
|
|
|
UPROPERTY(Config)
|
|
TArray<FTutorialProgress> TutorialsProgress;
|
|
|
|
/** UObject interface */
|
|
virtual void PostInitProperties() override;
|
|
|
|
/** Reset the progress and completion sate of all tutorials */
|
|
void ClearProgress();
|
|
|
|
/** Get the recorded progress of the pass-in tutorial */
|
|
int32 GetProgress(UEditorTutorial* InTutorial, bool& bOutHaveSeenTutorial) const;
|
|
|
|
/** Check if we have seen the passed-in tutorial before */
|
|
bool HaveSeenTutorial(UEditorTutorial* InTutorial) const;
|
|
|
|
/** Check if completed the passed in tutorial (i.e. seen all of its stages) */
|
|
bool HaveCompletedTutorial(UEditorTutorial* InTutorial) const;
|
|
|
|
/** Flag a tutorial as dismissed */
|
|
void DismissTutorial(UEditorTutorial* InTutorial, bool bDismissAcrossSessions);
|
|
|
|
/** Check if a tutorial has been dismissed */
|
|
bool IsTutorialDismissed(UEditorTutorial* InTutorial) const;
|
|
|
|
/** Record the progress of the passed-in tutorial */
|
|
void RecordProgress(UEditorTutorial* InTutorial, int32 CurrentStage);
|
|
|
|
/** Save the progress of all our tutorials */
|
|
void SaveProgress();
|
|
|
|
/** Dismiss all tutorials, used by right-click option on scholar cap button (STutorialButton) */
|
|
void DismissAllTutorials();
|
|
|
|
/** Returns true if user has dismissed tutorials */
|
|
bool AreAllTutorialsDismissed();
|
|
|
|
private:
|
|
/** Recorded progress */
|
|
TMap<UEditorTutorial*, FTutorialProgress> ProgressMap;
|
|
|
|
/** Record if user has chosen to cancel all tutorials */
|
|
UPROPERTY(Config)
|
|
bool bDismissedAllTutorials;
|
|
}; |