You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Icon is only visible if content is available for the editor in question. Split editor settings into two groups - one is persistent settings and one is progress/state. Tutorials record their dismissed state, so users can permenantly disable the 'nag' for a particular tutorial. Tutorial content now solidifies when the mouse is hovered over it, so it can be made easier to read. Fixed crash on startup if an intro tutorial was displaying rich text. Also fixed crash for TTP# 345094, where a zero-length tutorial was being accessed. [CL 2275934 by Thomas Sarkanen in Main branch]
68 lines
1.7 KiB
C++
68 lines
1.7 KiB
C++
// Copyright 1998-2014 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=EditorGameAgnostic)
|
|
class UTutorialStateSettings : public UObject
|
|
{
|
|
GENERATED_UCLASS_BODY()
|
|
|
|
UPROPERTY(Config)
|
|
TArray<FTutorialProgress> TutorialsProgress;
|
|
|
|
/** UObject interface */
|
|
virtual void PostInitProperties() override;
|
|
|
|
/** 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();
|
|
|
|
private:
|
|
/** Recorded progress */
|
|
TMap<UEditorTutorial*, FTutorialProgress> ProgressMap;
|
|
}; |