From 87e87edc13576e04ef320f5606df358a80698a3c Mon Sep 17 00:00:00 2001 From: Arnaud Jamin Date: Wed, 18 Oct 2023 14:41:40 -0400 Subject: [PATCH] minor change --- Source/CogSample/CogSampleCharacter.cpp | 27 ++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/Source/CogSample/CogSampleCharacter.cpp b/Source/CogSample/CogSampleCharacter.cpp index 3ec61a0..129601c 100644 --- a/Source/CogSample/CogSampleCharacter.cpp +++ b/Source/CogSample/CogSampleCharacter.cpp @@ -244,22 +244,31 @@ void ACogSampleCharacter::InitializeAbilitySystem() AbilitySystem->GiveAbility(Spec); } - int32 Index = 0; - for (FActiveAbilityInfo& AbilityInfo : ActiveAbilities) + for (int32 i = 0; i < ActiveAbilities.Num(); ++i) { + const FActiveAbilityInfo& AbilityInfo = ActiveAbilities[i]; const FGameplayAbilitySpec Spec(AbilityInfo.Ability, 1, INDEX_NONE, this); - FGameplayAbilitySpecHandle Handle = AbilitySystem->GiveAbility(Spec); + const FGameplayAbilitySpecHandle Handle = AbilitySystem->GiveAbility(Spec); ActiveAbilityHandles.Add(Handle); - if (FGameplayAbilitySpec* AddedSpec = AbilitySystem->FindAbilitySpecFromHandle(Handle)) + const FGameplayAbilitySpec* AddedSpec = AbilitySystem->FindAbilitySpecFromHandle(Handle); + if (AddedSpec == nullptr) { - if (UCogSampleGameplayAbility* Ab = Cast(AddedSpec->GetPrimaryInstance())) - { - Ab->SetCooldownTag(UCogSampleFunctionLibrary_Tag::ActiveAbilityCooldownTags[Index]); - } + continue; } - Index++; + UCogSampleGameplayAbility* Ability = Cast(AddedSpec->GetPrimaryInstance()); + if (Ability == nullptr) + { + continue; + } + + if (UCogSampleFunctionLibrary_Tag::ActiveAbilityCooldownTags.IsValidIndex(i) == false) + { + continue; + } + + Ability->SetCooldownTag(UCogSampleFunctionLibrary_Tag::ActiveAbilityCooldownTags[i]); } UpdateActiveAbilitySlots();