From bc26d04f83ba20fdd9fcfc4d8adb0d7e537ad5e3 Mon Sep 17 00:00:00 2001 From: Louis Hobbs Date: Sun, 12 Feb 2023 20:28:30 +0000 Subject: [PATCH] Store `WeaponProperties` in `WeaponPickup` --- Source/Nakatomi/WeaponPickup.cpp | 11 +++++++++++ Source/Nakatomi/WeaponPickup.h | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/Source/Nakatomi/WeaponPickup.cpp b/Source/Nakatomi/WeaponPickup.cpp index 3ce4f65..75bbffb 100644 --- a/Source/Nakatomi/WeaponPickup.cpp +++ b/Source/Nakatomi/WeaponPickup.cpp @@ -57,6 +57,7 @@ void AWeaponPickup::OnOverlapBegin(UPrimitiveComponent* OverlappedComponent, AAc if (player && Weapon) { player->AddWeaponToInventory(Weapon); + player->WeaponInventory.Last()->SetWeaponProperties(*WeaponComponent->GetWeaponProperties()); this->Destroy(); WeaponComponent->Destroy(); @@ -75,6 +76,16 @@ void AWeaponPickup::SetWeapon(TSubclassOf weapon) SpawnWeapon(); } +FWeaponProperties* AWeaponPickup::GetWeaponProperties() +{ + return &WeaponProperties; +} + +void AWeaponPickup::SetWeaponProperties(FWeaponProperties FWeaponProperties) +{ + WeaponComponent->SetWeaponProperties(FWeaponProperties); +} + void AWeaponPickup::SpawnWeapon() { FActorSpawnParameters SpawnParameters; diff --git a/Source/Nakatomi/WeaponPickup.h b/Source/Nakatomi/WeaponPickup.h index caf7de7..9b6a09d 100644 --- a/Source/Nakatomi/WeaponPickup.h +++ b/Source/Nakatomi/WeaponPickup.h @@ -45,6 +45,8 @@ private: UPROPERTY() FVector WeaponStartingLocation; + FWeaponProperties WeaponProperties; + public: // Sets default values for this actor's properties AWeaponPickup(); @@ -62,6 +64,10 @@ public: void SetWeapon(TSubclassOf weapon); + FWeaponProperties* GetWeaponProperties(); + + void SetWeaponProperties(FWeaponProperties FWeaponProperties); + private: void SpawnWeapon();