Merge pull request #367 from westonCoder/add-music-to-chambers

Added music to appropriate levels
This commit is contained in:
lambertjamesd 2023-10-25 14:09:22 -06:00 committed by GitHub
commit 0d21f9818b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 30 additions and 9 deletions

View file

@ -227,7 +227,7 @@ That will generate the rom at `/build/portal64.z64`
## Current New Sounds TODO List
- [ ] Box collision sounds
- [ ] Ambient background loop
- [x] Ambient background loop
- [x] Unstationary scaffolding moving sound
## Current Bug TODO List (Hardware Verified) (High->Low priority)

View file

@ -0,0 +1 @@
-c 1 -r 22050

View file

@ -0,0 +1 @@
-c 1 -r 22050

View file

@ -0,0 +1 @@
-c 1 -r 22050

View file

@ -9,6 +9,7 @@ cutscenes:
- q_sound SOUNDS_01_PART1_ENTRY_1 CH_GLADOS PORTAL_01_PART1_ENTRY_1
- q_sound SOUNDS_01_PART1_ENTRY_2 CH_GLADOS PORTAL_01_PART1_ENTRY_2
- wait_for_channel CH_GLADOS
- q_sound PORTAL_TASTE_OF_BLOOD CH_MUSIC SubtitleKeyNone
- set_signal room_0_entrance
GET_GUN:
- close_portal 1

View file

@ -3,6 +3,8 @@ cutscenes:
- q_sound SOUNDS_04_PART1_SUCCESS_1 CH_GLADOS PORTAL_04_PART1_SUCCESS_1
INTRO_CUTSCENE:
- 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
DROWN_PLAYER:
- kill_player water
OPEN_PORTAL:

View file

@ -13,6 +13,8 @@ cutscenes:
- rumble 2
- delay 2
- open_portal first_room_portal 0
- wait_for_channel CH_GLADOS
- q_sound PORTAL_SELF_ESTEEM_FUND CH_MUSIC SubtitleKeyNone
OPEN_FIRST_DOOR:
- set_signal room_0_exit
SECOND_SUCCESS:

View file

@ -65,6 +65,8 @@ cutscenes:
- q_sound 07_PART1_GET_DEVICE_COMPONENT_1 CH_GLADOS PORTAL_07_PART1_GET_DEVICE_COMPONENT_1
- q_sound 07_PART1_GET_DEVICE_COMPONENT_2 CH_GLADOS PORTAL_07_PART1_GET_DEVICE_COMPONENT_2
- q_sound 07_PART1_GET_DEVICE_COMPONENT_3 CH_GLADOS PORTAL_07_PART1_GET_DEVICE_COMPONENT_3
- wait_for_channel CH_GLADOS
- q_sound PORTAL_SUBJECT_NAME_HERE CH_MUSIC SubtitleKeyNone
- wait_for_signal trapped
- q_sound 07_PART1_TRAPPED_1 CH_GLADOS PORTAL_07_PART1_TRAPPED_1
- q_sound 07_PART1_TRAPPED_2 CH_GLADOS PORTAL_07_PART1_TRAPPED_2

View file

@ -44,6 +44,7 @@ ALSndId gCutsceneCurrentSound[CH_COUNT];
float gCutsceneChannelPitch[CH_COUNT] = {
[CH_GLADOS] = 0.5f,
[CH_MUSIC] = 0.5f,
};
void cutsceneRunnerCancel(struct CutsceneRunner* runner);
@ -455,20 +456,29 @@ float cutsceneSoundQueueTime(int channel) {
void cutscenesUpdateSounds() {
for (int i = 0; i < CH_COUNT; ++i) {
int soundType = SoundTypeNone;
int subtitleType = SubtitleTypeNone;
if (i == CH_GLADOS){
soundType = SoundTypeAll;
subtitleType = SubtitleTypeCloseCaption;
}else if (i == CH_MUSIC){
soundType = SoundTypeMusic;
}
if (!soundPlayerIsPlaying(gCutsceneCurrentSound[i])) {
if (gCutsceneSoundQueues[i]) {
struct QueuedSound* curr = gCutsceneSoundQueues[i];
gCutsceneCurrentSound[i] = soundPlayerPlay(curr->soundId, curr->volume, gCutsceneChannelPitch[i], NULL, NULL, SoundTypeAll);
hudShowSubtitle(&gScene.hud, curr->subtitleId, SubtitleTypeCloseCaption);
gCutsceneCurrentSound[i] = soundPlayerPlay(curr->soundId, curr->volume, gCutsceneChannelPitch[i], NULL, NULL, soundType);
hudShowSubtitle(&gScene.hud, curr->subtitleId, subtitleType);
gCutsceneSoundQueues[i] = curr->next;
curr->next = gCutsceneNextFreeSound;
gCutsceneNextFreeSound = curr;
} else {
if (gCutsceneCurrentSound[i] != SOUND_ID_NONE) {
soundPlayerPlay(soundsIntercom[1], 1.0f, gCutsceneChannelPitch[i], NULL, NULL, SoundTypeAll);
if (gCutsceneCurrentSound[i] != SOUND_ID_NONE && i == CH_GLADOS) {
soundPlayerPlay(soundsIntercom[1], 1.0f, gCutsceneChannelPitch[i], NULL, NULL, soundType);
hudResolveSubtitle(&gScene.hud);
}
@ -646,7 +656,7 @@ void cutsceneSerializeRead(struct Serializer* serializer) {
}
void cutsceneQueueSoundInChannel(int soundId, float volume, int channel, int subtitleId) {
if (!gCutsceneSoundQueues[channel] && !soundPlayerIsPlaying(gCutsceneCurrentSound[channel])) {
if (!gCutsceneSoundQueues[channel] && !soundPlayerIsPlaying(gCutsceneCurrentSound[channel]) && channel == CH_GLADOS) {
cutsceneQueueSound(soundsIntercom[0], volume, channel, subtitleId);
}
@ -656,7 +666,7 @@ void cutsceneQueueSoundInChannel(int soundId, float volume, int channel, int sub
int cutsceneIsSoundQueued(){
int soundQueued = 0;
for (int i = 0; i < CH_COUNT; ++i) {
if(gCutsceneSoundQueues[i] != NULL || gCutsceneCurrentSound[i] != SOUND_ID_NONE){
if((gCutsceneSoundQueues[i] != NULL || gCutsceneCurrentSound[i] != SOUND_ID_NONE) && (i == CH_GLADOS)){
soundQueued = 1;
break;
}

View file

@ -68,8 +68,9 @@ enum CutscenePromptType {
#define CH_NONE 0xFF
#define CH_GLADOS 0
#define CH_MUSIC 1
#define CH_COUNT 1
#define CH_COUNT 2
struct CutsceneStep {
enum CutsceneStepType type;

View file

@ -100,7 +100,7 @@ void savefileNew() {
gSaveData.controls.subtitleLanguage = 0;
gSaveData.audio.soundVolume = 0xFFFF;
gSaveData.audio.musicVolume = 0xFFFF;
gSaveData.audio.musicVolume = 0x8000;
gSaveData.audio.audioLanguage = 0;
controllerSetDeadzone(gSaveData.controls.deadzone * (1.0f / 0xFFFF) * MAX_DEADZONE);