diff --git a/EndlessVendetta/Content/Levels/ControlTutorialLevel.umap b/EndlessVendetta/Content/Levels/ControlTutorialLevel.umap index 7d4e5b0a..e31c2039 100644 --- a/EndlessVendetta/Content/Levels/ControlTutorialLevel.umap +++ b/EndlessVendetta/Content/Levels/ControlTutorialLevel.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fefcf738250bf6a56a7db4d81597125201e4312a07f1c8e271bdc3f0a1a1e772 -size 3338717 +oid sha256:bf4779b18c437907cd404cdc3f0b34f086a1fd3a2fed88b6941a6b18993a00a5 +size 3341693 diff --git a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset index 0f990580..01456a0c 100644 --- a/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset +++ b/EndlessVendetta/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d -size 72364642 +oid sha256:26d8205689202d1a13cf865bd93e8e108c054d7bda89d9a19e5fb5810f528080 +size 66790690 diff --git a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset index 529eb0fd..bf2e4391 100644 --- a/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset +++ b/EndlessVendetta/Content/StarterContent/Particles/P_Ambient_Dust.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:386519d1300f5d014b7400eab235f2ec3d969842e9e2094a802b0ddcd258da10 -size 53268 +oid sha256:01ef616c7a8bd90cd1b7a13efb18a56f33346efbae51efa31f09804478b7621d +size 43456 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 12c6eba9..1de79a3d 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -759,6 +759,10 @@ void AEndlessVendettaCharacter::HoldInteract() ExitShip(GetActorTransform()); return; } + + if (GadgetManager->IsValidReconGadget() && GadgetManager->IsReconEquipped() && !GadgetManager->TryToUnequipRecon()) return; + if (GadgetManager->IsValidCombatGadget() && GadgetManager->IsCombatEquipped() && !GadgetManager->TryToUnequipCombat()) return; + FTransform TakeOffTransform = GetActorTransform(); FVector NewLoc = TakeOffTransform.GetLocation(); NewLoc.Z += BikeRideHeight; diff --git a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp index 94a5dad4..31ef2b1f 100644 --- a/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/GadgetSystem/GadgetManager.cpp @@ -3,6 +3,9 @@ #include "GadgetManager.h" +#include "EndlessVendetta/EVGameInstance.h" +#include "Kismet/GameplayStatics.h" + // Sets default values AGadgetManager::AGadgetManager() { @@ -27,6 +30,12 @@ void AGadgetManager::Tick(float DeltaTime) void AGadgetManager::SpawnGadgetsOnBeginPlay(USceneComponent* PlayersCameraComponent) { + UEVGameInstance* GI = Cast(GetGameInstance()); + if (IsValid(GI->MainSaveGameInstanceRef)) + { + ReconClass = GI->MainSaveGameInstanceRef->ReconClassSave; + CombatClass = GI->MainSaveGameInstanceRef->CombatClassSave; + } if (IsValid(ReconClass)) SpawnGadget(ReconClass, PlayersCameraComponent); if (IsValid(CombatClass)) SpawnGadget(CombatClass, PlayersCameraComponent); } @@ -36,6 +45,8 @@ void AGadgetManager::SpawnGadget(TSubclassOf GadgetClass, USceneCom FActorSpawnParameters SpawnParams; SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; const FAttachmentTransformRules AttachmentRules(EAttachmentRule::SnapToTarget, true); + UEVGameInstance* GI = Cast(GetGameInstance()); + AActor* SpawnedActor = GetWorld()->SpawnActor(GadgetClass, GetActorLocation(), GetActorRotation(), SpawnParams); @@ -43,14 +54,18 @@ void AGadgetManager::SpawnGadget(TSubclassOf GadgetClass, USceneCom { if (IsValid(ReconGadget)) ReconGadget->Destroy(); ReconGadget = Cast(SpawnedActor); + if (IsValid(GI->MainSaveGameInstanceRef)) GI->MainSaveGameInstanceRef->ReconClassSave = GadgetClass; } else if (SpawnedActor->IsA(ACombatGadget::StaticClass())) { if (IsValid(CombatGadget)) CombatGadget->Destroy(); CombatGadget = Cast(SpawnedActor); + if (IsValid(GI->MainSaveGameInstanceRef)) GI->MainSaveGameInstanceRef->CombatClassSave = GadgetClass; } else UE_LOG(LogTemp, Fatal, TEXT("Passed sub class of gadget base is neither a combat or recon gadget, check the gadget class you're passing through or contact Rafal")); + UGameplayStatics::SaveGameToSlot(GI->MainSaveGameInstanceRef, "MainSave", 0); + AGadgetBase* BaseGadget = Cast(SpawnedActor); BaseGadget->AttachToComponent(PlayersCameraComponent, AttachmentRules); BaseGadget->SetActorRelativeLocation(BaseGadget->GetUnequippedOffset()); diff --git a/EndlessVendetta/Source/EndlessVendetta/MainSaveGameClass.h b/EndlessVendetta/Source/EndlessVendetta/MainSaveGameClass.h index eeba662c..8bd72e9b 100644 --- a/EndlessVendetta/Source/EndlessVendetta/MainSaveGameClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/MainSaveGameClass.h @@ -40,4 +40,10 @@ public: UPROPERTY() TArray> SideBountiesToSpawnSave; + + UPROPERTY() + TSubclassOf ReconClassSave; + + UPROPERTY() + TSubclassOf CombatClassSave; };