From f32f8f91492db577887354671540a02fc155a89b Mon Sep 17 00:00:00 2001 From: Oleg Petruny Date: Fri, 11 Jul 2025 19:01:22 +0200 Subject: [PATCH] bug fix --- .../BP_Minigame_RythmClickManager.uasset | 4 +- .../Content/Levels/Level_3/L_Level3.umap | 4 +- .../Content/Levels/Level_4/L_Level4.umap | 4 +- .../Pages/UI_MainMenu_Page_Home.uasset | 4 +- .../UI/Blueprints/MainMenu/UI_MainMenu.uasset | 4 +- .../UI_QuickTimeEventMultiPress.uasset | 4 +- .../Content/UI/Blueprints/UI_CheatMenu.uasset | 4 +- .../Content/UI/Blueprints/UI_Journal.uasset | 4 +- .../Lost_Edge/Private/CustomGameInstance.cpp | 14 +++--- .../Lost_Edge/Private/Levels/Level1.cpp | 4 ++ .../Lost_Edge/Private/Levels/Level2.cpp | 5 +++ .../Lost_Edge/Private/Levels/Level3.cpp | 6 ++- .../Lost_Edge/Private/Levels/LevelBase.cpp | 43 +++++++++++-------- 13 files changed, 60 insertions(+), 44 deletions(-) diff --git a/UnrealProject/Lost_Edge/Content/Blueprints/Minigames/RythmClick/BP_Minigame_RythmClickManager.uasset b/UnrealProject/Lost_Edge/Content/Blueprints/Minigames/RythmClick/BP_Minigame_RythmClickManager.uasset index 12c3ffc..56c95f6 100644 --- a/UnrealProject/Lost_Edge/Content/Blueprints/Minigames/RythmClick/BP_Minigame_RythmClickManager.uasset +++ b/UnrealProject/Lost_Edge/Content/Blueprints/Minigames/RythmClick/BP_Minigame_RythmClickManager.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:436ac7d8cc671cda0b46ac1d948d45b536c18d3570b849f708b495a54fe31880 -size 68230 +oid sha256:c51ceabc0968d40bfbbde7c6db69c6f0091995fa3694deefd787b94d11b180f8 +size 68662 diff --git a/UnrealProject/Lost_Edge/Content/Levels/Level_3/L_Level3.umap b/UnrealProject/Lost_Edge/Content/Levels/Level_3/L_Level3.umap index a1e6977..08a1ae8 100644 --- a/UnrealProject/Lost_Edge/Content/Levels/Level_3/L_Level3.umap +++ b/UnrealProject/Lost_Edge/Content/Levels/Level_3/L_Level3.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:436041d119859a7da3544309874dd9f19ccad8985918a06d38d4d78108a65666 -size 2805776 +oid sha256:4da09e4cf0f901d45ac718c28e7b8abc6578d7d91ef6cd7f3bdeb146cb7e2a6e +size 2808446 diff --git a/UnrealProject/Lost_Edge/Content/Levels/Level_4/L_Level4.umap b/UnrealProject/Lost_Edge/Content/Levels/Level_4/L_Level4.umap index 4a0520f..b9d51d2 100644 --- a/UnrealProject/Lost_Edge/Content/Levels/Level_4/L_Level4.umap +++ b/UnrealProject/Lost_Edge/Content/Levels/Level_4/L_Level4.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c25852503a747122e8b7913d60083d26446064405aea9914688ae029df9f1902 -size 361689 +oid sha256:7986c970df283d6bee51b4a67343a16708754f72ac4aea4fac72dcd500330525 +size 362710 diff --git a/UnrealProject/Lost_Edge/Content/UI/Blueprints/MainMenu/Pages/UI_MainMenu_Page_Home.uasset b/UnrealProject/Lost_Edge/Content/UI/Blueprints/MainMenu/Pages/UI_MainMenu_Page_Home.uasset index d6cc9f0..3e17d98 100644 --- a/UnrealProject/Lost_Edge/Content/UI/Blueprints/MainMenu/Pages/UI_MainMenu_Page_Home.uasset +++ b/UnrealProject/Lost_Edge/Content/UI/Blueprints/MainMenu/Pages/UI_MainMenu_Page_Home.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3b32af64f58e111f0510ad254359fabc311a3b658325d9a67e5681fd08ce757f -size 130008 +oid sha256:521bff6a76ac2e73757f4215f41d347aebb27863955557526bf7f785df5b743b +size 131842 diff --git a/UnrealProject/Lost_Edge/Content/UI/Blueprints/MainMenu/UI_MainMenu.uasset b/UnrealProject/Lost_Edge/Content/UI/Blueprints/MainMenu/UI_MainMenu.uasset index 7b7195f..124705f 100644 --- a/UnrealProject/Lost_Edge/Content/UI/Blueprints/MainMenu/UI_MainMenu.uasset +++ b/UnrealProject/Lost_Edge/Content/UI/Blueprints/MainMenu/UI_MainMenu.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ff06f385a335042c3d5d0af814283bd9c622745fd44bde88c5dd0fc73a5f53ed -size 242163 +oid sha256:ee1d2834f974b463e177bef4f5a1b5bdb507e0b1dbe004781e183ace8ea91361 +size 248273 diff --git a/UnrealProject/Lost_Edge/Content/UI/Blueprints/QuickTimeEvents/UI_QuickTimeEventMultiPress.uasset b/UnrealProject/Lost_Edge/Content/UI/Blueprints/QuickTimeEvents/UI_QuickTimeEventMultiPress.uasset index f259ae4..85309f5 100644 --- a/UnrealProject/Lost_Edge/Content/UI/Blueprints/QuickTimeEvents/UI_QuickTimeEventMultiPress.uasset +++ b/UnrealProject/Lost_Edge/Content/UI/Blueprints/QuickTimeEvents/UI_QuickTimeEventMultiPress.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7378ac82cd924820c60ac5cc3cb182211e57d9f3970ed7310c4c74f4e2472828 -size 459172 +oid sha256:0ba3ebd8c6c41fca55f04e1b7921e3dc29033b7ef7d870bb42e07b4ce08a6f1f +size 454080 diff --git a/UnrealProject/Lost_Edge/Content/UI/Blueprints/UI_CheatMenu.uasset b/UnrealProject/Lost_Edge/Content/UI/Blueprints/UI_CheatMenu.uasset index 47f0e59..46d6a92 100644 --- a/UnrealProject/Lost_Edge/Content/UI/Blueprints/UI_CheatMenu.uasset +++ b/UnrealProject/Lost_Edge/Content/UI/Blueprints/UI_CheatMenu.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9c23d118c9aa51dfb18a02aa675a76161268e4bcaed314d4f3cf2c9966da4221 -size 197051 +oid sha256:5a0f87fb54c6e0c02b8e19e2b344860e428e207b1ac3277ae6fbf28c041c9f98 +size 202962 diff --git a/UnrealProject/Lost_Edge/Content/UI/Blueprints/UI_Journal.uasset b/UnrealProject/Lost_Edge/Content/UI/Blueprints/UI_Journal.uasset index 340bf04..3dc0890 100644 --- a/UnrealProject/Lost_Edge/Content/UI/Blueprints/UI_Journal.uasset +++ b/UnrealProject/Lost_Edge/Content/UI/Blueprints/UI_Journal.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0df779105a105e7f3a925f65f7e0295b8923617945cb44f3c84d25e490f115b4 -size 57000 +oid sha256:339fa860de0ac3bb4347fa98409c2d95052b352e77c2fb3bede704de77298cdb +size 57050 diff --git a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/CustomGameInstance.cpp b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/CustomGameInstance.cpp index 31fcfbd..f5eff9b 100644 --- a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/CustomGameInstance.cpp +++ b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/CustomGameInstance.cpp @@ -130,21 +130,19 @@ void UCustomGameInstance::SaveGame(FName checkpointName) if(!levelScript) return; - auto player = APlayerBase::Get(); - if(!player) - return; - saveData->level = GetWorld()->GetFName(); saveData->state = levelScript->GetState(); saveData->checkpoint = checkpointName; - if(player->leftPocketItem) + + auto player = APlayerBase::Get(); + if(player && player->leftPocketItem) saveData->playerLeftPocketItem = player->leftPocketItem->GetFName(); else - saveData->playerLeftPocketItem = FName(TEXT("")); - if(player->rightPocketItem) + saveData->playerLeftPocketItem = {}; + if(player && player->rightPocketItem) saveData->playerRightPocketItem = player->rightPocketItem->GetFName(); else - saveData->playerRightPocketItem = FName(TEXT("")); + saveData->playerRightPocketItem = {}; UGameplayStatics::SaveGameToSlot(saveData, saveName, saveIndex); } diff --git a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level1.cpp b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level1.cpp index fc46e2e..b6e1eff 100644 --- a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level1.cpp +++ b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level1.cpp @@ -10,6 +10,7 @@ #include "Engine/SkyLight.h" #include "LevelSequencePlayer.h" +#include "CustomGameInstance.h" #include "CutsceneManager.h" void ALevel1::BeginPlay() @@ -19,6 +20,9 @@ void ALevel1::BeginPlay() //TurnLight(false); //TurnFog(false); + if(auto GI = UCustomGameInstance::Get()) + GI->SaveGame({}); + CallNextState(); } diff --git a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level2.cpp b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level2.cpp index 9915566..4061bf8 100644 --- a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level2.cpp +++ b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level2.cpp @@ -2,9 +2,14 @@ #include "Level2.h" +#include "CustomGameInstance.h" + void ALevel2::BeginPlay() { ALevelBase::BeginPlay(); + if(auto GI = UCustomGameInstance::Get()) + GI->SaveGame({}); + CallNextState(); } diff --git a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level3.cpp b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level3.cpp index 82126eb..4ad87ac 100644 --- a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level3.cpp +++ b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/Level3.cpp @@ -8,6 +8,7 @@ #include "Engine/SkyLight.h" #include "LevelSequencePlayer.h" +#include "CustomGameInstance.h" #include "CutsceneManager.h" #include "MainGameModeBase.h" @@ -15,5 +16,8 @@ void ALevel3::BeginPlay() { ALevelBase::BeginPlay(); - CallNextState(); + if(auto GI = UCustomGameInstance::Get()) + GI->SaveGame({}); + + //CallNextState(); } diff --git a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/LevelBase.cpp b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/LevelBase.cpp index 1658907..9cde47b 100644 --- a/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/LevelBase.cpp +++ b/UnrealProject/Lost_Edge/Source/Lost_Edge/Private/Levels/LevelBase.cpp @@ -89,32 +89,37 @@ void ALevelBase::ApplySaveData() if(!player) return; - for(TActorIterator it(GetWorld()); it; ++it) + if(!GI->saveData->checkpoint.IsNone()) { - if(it->GetFName() == GI->saveData->checkpoint) + for(TActorIterator it(GetWorld()); it; ++it) { - player->SetActorLocation(it->GetActorLocation(), false, nullptr, ETeleportType::ResetPhysics); - player->Controller->SetControlRotation(it->GetActorRotation()); - break; + if(it->GetFName() == GI->saveData->checkpoint) + { + player->SetActorLocation(it->GetActorLocation(), false, nullptr, ETeleportType::ResetPhysics); + player->Controller->SetControlRotation(it->GetActorRotation()); + break; + } } } - int pocketItems = 0; - for(TActorIterator it(GetWorld()); it; ++it) + if(!GI->saveData->playerLeftPocketItem.IsNone() || !GI->saveData->playerRightPocketItem.IsNone()) { - if(it->GetFName() == GI->saveData->playerLeftPocketItem) + int pocketItems = 0; + for(TActorIterator it(GetWorld()); it; ++it) { - ++pocketItems; - player->TakeItemToLeftHand(*it); - } - else if(it->GetFName() == GI->saveData->playerRightPocketItem) - { - ++pocketItems; - player->TakeItemToRightHand(*it); - } - if(pocketItems > 1) - { - break; + if(pocketItems > 1) + break; + + if(it->GetFName() == GI->saveData->playerLeftPocketItem) + { + ++pocketItems; + player->TakeItemToLeftHand(*it); + } + else if(it->GetFName() == GI->saveData->playerRightPocketItem) + { + ++pocketItems; + player->TakeItemToRightHand(*it); + } } } }