diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Combat_start__808s_.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Combat_start__808s_.uasset index 414a13e5..09a57bed 100644 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Combat_start__808s_.uasset +++ b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Combat_start__808s_.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b1cae3585fbf0552b1330523e44133f71cbcb4da2d13cb35f269b5940dc12db -size 890695 +oid sha256:f37e0ef4ebaf0b6a10787795d14329326dc69f6a039c650480fba449120bb7dc +size 889949 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Drums.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Drums.uasset index fb36c37b..52aace99 100644 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Drums.uasset +++ b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Drums.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bc27e362ee8d62313b888c06ba033700aa650800124e5bf1a2565f7ec42a5c22 -size 359535 +oid sha256:f6332ddfef20364e1b3eab6f849ddc264c41fdf085cbe9ea4bfa165ef1e8c778 +size 359591 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Guitar.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Guitar.uasset index 735fb58b..dc134896 100644 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Guitar.uasset +++ b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Guitar.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2158d24dee22d93dd286be9b8d55bd7fda7463094d15a7d7e93ab266e24a51d4 -size 598324 +oid sha256:cfe51689b50707b4809a1bb1eed93b8d987635640ddb4875ef0417407f4dcd82 +size 598552 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Hats_and_clap.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Hats_and_clap.uasset index 7440e544..c36baad9 100644 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Hats_and_clap.uasset +++ b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Hats_and_clap.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d8f06f8282c229dd55c5326f512ecd33cabf3563b79475b89ace020ae0130312 -size 141396 +oid sha256:4abd0ac6b57165ec1da4414f3bca7d98d527dab39a24f9f4beb437f9c64fab2a +size 141494 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Sound_effect.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Sound_effect.uasset index dc721629..79363b67 100644 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/Sound_effect.uasset +++ b/EndlessVendetta/Content/Audio/Music/Combat_track_1/Sound_effect.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e6f1f4d0c719a037a81223e9d88674d195c9a5d097f1a6d46643b65dccf2ecd -size 245165 +oid sha256:e3a9fea235c30048c17fba110ff97094a893ad3a77f8441d022a5e42ffb856a5 +size 245278 diff --git a/EndlessVendetta/Content/Audio/Music/Combat_track_1/combat_Continuous.uasset b/EndlessVendetta/Content/Audio/Music/Combat_track_1/combat_Continuous.uasset index 0c01c6cb..1e688551 100644 --- a/EndlessVendetta/Content/Audio/Music/Combat_track_1/combat_Continuous.uasset +++ b/EndlessVendetta/Content/Audio/Music/Combat_track_1/combat_Continuous.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f1cc5d62dac13697c6d360ea63b0c2a60f9792a5b00fc2a1d21cc7d5f70b48b5 -size 879560 +oid sha256:394ecb097be2e85cd0a2890d21abb308bb9bcfa5b824e6be22a0ad4397570e2f +size 878633 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_MainCharacter.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_MainCharacter.uasset index 0acb5bad..a5f91cbf 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BP_MainCharacter.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BP_MainCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a773812d81d2b5a276255a6313520b9b857f18bbae905e1600d63f51d3e8acc -size 1515881 +oid sha256:ab4753229730fe18a116f5ee60b9d4b9bd7ac23ec74915605f65d2251b608a16 +size 1517136 diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/CombatAudioAutomation.cpp b/EndlessVendetta/Source/EndlessVendetta/AI/CombatAudioAutomation.cpp index 53468c9f..f1a053cc 100644 --- a/EndlessVendetta/Source/EndlessVendetta/AI/CombatAudioAutomation.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/AI/CombatAudioAutomation.cpp @@ -20,43 +20,67 @@ UCombatAudioAutomation::UCombatAudioAutomation() void UCombatAudioAutomation::InCombat() { + if (bInCombat) return; bInCombat = true; + StopTracks(); + AudioTrackQueue.Empty(); AudioTrackQueue.Enqueue(EAudioTrack::CombatStart); AudioTrackQueue.Enqueue(EAudioTrack::CombatContinuous); + AudioSync(); } void UCombatAudioAutomation::OutOfCombat() { bInCombat = false; - AudioTrackQueue.Enqueue(EAudioTrack::StopCombat); + StopTracks(); + if (bBeingInvestigated) + { + Investigated(); + return; + } + if (bInRestrictedArea) InRestrictedArea(); } void UCombatAudioAutomation::Investigated() { + if (bBeingInvestigated) return; + bBeingInvestigated = true; if (bInCombat) return; - AudioTrackQueue.Enqueue(EAudioTrack::Investigated); + if (!bInRestrictedArea) return; + + StealthTracksAudioComponents[0]->Stop(); + StealthTracksAudioComponents[1]->Stop(); + StealthTracksAudioComponents[2]->Stop(); + InvestigatedTrackAudioComponent->Play(); } void UCombatAudioAutomation::NotBeingInvestigated() { - if (bInCombat) return; - AudioTrackQueue.Enqueue(EAudioTrack::StopStealth); + bBeingInvestigated = false; + InvestigatedTrackAudioComponent->Stop(); + if (bInRestrictedArea) InRestrictedArea(); } void UCombatAudioAutomation::InRestrictedArea() { - if (bInCombat) return; + if (bInRestrictedArea) return; bInRestrictedArea = true; + if (bInCombat) return; + if (bBeingInvestigated) return; + AudioTrackQueue.Empty(); AudioTrackQueue.Enqueue(EAudioTrack::Stealth1); AudioTrackQueue.Enqueue(EAudioTrack::Stealth2); AudioTrackQueue.Enqueue(EAudioTrack::Stealth3); + AudioSync(); } void UCombatAudioAutomation::NotInRestrictedArea() { - if (bInCombat) return; bInRestrictedArea = false; - AudioTrackQueue.Enqueue(EAudioTrack::StopStealth); + if (bInCombat) return; + StealthTracksAudioComponents[0]->Stop(); + StealthTracksAudioComponents[1]->Stop(); + StealthTracksAudioComponents[2]->Stop(); } // Called when the game starts @@ -66,24 +90,22 @@ void UCombatAudioAutomation::BeginPlay() for (USoundBase* Track : StealthTracks) { - UAudioComponent* AudioComponent = UGameplayStatics::SpawnSound2D(GetWorld(), Track); + UAudioComponent* AudioComponent = UGameplayStatics::CreateSound2D(GetWorld(), Track, 1.0f, 1.0f, 0.0f, nullptr, false, false); AllAudioComponents.Add(AudioComponent); StealthTracksAudioComponents.Add(AudioComponent); } - UAudioComponent* AudioComponent = UGameplayStatics::SpawnSound2D(GetWorld(), InvestigatedTrack); + UAudioComponent* AudioComponent = UGameplayStatics::CreateSound2D(GetWorld(), InvestigatedTrack, 1.0f, 1.0f, 0.0f, nullptr, false, false); AllAudioComponents.Add(AudioComponent); InvestigatedTrackAudioComponent = AudioComponent; - AudioComponent = UGameplayStatics::SpawnSound2D(GetWorld(), CombatStartTrack); + AudioComponent = UGameplayStatics::CreateSound2D(GetWorld(), CombatStartTrack, 1.0f, 1.0f, 0.0f, nullptr, false, false); AllAudioComponents.Add(AudioComponent); CombatStartTrackAudioComponent = AudioComponent; - AudioComponent = UGameplayStatics::SpawnSound2D(GetWorld(), CombatContinuousTrack); + AudioComponent = UGameplayStatics::CreateSound2D(GetWorld(), CombatContinuousTrack, 1.0f, 1.0f, 0.0f, nullptr, false, false); AllAudioComponents.Add(AudioComponent); CombatContinuousTrackAudioComponent = AudioComponent; - - GetWorld()->GetTimerManager().SetTimer(AudioSyncTimer, this, &UCombatAudioAutomation::PlayQueued, 5.33333f, true, 1.0f); } @@ -91,10 +113,10 @@ void UCombatAudioAutomation::PlayQueued() { if (AudioTrackQueue.IsEmpty()) return; - EAudioTrack AudioTrack; - AudioTrackQueue.Dequeue(AudioTrack); + EAudioTrack Track; + AudioTrackQueue.Dequeue(Track); - switch (AudioTrack) + switch (Track) { case EAudioTrack::Stealth1: StealthTracksAudioComponents[0]->Play(); @@ -105,12 +127,6 @@ void UCombatAudioAutomation::PlayQueued() case EAudioTrack::Stealth3: StealthTracksAudioComponents[2]->Play(); break; - case EAudioTrack::Investigated: - StealthTracksAudioComponents[0]->Stop(); - StealthTracksAudioComponents[1]->Stop(); - StealthTracksAudioComponents[2]->Stop(); - InvestigatedTrackAudioComponent->Play(); - break; case EAudioTrack::CombatStart: CombatStartTrackAudioComponent->Play(); break; @@ -118,21 +134,6 @@ void UCombatAudioAutomation::PlayQueued() CombatStartTrackAudioComponent->Stop(); CombatContinuousTrackAudioComponent->Play(); break; - case EAudioTrack::StopStealth: - for (UAudioComponent* AudioComponent : StealthTracksAudioComponents) - { - AudioComponent->Stop(); - } - break; - case EAudioTrack::StopInvestigated: - InvestigatedTrackAudioComponent->Stop(); - break; - case EAudioTrack::StopCombat: - CombatStartTrackAudioComponent->Stop(); - CombatContinuousTrackAudioComponent->Stop(); - break; - default: - break; } } @@ -150,3 +151,12 @@ void UCombatAudioAutomation::StopTracks() AudioComponent->Stop(); } } + +void UCombatAudioAutomation::AudioSync() +{ + if (GetWorld()->GetTimerManager().IsTimerActive(AudioSyncTimer)) + { + GetWorld()->GetTimerManager().ClearTimer(AudioSyncTimer); + } + GetWorld()->GetTimerManager().SetTimer(AudioSyncTimer, this, &UCombatAudioAutomation::PlayQueued, 5.33333f, true, 0.2f); +} diff --git a/EndlessVendetta/Source/EndlessVendetta/AI/CombatAudioAutomation.h b/EndlessVendetta/Source/EndlessVendetta/AI/CombatAudioAutomation.h index 937fc18b..e5c80670 100644 --- a/EndlessVendetta/Source/EndlessVendetta/AI/CombatAudioAutomation.h +++ b/EndlessVendetta/Source/EndlessVendetta/AI/CombatAudioAutomation.h @@ -12,12 +12,8 @@ enum class EAudioTrack : uint8 Stealth1, Stealth2, Stealth3, - Investigated, CombatStart, - CombatContinuous, - StopStealth, - StopInvestigated, - StopCombat, + CombatContinuous }; UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent)) @@ -72,9 +68,11 @@ private: bool bInCombat = false; bool bInRestrictedArea = false; + bool bBeingInvestigated = false; void StopTracks(); UPROPERTY() FTimerHandle AudioSyncTimer; + void AudioSync(); }; diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 5ec1e027..f1dda871 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -97,7 +97,7 @@ void AEndlessVendettaCharacter::IncrementBeingInvestigatedCount() void AEndlessVendettaCharacter::DecrementBeingInvestigatedCount() { BeingInvestigatedCount--; - if (BeingInvestigatedCount <= 0) + if (BeingInvestigatedCount <= 0 && bIsBeingInvestigated) { bIsBeingInvestigated = false; Cast(GetComponentByClass(UCombatAudioAutomation::StaticClass()))->NotBeingInvestigated();