Lost_Edge/Source/Lost_Edge/Private/MainGameModeBase.h
2024-09-26 15:15:45 +02:00

55 lines
1.7 KiB
C++

// Oleg Petruny proprietary.
#pragma once
#include "GameFramework/GameModeBase.h"
#include "MainGameModeBase.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FQuestsUpdateDelegate, TArray<FText>, quests);
UCLASS()
class AMainGameModeBase : public AGameModeBase
{
GENERATED_BODY()
public:
virtual void StartPlay() override;
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
virtual bool SetPause(APlayerController* PC, FCanUnpause CanUnpauseDelegate = FCanUnpause()) override;
UFUNCTION(BlueprintPure)
static class UWidgetsManager* GetWidgetsManager();
UFUNCTION(BlueprintPure)
static class UCutsceneManager* GetCutsceneManager();
UFUNCTION(BlueprintPure)
static class UQuickTimeEventManager* GetQuickTimeEventManager();
UFUNCTION(BlueprintPure)
static class UDialogueManager* GetDialogueManager();
UFUNCTION(BlueprintCallable)
static void CallNextLevelState();
UFUNCTION(BlueprintCallable)
static void CallLevelEvent(int32 id);
UFUNCTION(BlueprintCallable)
static void UpdateQuests(TArray<FText> items);
void SwitchCameraMode();
static TStrongObjectPtr<class ALevelBase> leadLevel;
FQuestsUpdateDelegate questsUpdateDelegate;
protected:
UPROPERTY(EditDefaultsOnly)
TSubclassOf<class UWidgetsManager> widgetManagerClass;
private:
static AMainGameModeBase* _instance;
static TStrongObjectPtr<class UWidgetsManager> _widgetsManager;
static TStrongObjectPtr<class UCutsceneManager> _cutsceneManager;
static TStrongObjectPtr<class UQuickTimeEventManager> _quickTimeEventManager;
static TStrongObjectPtr<class UDialogueManager> _dialogueManager;
};