You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Newly installed versions of the engine will now attempt to copy the project-agnostic config settings from a previous engine installation. This happens by way of a versioned manifest that copies old versions when the manifest does not exist, or is a different version. This code path is benign for non-installed versions of the engine (or FPaths::ShouldSaveToUserDir() is false). EditorGameAgnosticSettings and EditorUserSettings ini paths have been renamed to EditorSettings and EditorPerProjectUserSettings respectively to better convey their purpose. In general, most settings should be saved in EditorSettings (project-agnostic) so that they apply regardless of which project is open. We have some way to go migrating existing settings for this to be the case, however. Some previously per-project configuration files are now project-agnostic (such as Editor.ini, EditorKeyBindings.ini, and EditorLayout.ini) GEditor->Access...Settings and GEditor->Get...Settings have been removed in favor of direct access of the CDO through GetMutableDefault<> and GetDefault<> respectively. Global config ini filenames that are not set up are now neither loaded nor saved on build machines, to handle the problem of indeterminate state more generically. This addresses UETOOL-270 (Most editor preferences should be project-agnostic) [CL 2517558 by Andrew Rodham in Main branch]
81 lines
2.1 KiB
C++
81 lines
2.1 KiB
C++
// Copyright 1998-2015 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;
|
|
}; |