From 70f24eab32c8772aa919e98d789abfb90d5806ab Mon Sep 17 00:00:00 2001 From: Oleg Petruny Date: Thu, 26 Sep 2024 15:15:45 +0200 Subject: [PATCH] Level 3, bug fixes --- Config/DefaultEngine.ini | 6 +++++- Content/Blueprints/Items/BP_BookOfFear.uasset | Bin 32872 -> 130 bytes .../Blueprints/Items/BP_CompanionCube.uasset | 3 +++ .../Blueprints/Items/BP_PictureMalevic.uasset | 3 +++ .../AgeOfWar/BP_Minigame_AgeOfWar.uasset | 4 ++-- ...BP_Level3_LayersOfFearRoom_Cupboard.uasset | 3 +++ .../BP_Level3_PortalRoom_PressurePlate.uasset | 3 +++ .../BP_Level3_StartRoom_EndButton.uasset | 3 +++ .../BP_Level3_WitnessRoom_Button.uasset | 3 +++ .../BP_Level3_PortalRoom_PressurePlate.uasset | 3 +++ Content/Levels/Level_3/L_Level3.umap | 3 +++ .../Levels/Level_3/L_Level3_BuiltData.uasset | 3 +++ .../Seq_Level3_PuzzlePortal_Platform.uasset | 3 +++ Content/Levels/Test/L_Test.umap | 4 ++-- .../Colors/M_Color_Black.uasset | 4 ++-- .../MaterialsLibrary/M_CompanionCube.uasset | 4 ++-- .../M_InteractableScreencapturerPP.uasset | 4 ++-- .../Models/GrayBoxes/SM_WallDoorBig.uasset | 4 ++-- .../Binaries/Win64/UnrealEditor.modules | 4 ++-- .../Binaries/Win64/UnrealEditor.modules | 4 ++-- .../Activators/InteractableScreenCapturer.cpp | 4 ++-- .../Private/Interactable/Interactable.cpp | 11 +++++++++++ .../Private/Interactable/Interactable.h | 2 ++ Source/Lost_Edge/Private/Levels/LevelBase.cpp | 16 ++++++++++++++++ Source/Lost_Edge/Private/MainGameModeBase.cpp | 10 ++++++++-- Source/Lost_Edge/Private/MainGameModeBase.h | 5 ++++- .../Minigame/CrossyRoad/CrossyRoadManager.cpp | 9 +++------ .../Minigame/SubwaySurf/SubwaySurfManager.cpp | 2 +- Source/Lost_Edge/Private/PlayerBase.cpp | 2 +- Source/Lost_Edge/Private/QuestManager.cpp | 6 +++--- Source/Lost_Edge/Private/QuestManager.h | 11 +++++++---- .../Widgets/InteractableHintWidgetManager.cpp | 6 +++--- .../Private/Widgets/WidgetsManager.cpp | 1 + 33 files changed, 113 insertions(+), 40 deletions(-) create mode 100644 Content/Blueprints/Items/BP_CompanionCube.uasset create mode 100644 Content/Blueprints/Items/BP_PictureMalevic.uasset create mode 100644 Content/Levels/Level_3/Actors/BP_Level3_LayersOfFearRoom_Cupboard.uasset create mode 100644 Content/Levels/Level_3/Actors/BP_Level3_PortalRoom_PressurePlate.uasset create mode 100644 Content/Levels/Level_3/Actors/BP_Level3_StartRoom_EndButton.uasset create mode 100644 Content/Levels/Level_3/Actors/BP_Level3_WitnessRoom_Button.uasset create mode 100644 Content/Levels/Level_3/BP_Level3_PortalRoom_PressurePlate.uasset create mode 100644 Content/Levels/Level_3/L_Level3.umap create mode 100644 Content/Levels/Level_3/L_Level3_BuiltData.uasset create mode 100644 Content/Levels/Level_3/Sequences/Seq_Level3_PuzzlePortal_Platform.uasset diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 9c747bb..856425d 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -54,7 +54,7 @@ r.DefaultFeature.AutoExposure=False r.AntiAliasingMethod=3 r.Mobile.AntiAliasing=3 r.ForwardShading=True -r.DefaultFeature.LightUnits=3 +r.DefaultFeature.LightUnits=2 r.MSAACount=4 r.DefaultFeature.LensFlare=False r.ReflectionCaptureResolution=128 @@ -72,6 +72,10 @@ r.DefaultFeature.AmbientOcclusionStaticFraction=True r.DefaultFeature.AmbientOcclusion=True r.AllowOcclusionQueries=True vr.RoundRobinOcclusion=False +r.DefaultFeature.AutoExposure.Method=2 +r.DefaultFeature.AutoExposure.Bias=0.100000 +r.Substrate=False +r.CustomDepthTemporalAAJitter=False [/Script/WorldPartitionEditor.WorldPartitionEditorSettings] CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet' diff --git a/Content/Blueprints/Items/BP_BookOfFear.uasset b/Content/Blueprints/Items/BP_BookOfFear.uasset index 1931982256c14b7d38beccbfa300aab963fc9ac8..7ed421c6dd0ff48a939845854f8046abf66a225b 100644 GIT binary patch literal 130 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 } +void AInteractable::EndPlay(const EEndPlayReason::Type EndPlayReason) +{ + if(activated) + { + activationLockers.Empty(); + _Deactivate(static_cast(activated)); + } + + Super::EndPlay(EndPlayReason); +} + void AInteractable::_Activate(EActivatorType type) { #ifdef INTERACTABLE_DEBUG diff --git a/Source/Lost_Edge/Private/Interactable/Interactable.h b/Source/Lost_Edge/Private/Interactable/Interactable.h index b5052be..33d4358 100644 --- a/Source/Lost_Edge/Private/Interactable/Interactable.h +++ b/Source/Lost_Edge/Private/Interactable/Interactable.h @@ -49,10 +49,12 @@ public: protected: virtual void BeginPlay() override; + virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (Bitmask, BitmaskEnum = "EActivatorType")) int32 activated = 0; + UPROPERTY() TMap modificators; class APlayerBase* player = nullptr; diff --git a/Source/Lost_Edge/Private/Levels/LevelBase.cpp b/Source/Lost_Edge/Private/Levels/LevelBase.cpp index 10acc8f..9686572 100644 --- a/Source/Lost_Edge/Private/Levels/LevelBase.cpp +++ b/Source/Lost_Edge/Private/Levels/LevelBase.cpp @@ -3,8 +3,11 @@ #include "LevelBase.h" +#include "Engine/StaticMesh.h" +#include "Engine/StaticMeshActor.h" #include "EngineUtils.h" #include "InputMappingContext.h" +#include "Kismet/GameplayStatics.h" #include "LevelSequencePlayer.h" #include "CommonFunctions.h" @@ -36,6 +39,19 @@ void ALevelBase::BeginPlay() BroadcastNewLevelBeginPlay(); StartLevelAnimations(); ApplySaveData(); + + // workaround for forward shading renderer skipping meshes without custom depth, + // so custom objects are visible through obstacles + TArray actors; + UGameplayStatics::GetAllActorsOfClass(GetWorld(), AStaticMeshActor::StaticClass(), actors); + for(auto actor : actors) + { + if(!actor) + continue; + auto mesh = reinterpret_cast(actor)->GetStaticMeshComponent(); + if(!mesh->bRenderCustomDepth) + mesh->SetRenderCustomDepth(true); + } } void ALevelBase::IterateToState(int32 to) diff --git a/Source/Lost_Edge/Private/MainGameModeBase.cpp b/Source/Lost_Edge/Private/MainGameModeBase.cpp index 1e8056c..5517836 100644 --- a/Source/Lost_Edge/Private/MainGameModeBase.cpp +++ b/Source/Lost_Edge/Private/MainGameModeBase.cpp @@ -16,20 +16,20 @@ #include "QuickTimeEvent.h" #include "Widgets/WidgetsManager.h" +AMainGameModeBase* AMainGameModeBase::_instance = nullptr; TStrongObjectPtr AMainGameModeBase::_widgetsManager = nullptr; TStrongObjectPtr AMainGameModeBase::_cutsceneManager = nullptr; TStrongObjectPtr AMainGameModeBase::_quickTimeEventManager = nullptr; TStrongObjectPtr AMainGameModeBase::_dialogueManager = nullptr; -TStrongObjectPtr AMainGameModeBase::_questManager = nullptr; TStrongObjectPtr AMainGameModeBase::leadLevel = nullptr; void AMainGameModeBase::StartPlay() { + _instance = this; _widgetsManager = TStrongObjectPtr{ NewObject(this, widgetManagerClass) }; _cutsceneManager = TStrongObjectPtr{ NewObject(this) }; _quickTimeEventManager = TStrongObjectPtr{ NewObject(this) }; _dialogueManager = TStrongObjectPtr{ NewObject(this) }; - _questManager = TStrongObjectPtr{ NewObject(this) }; AGameModeBase::StartPlay(); @@ -90,6 +90,12 @@ void AMainGameModeBase::CallLevelEvent(int32 id) leadLevel->CallEvent(id); } +void AMainGameModeBase::UpdateQuests(TArray items) +{ + if(_instance && _instance->questsUpdateDelegate.IsBound()) + _instance->questsUpdateDelegate.Broadcast(items); +} + void AMainGameModeBase::SwitchCameraMode() { static TWeakObjectPtr _playerPawn = nullptr; diff --git a/Source/Lost_Edge/Private/MainGameModeBase.h b/Source/Lost_Edge/Private/MainGameModeBase.h index 80d0661..4aee14b 100644 --- a/Source/Lost_Edge/Private/MainGameModeBase.h +++ b/Source/Lost_Edge/Private/MainGameModeBase.h @@ -32,6 +32,9 @@ public: UFUNCTION(BlueprintCallable) static void CallLevelEvent(int32 id); + UFUNCTION(BlueprintCallable) + static void UpdateQuests(TArray items); + void SwitchCameraMode(); static TStrongObjectPtr leadLevel; @@ -43,9 +46,9 @@ protected: TSubclassOf widgetManagerClass; private: + static AMainGameModeBase* _instance; static TStrongObjectPtr _widgetsManager; static TStrongObjectPtr _cutsceneManager; static TStrongObjectPtr _quickTimeEventManager; static TStrongObjectPtr _dialogueManager; - static TStrongObjectPtr _questManager; }; diff --git a/Source/Lost_Edge/Private/Minigame/CrossyRoad/CrossyRoadManager.cpp b/Source/Lost_Edge/Private/Minigame/CrossyRoad/CrossyRoadManager.cpp index 050a08e..1c6a8e7 100644 --- a/Source/Lost_Edge/Private/Minigame/CrossyRoad/CrossyRoadManager.cpp +++ b/Source/Lost_Edge/Private/Minigame/CrossyRoad/CrossyRoadManager.cpp @@ -70,7 +70,7 @@ void ACrossyRoadManager::End() PrimaryActorTick.SetTickFunctionEnable(false); for(int32 handler : inputHandlers) - player->inputComponent->RemoveActionBindingForHandle(handler); + player->inputComponent->RemoveBindingByHandle(handler); player->UnlockPlayer(FPlayerLock::All()); player->ReturnPlayerView(); @@ -196,9 +196,6 @@ void ACrossyRoadManager::RotateLine(USplineComponent* line) void ACrossyRoadManager::Up() { - if(ended) - return; - auto line = lines[0]; auto diffY = lines[0]->GetComponentLocation().Y - lines[1]->GetComponentLocation().Y; for(int32 i = 1; i < lines.Num(); ++i) @@ -222,7 +219,7 @@ void ACrossyRoadManager::Down() void ACrossyRoadManager::Left() { - if(ended || playerLineTime >= 1.0f) + if(playerLineTime >= 1.0f) return; playerLineTime += 0.1f; @@ -237,7 +234,7 @@ void ACrossyRoadManager::Left() void ACrossyRoadManager::Right() { - if(ended || playerLineTime <= 0.0f) + if(playerLineTime <= 0.0f) return; playerLineTime -= 0.1f; diff --git a/Source/Lost_Edge/Private/Minigame/SubwaySurf/SubwaySurfManager.cpp b/Source/Lost_Edge/Private/Minigame/SubwaySurf/SubwaySurfManager.cpp index 2350786..16b8f00 100644 --- a/Source/Lost_Edge/Private/Minigame/SubwaySurf/SubwaySurfManager.cpp +++ b/Source/Lost_Edge/Private/Minigame/SubwaySurf/SubwaySurfManager.cpp @@ -66,7 +66,7 @@ void ASubwaySurfManager::End() PrimaryActorTick.SetTickFunctionEnable(false); for(int32 handler : inputHandlers) - player->inputComponent->RemoveActionBindingForHandle(handler); + player->inputComponent->RemoveBindingByHandle(handler); player->UnlockPlayer(FPlayerLock::All()); player->ReturnPlayerView(); diff --git a/Source/Lost_Edge/Private/PlayerBase.cpp b/Source/Lost_Edge/Private/PlayerBase.cpp index a4b058b..d46bbb3 100644 --- a/Source/Lost_Edge/Private/PlayerBase.cpp +++ b/Source/Lost_Edge/Private/PlayerBase.cpp @@ -274,7 +274,7 @@ void APlayerBase::InteractableActivated(AInteractable* interactable, EActivatorT if(!interactable) return; - if(interactionLocked) + if(interactionLocked || interactable->IsHidden()) return; interactable->_Activate(type); diff --git a/Source/Lost_Edge/Private/QuestManager.cpp b/Source/Lost_Edge/Private/QuestManager.cpp index e02000e..3daabd8 100644 --- a/Source/Lost_Edge/Private/QuestManager.cpp +++ b/Source/Lost_Edge/Private/QuestManager.cpp @@ -9,18 +9,18 @@ #include "MainGameModeBase.h" #include "Widgets/WidgetsManager.h" -UQuestManager::UQuestManager() +void AQuestManager::BeginPlay() { if(auto gamemode_base = UGameplayStatics::GetGameMode(GetWorld())) { if(auto gamemode = Cast(gamemode_base)) { - //gamemode->questsUpdateDelegate.AddDynamic(this, &UQuestManager::Update); + gamemode->questsUpdateDelegate.AddDynamic(this, &AQuestManager::Update); } } } -void UQuestManager::Update(TArray quests) +void AQuestManager::Update(TArray quests) { if(auto WM = AMainGameModeBase::GetWidgetsManager()) WM->UpdateJournal(quests); diff --git a/Source/Lost_Edge/Private/QuestManager.h b/Source/Lost_Edge/Private/QuestManager.h index 005ec18..678dda8 100644 --- a/Source/Lost_Edge/Private/QuestManager.h +++ b/Source/Lost_Edge/Private/QuestManager.h @@ -2,19 +2,22 @@ #pragma once -#include "UObject/Object.h" +#include "GameFramework/Actor.h" #include "QuestManager.generated.h" -UCLASS(BlueprintType) -class UQuestManager : public UObject +UCLASS(Blueprintable, BlueprintType) +class AQuestManager : public AActor { GENERATED_BODY() public: - UQuestManager(); + protected: + virtual void BeginPlay() override; + + UFUNCTION() void Update(TArray quests); }; diff --git a/Source/Lost_Edge/Private/Widgets/InteractableHintWidgetManager.cpp b/Source/Lost_Edge/Private/Widgets/InteractableHintWidgetManager.cpp index 9f4520d..0e3a7ce 100644 --- a/Source/Lost_Edge/Private/Widgets/InteractableHintWidgetManager.cpp +++ b/Source/Lost_Edge/Private/Widgets/InteractableHintWidgetManager.cpp @@ -17,13 +17,13 @@ void UInteractableHintWidgetManager::Append(const UInteractableModificator* modi { FScopeLock Lock(&hintsLock); - if(!IsValid(modificator)) + if(!modificator) { hints->SetVisibility(ESlateVisibility::Visible); return; } - if(hintsMap.Contains(modificator)) + if(hintsMap.Contains(modificator) || !modificator->GetMappingContext()) return; const auto& mappings = modificator->GetMappingContext()->GetMappings(); @@ -57,7 +57,7 @@ void UInteractableHintWidgetManager::Remove(const UInteractableModificator* modi { FScopeLock Lock(&hintsLock); - if(!IsValid(modificator)) + if(!modificator) { hints->SetVisibility(ESlateVisibility::Hidden); return; diff --git a/Source/Lost_Edge/Private/Widgets/WidgetsManager.cpp b/Source/Lost_Edge/Private/Widgets/WidgetsManager.cpp index 53bfa79..9921317 100644 --- a/Source/Lost_Edge/Private/Widgets/WidgetsManager.cpp +++ b/Source/Lost_Edge/Private/Widgets/WidgetsManager.cpp @@ -255,4 +255,5 @@ void UWidgetsManager::ShowJournal() void UWidgetsManager::UpdateJournal(TArray text) { journalWidget->Update(text); + ShowJournal(); }