Merge pull request #381 from westonCoder/add-ambient-sound

Added Ambient Sound to Game
This commit is contained in:
lambertjamesd 2023-10-26 17:58:40 -06:00 committed by GitHub
commit 30fce9981b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 44 additions and 2 deletions

View file

@ -454,6 +454,10 @@ build/assets/sound/vehicles/tank_turret_loop1.wav: portal_pak_dir
@mkdir -p $(@D)
sox portal_pak_dir/sound/vehicles/tank_turret_loop1.wav -b 16 $@
build/assets/sound/ambient/atmosphere/ambience_base.wav: portal_pak_dir
@mkdir -p $(@D)
sox portal_pak_dir/sound/ambient/atmosphere/ambience_base.wav -c 1 -r 22050 $@
build/%.aifc: %.sox portal_pak_dir
@mkdir -p $(@D)
sox $(<:assets/%.sox=portal_pak_dir/%.wav) $(shell cat $<) $(@:%.aifc=%.wav)
@ -470,7 +474,7 @@ build/%.aifc: %.msox portal_pak_dir
sox $(<:assets/%.msox=portal_pak_dir/%.wav) $(shell cat $<) $(@:%.aifc=%.wav)
$(SFZ2N64) -o $@ $(@:%.aifc=%.wav)
build/assets/sound/sounds.sounds build/assets/sound/sounds.sounds.tbl: $(SOUND_CLIPS) build/assets/sound/vehicles/tank_turret_loop1.wav
build/assets/sound/sounds.sounds build/assets/sound/sounds.sounds.tbl: $(SOUND_CLIPS) build/assets/sound/vehicles/tank_turret_loop1.wav build/assets/sound/ambient/atmosphere/ambience_base.wav
@mkdir -p $(@D)
$(SFZ2N64) -o $@ $^

View file

@ -0,0 +1,15 @@
envelope Envelope {
attackTime = 0
attackVolume = 127
decayTime = -1
decayVolume = 127
releaseTime = 0
}
sound Sound {
use("../../../../build/assets/sound/ambient/atmosphere/ambience_base.wav")
loopCount = -1
loopEnd = -1
pan=64
envelope = Envelope
}

View file

@ -2,6 +2,7 @@ operators:
[]
cutscenes:
INTRO:
- play_sound AMBIENCE_BASE 0.2 0.5
- play_animation player player_intro
- play_animation glass_cover_0 glass_cover_0_open
- play_animation glass_cover_1 glass_cover_1_open

View file

@ -2,6 +2,7 @@ operators:
[]
cutscenes:
START:
- play_sound AMBIENCE_BASE 0.2 0.5
- delay 1
- start_cutscene portal_loop
- set_signal FIRST_ELEVATOR

View file

@ -1,5 +1,6 @@
cutscenes:
INTRO:
- play_sound AMBIENCE_BASE 0.2 0.5
- q_sound SOUNDS_02_PART1_ENTRY_1 CH_GLADOS PORTAL_02_PART1_ENTRY_1
- q_sound SOUNDS_02_PART1_ENTRY_2 CH_GLADOS PORTAL_02_PART1_ENTRY_2
- delay 2

View file

@ -17,6 +17,7 @@ cutscenes:
- wait_for_signal horizontal_activiate 2
- q_sound 03_PART2_PLATFORM_ACTIVATED_1 CH_GLADOS PORTAL_03_PART2_PLATFORM_ACTIVATED_1
INTRO:
- play_sound AMBIENCE_BASE 0.2 0.5
- save_checkpoint 0
- open_portal ground_portal 0
- q_sound SOUNDS_03_PART1_ENTRY_1 CH_GLADOS PORTAL_03_PART1_ENTRY_1

View file

@ -2,6 +2,7 @@ cutscenes:
SUCCESS:
- q_sound SOUNDS_04_PART1_SUCCESS_1 CH_GLADOS PORTAL_04_PART1_SUCCESS_1
INTRO_CUTSCENE:
- play_sound AMBIENCE_BASE 0.2 0.5
- q_sound SOUNDS_04_PART1_ENTRY_1 CH_GLADOS PORTAL_04_PART1_ENTRY_1
- wait_for_channel CH_GLADOS
- q_sound PORTAL_PROCEDURAL_JIGGLE_BONE CH_MUSIC SubtitleKeyNone

View file

@ -2,6 +2,7 @@ operators:
[]
cutscenes:
INTRO_CUTSCENE:
- play_sound AMBIENCE_BASE 0.2 0.5
- set_signal cube_dropper
- open_portal portal_0 0
- q_sound SOUNDS_05_PART1_ENTRY_1 CH_GLADOS PORTAL_05_PART1_ENTRY_1

View file

@ -8,6 +8,7 @@ cutscenes:
- play_animation piston_top piston_top_0
- play_animation piston_bottom piston_bottom_0
FIRST_ROOM:
- play_sound AMBIENCE_BASE 0.2 0.5
- q_sound SOUNDS_06_PART1_ENTRY_1 CH_GLADOS PORTAL_06_PART1_ENTRY_1
- delay 2
- rumble 2

View file

@ -21,6 +21,7 @@ cutscenes:
DROWN_PLAYER:
- kill_player water
START:
- play_sound AMBIENCE_BASE 0.2 0.5
- delay 1
- start_cutscene portal_loop
- start_cutscene platform_ferry

View file

@ -447,6 +447,20 @@ int soundPlayerIsPlaying(ALSndId soundId) {
return activeSound->estimatedTimeLeft > 0.0f && alSndpGetState(&gSoundPlayer) != AL_STOPPED;
}
int soundPlayerIsLoopedById(int soundId){
struct ActiveSound* activeSound = soundPlayerFindActiveSound(soundId);
if (!activeSound) {
return 0;
}
if (activeSound->flags & SOUND_FLAGS_LOOPING){
return 1;
}
return 0;
}
float soundPlayerTimeLeft(ALSndId soundId) {
struct ActiveSound* activeSound = soundPlayerFindActiveSound(soundId);

View file

@ -39,6 +39,7 @@ void soundPlayerUpdatePosition(ALSndId soundId, struct Vector3* at, struct Vecto
void soundPlayerAdjustVolume(ALSndId soundId, float newVolume);
int soundPlayerIsPlaying(ALSndId soundId);
int soundPlayerIsLoopedById(int soundId);
float soundPlayerTimeLeft(ALSndId soundId);
void soundListenerUpdate(struct Vector3* position, struct Quaternion* rotation, struct Vector3* velocity, int listenerIndex);

View file

@ -322,7 +322,7 @@ int cutsceneRunnerUpdateCurrentStep(struct CutsceneRunner* runner) {
struct CutsceneStep* step = &runner->currentCutscene->steps[runner->currentStep];
switch (step->type) {
case CutsceneStepTypePlaySound:
return !soundPlayerIsPlaying(runner->state.playSound.soundId);
return soundPlayerIsLoopedById(runner->state.playSound.soundId) || !soundPlayerIsPlaying(runner->state.playSound.soundId);
case CutsceneStepTypeWaitForChannel:
{
int result = !cutsceneRunnerIsChannelPlaying(step->waitForChannel.channel);