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();