Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
sfx_control.c
Go to the documentation of this file.
1#include "common.h"
2#include "audio.h"
3
4#define MAX_SOUND_INSTANCES 10
5
8
9#define SOUND_LOOP_IDX(soundID) (soundID & 0xFFFF)
10
11// map logical looping soundIDs to raw ones
124};
125
126// all sound IDs for alternating sounds
161
162#define SEQ_SOUND_ENTRY(soundID, sym) [soundID & 0xFFFF] { .sounds = sym, .soundCount = ARRAY_COUNT(sym) }
163
164// map logical alternating soundIDs to lists of raw ones
200};
201
211
216
220 f32 offsetX, offsetY, depth;
222
224
225 if (screenX > 5000 || screenX < -5000 || screenY > 5000 || screenY < -5000) {
226 *volume = -1;
227 *pan = 0;
228 return;
229 }
230
233 *volume = -1;
234 *pan = 0;
235 return;
236 }
237 } else if (flags & SOUND_PARAM_CLIP_OFFSCREEN_X) {
239 *volume = -1;
240 *pan = 0;
241 return;
242 }
243 } else if (flags & SOUND_PARAM_CLIP_OFFSCREEN_Y) {
245 *volume = -1;
246 *pan = 0;
247 return;
248 }
249 }
250
251 offsetX = abs((SCREEN_WIDTH / 2) - screenX) - 145;
252 if (offsetX < 0.0) {
253 offsetX = 0.0f;
254 }
255
256 volAmtOffsetX = update_lerp(EASING_LINEAR, 1.0f, 0.0f, offsetX, 200);
257 if (volAmtOffsetX < 0.0) {
258 volAmtOffsetX = 0.0f;
259 }
260
261 offsetY = abs((SCREEN_HEIGHT / 2) - screenY) - 105;
262 if (offsetY < 0.0) {
263 offsetY = 0.0f;
264 }
265
266 volAmtDeltaY = update_lerp(EASING_LINEAR, 1.0f, 0.0f, offsetY, 130);
267 if (volAmtDeltaY < 0.0) {
268 volAmtDeltaY = 0.0f;
269 }
270
271 depth = screenZ - 5550.0;
272 if (depth < 0.0) {
273 depth = 0.0f;
274 }
275
276 volAmtDepth = update_lerp(EASING_LINEAR, 1.0f, 0.0f, depth, 250);
277 if (volAmtDepth < 0.0) {
278 volAmtDepth = 0.0f;
279 }
280
282 if (volTemp < 15.0) {
283 volTemp = 15.0f;
284 } else if (volTemp > 127.0) {
285 volTemp = 127.0f;
286 }
287 *volume = volTemp;
288
289 panTemp = (((f32) screenX - (SCREEN_WIDTH / 2.0)) / 3.6) + 64.0;
290 if (panTemp < 1.0) {
291 panTemp = 1.0f;
292 } else if (panTemp > 127.0) {
293 panTemp = 127.0f;
294 }
295 *pan = panTemp;
296}
297
302
310
311// name might be incorrect?
315 } else {
317 }
318
319 if (playSounds) {
321 s32 i;
322
323 for (i = 0; i < MAX_SOUND_INSTANCES; i++, sound++) {
324 if (sound->flags & SOUND_INSTANCE_FLAG_ACTIVE) {
325 snd_start_sound_with_shift(sound->soundID, sound->volume, sound->pan, sound->pitchShift);
326 }
327 }
328 } else {
330 }
331}
332
335 u16 volume;
336 u16 pan;
337 s32 i;
338
339 for (i = 0; i < MAX_SOUND_INSTANCES; i++, sound++) {
340 if (sound->flags & SOUND_INSTANCE_FLAG_ACTIVE) {
342 sfx_get_spatialized_sound_params(sound->pos.x, sound->pos.y, sound->pos.z, &volume, &pan, sound->sourceFlags);
343 sound->volume = volume;
344 sound->pan = pan;
345 }
346 snd_adjust_sound_with_shift(sound->soundID, sound->volume, sound->pan, sound->pitchShift);
347 }
348 }
349}
350
353 SfxReverbMode = mode;
354}
355
357 return SfxReverbMode;
358}
359
361 SoundInstance* sound;
362 s32 i;
363
366 } else {
368 }
369
370 sound = gCurrentEnvSounds;
371 for (i = 0; i < MAX_SOUND_INSTANCES; i++, sound++) {
372 if (sound->flags & SOUND_INSTANCE_FLAG_ACTIVE) {
373 snd_stop_sound(sound->soundID);
374 }
375 }
376}
377
380 s32 i;
381
382 for (i = 0; i < MAX_SOUND_INSTANCES; i++, sound++) {
383 if ((sound->flags & SOUND_INSTANCE_FLAG_ACTIVE) && sound->soundID == soundID) {
384 return sound;
385 }
386 }
387
388 return nullptr;
389}
390
391void sfx_play_sound_looping(s32 soundID, u8 volume, u8 pan, s16 pitchShift) {
393 s32 i;
394
395 for (i = 0; i < MAX_SOUND_INSTANCES; i++, sound++) {
396 if (!(sound->flags & SOUND_INSTANCE_FLAG_ACTIVE)) {
397 break;
398 }
399 }
400
401 sound->pan = pan;
402 sound->soundID = soundID;
403 sound->volume = volume;
404 sound->pitchShift = pitchShift;
406
407 snd_start_sound_with_shift(soundID, volume, pan, pitchShift);
408}
409
412 s32 i;
413
414 for (i = 0; i < MAX_SOUND_INSTANCES; i++, sound++) {
415 if (!(sound->flags & SOUND_INSTANCE_FLAG_ACTIVE)) {
416 break;
417 }
418 }
419
420 sound->sourceFlags = flags;
421 sound->pos.x = x;
422 sound->pos.y = y;
423 sound->pos.z = z;
424 sound->soundID = soundID;
426
427 sfx_play_sound_at_position(soundID, flags, x, y, z);
428}
429
430s32 sfx_adjust_env_sound_pos(s32 soundID, s32 sourceFlags, f32 x, f32 y, f32 z) {
432
433 if (sound == nullptr) {
434 return false;
435 }
436
437 sound->sourceFlags = sourceFlags;
438 sound->pos.x = x;
439 sound->pos.y = y;
440 sound->pos.z = z;
441 sound->soundID = soundID;
443 return true;
444}
445
448
449 if (sound != nullptr) {
451 if (!keepPlaying) {
452 snd_stop_sound(sound->soundID);
453 }
454 }
455}
456
457void sfx_play_sound_with_params(s32 soundID, u8 volume, u8 pan, s16 pitchShift) {
459
461 return;
462 }
463
464 if (soundID & SOUND_ID_TYPE_FLAG) {
465 s32 soundIndex = soundID & 0xFF;
466 s32 soundType = (soundID & SOUND_ID_TYPE_MASK) >> 0x1C;
467 switch (soundType) {
469 sfx_play_sound_looping(LoopingSounds[soundIndex], volume, pan, pitchShift);
470 return;
472 soundID = OpenCloseSounds[gCurrentDoorSounds][soundIndex];
473 break;
475 soundID = OpenCloseSounds[gCurrentRoomDoorSounds][soundIndex];
476 break;
478 alternatingSet = &AlternatingSounds[soundIndex];
479 if (alternatingSet->curIndex >= alternatingSet->soundCount) {
481 }
482 soundID = alternatingSet->sounds[alternatingSet->curIndex++];
483 break;
484 }
485 }
486 snd_start_sound_with_shift(soundID, volume, pan, pitchShift);
487}
488
489void sfx_adjust_env_sound_params(s32 soundID, u8 volume, u8 pan, s16 pitchShift) {
490 SoundInstance* sound;
491
492 if (soundID & SOUND_ID_TYPE_FLAG) {
493 sound = sfx_get_env_sound_instance(LoopingSounds[soundID & 0xFFFF]);
494 if (sound != nullptr) {
495 sound->volume = volume;
496 sound->pan = pan;
497 sound->pitchShift = pitchShift;
498 }
499 } else {
500 snd_adjust_sound_with_shift(soundID, volume, pan, pitchShift);
501 }
502}
503
504void sfx_stop_sound(s32 soundID) {
505 s32 sound = soundID;
506
507 if (sound & SOUND_ID_TYPE_FLAG) {
508 sfx_stop_tracking_env_sound_pos(LoopingSounds[sound & 0xFFFF], false);
509 } else {
510 snd_stop_sound(sound);
511 }
512}
513
514void sfx_play_sound(s32 soundID) {
515 sfx_play_sound_with_params(soundID, 0, 0, 0);
516}
517
523
524void sfx_play_sound_at_npc(s32 soundID, s32 flags, s32 npcID) {
525 Npc* npc = get_npc_safe(npcID);
526
527 if (npc != nullptr) {
528 sfx_play_sound_at_position(soundID, flags, npc->pos.x, npc->pos.y, npc->pos.z);
529 }
530}
531
532void sfx_play_sound_at_position(s32 soundID, s32 flags, f32 posX, f32 posY, f32 posZ) {
534 s32 id = LoopingSounds[soundID & 0xFFFF];
535
536 sfx_register_looping_sound_at_position(id, flags, posX, posY, posZ);
537 } else {
538 s16 volume;
539 s16 pan;
540
541 sfx_get_spatialized_sound_params(posX, posY, posZ, &volume, &pan, flags);
542 if (volume >= 0) {
543 sfx_play_sound_with_params(soundID, volume, pan, 0);
544 }
545 }
546}
547
551
553
554 do {
556 } while (0); // required to match
557
558 switch (spaceMode) {
561 break;
564 break;
565 case SOUND_SPACE_FULL:
567 break;
568 }
569
571 *volume = 0;
572 } else if (paramFlags & SOUND_PARAM_QUIET) {
573 if (*volume < 80) {
574 *volume = 80;
575 }
576 } else if (paramFlags & SOUND_PARAM_MORE_QUIET) {
577 if (*volume < 60) {
578 *volume = 60;
579 }
580 } else if (paramFlags & SOUND_PARAM_MOST_QUIET) {
581 if (*volume < 40) {
582 *volume = 40;
583 }
584 }
585
586 if (*pan < 1) {
587 *pan = 1;
588 }
589 if (*pan > AU_PAN_MAX) {
590 *pan = AU_PAN_MAX;
591 }
592}
593
596
598
599 if (screenX > 3000 || screenX < -3000 || screenY > 3000 || screenY < -3000) {
600 *volume = 1;
601 *pan = 0;
602 return;
603 }
604
605 *volume = 127;
606 if (screenX < 0) {
607 *volume = (screenX * 0.3f) + 127.0f;
608 screenX = 0;
609 }
610 if (screenX > SCREEN_WIDTH) {
611 *volume = 127.0f - ((screenX - SCREEN_WIDTH) * 0.3f);
613 }
614
615 if (*volume < 1) {
616 *volume = 1;
617 }
618
620 // 25/75 at screen edge
621 *pan = (screenX * 0.2f) + 32.0f;
622 } else {
623 f32 temp_f20 = ((screenX * 127.0) / SCREEN_WIDTH) - 64.0;
624 *pan = (s32) (temp_f20 * sin_rad(DEG_TO_RAD(fabs(temp_f20) * 90.0 / 64.0))) + 64;
625 }
626}
627
631 f32 depth;
632
634
635 if (screenX > 3000 || screenX < -3000 || screenY > 3000 || screenY < -3000) {
636 *volume = 1;
637 *pan = 0;
638 return;
639 }
640
641 *volume = 127;
642 if (screenX < 0) {
643 *volume = (screenX * 0.3f) + 127.0f;
644 screenX = 0;
645 }
646 if (camera->viewportW < screenX) {
647 *volume = 127.0f - ((screenX - camera->viewportW) * 0.3f);
648 screenX = camera->viewportW;
649 }
650
651 depth = fabsf(5000 - screenZ);
652 if (depth > 1000.0f) {
653 depth = 1000.0f;
654 }
655
656 *volume = *volume * (1500.0f - depth) * 0.001f;
657 if (*volume > 127) {
658 *volume = 127;
659 }
660 if (*volume < 1) {
661 *volume = 1;
662 }
663
664 *pan = ((screenX * 64.0f) / camera->viewportW) + 32.0f;
665}
BSS s32 PopupMenu_SelectedIndex
s16 pitchShift
Definition audio.h:826
s32 sourceFlags
Definition audio.h:823
#define AU_PAN_MAX
Definition audio.h:67
@ SOUND_INSTANCE_FLAG_POSITION_CHANGED
Definition audio.h:370
@ SOUND_INSTANCE_FLAG_ACTIVE
Definition audio.h:369
s32 soundID
Definition audio.h:822
Vec3f pos
Definition audio.h:827
s8 flags
Definition demo_api.c:15
#define sfx_play_sound_at_position
@ SOUND_ID_TYPE_FLAG
Definition enums.h:539
@ SOUND_ID_TYPE_MASK
Definition enums.h:538
@ EASING_LINEAR
Definition enums.h:510
@ CONTEXT_WORLD
Definition enums.h:3562
@ SOUND_RAVEN_FALL_B
Definition enums.h:923
@ SOUND_LRAW_OSR_FOUNTAIN_INTACT
Definition enums.h:611
@ SOUND_BASIC_DOOR_CLOSE
Definition enums.h:853
@ SOUND_SEQ_WINDOW_CLOSE
Definition enums.h:1720
@ SOUND_SNORE_EXHALE_B
Definition enums.h:1136
@ SOUND_LRAW_USE_PEACH_BEAM
Definition enums.h:973
@ SOUND_LOOP_IWA00_FLOW2
Definition enums.h:1596
@ SOUND_LRAW_STAR_SANCTUARY_FAR
Definition enums.h:688
@ SOUND_RAVEN_LEAP_B
Definition enums.h:1029
@ SOUND_LOOP_TIK19_WATER
Definition enums.h:1652
@ SOUND_LOOP_JAN_LARGE_GEYSER
Definition enums.h:1613
@ SOUND_SEQ_STAR_SPIRIT_APPEAR
Definition enums.h:1732
@ SOUND_LRAW_BOWSER_PROPELLER
Definition enums.h:965
@ SOUND_CREAKY_DOOR_CLOSE
Definition enums.h:859
@ SOUND_LOOP_KPA_ARENA_ACTIVE
Definition enums.h:1694
@ SOUND_BASIC_DOOR_OPEN
Definition enums.h:852
@ SOUND_SNORE_INHALE_A
Definition enums.h:1130
@ SOUND_METAL_GATE_CLOSE
Definition enums.h:861
@ SOUND_LOOP_TIK05_WATER
Definition enums.h:1629
@ SOUND_LOOP_JAN_BEACH_WAVES
Definition enums.h:1607
@ SOUND_LOOP_TIK_UNUSED3_FLOW3
Definition enums.h:1646
@ SOUND_LRAW_SBK_RUINS_WHIRLWIND
Definition enums.h:626
@ SOUND_LRAW_OSR_RUMBLING
Definition enums.h:593
@ SOUND_LRAW_BOBOMB_FUSE
Definition enums.h:1030
@ SOUND_SHUFFLE_CARD_B
Definition enums.h:1351
@ SOUND_LOOP_IWA_UNUSED_FLOW3
Definition enums.h:1594
@ SOUND_LOOP_BOWSER_PROPELLER
Definition enums.h:1686
@ SOUND_LRAW_BUBBLE_DRIFT
Definition enums.h:823
@ SOUND_FIRE_BAR_1_B
Definition enums.h:1111
@ SOUND_SNORE_INHALE_B
Definition enums.h:1131
@ SOUND_LOOP_AUDIENCE_MURMUR
Definition enums.h:1603
@ SOUND_SEQ_FIRE_BAR_1
Definition enums.h:1703
@ SOUND_BOO_VANISH_B
Definition enums.h:696
@ SOUND_LRAW_ZIPLINE_RIDE
Definition enums.h:793
@ SOUND_LOOP_SBK_RUINS_RISING
Definition enums.h:1678
@ SOUND_FIRE_BAR_7_A
Definition enums.h:1144
@ SOUND_LOOP_STAR_SANCTUARY_NEAR
Definition enums.h:1684
@ SOUND_LRAW_FLO_WATER_FLOW_2
Definition enums.h:826
@ SOUND_LOOP_FLO_FILL_WATER_POOL
Definition enums.h:1664
@ SOUND_LRAW_TRD_WATER_EXT
Definition enums.h:850
@ SOUND_LOOP_TIK06_FLOW4
Definition enums.h:1634
@ SOUND_LOOP_SHY_GUY_CROWD_2
Definition enums.h:1661
@ SOUND_FIRE_BAR_6_A
Definition enums.h:1143
@ SOUND_SEQ_RAVEN_FALL
Definition enums.h:1722
@ SOUND_LOOP_TIK06_FLOW2
Definition enums.h:1632
@ SOUND_LRAW_FLO_WATER_FLOW_1
Definition enums.h:825
@ SOUND_LRAW_MOVE_LARGE_STATUE
Definition enums.h:674
@ SOUND_LOOP_BOBOMB_FUSE
Definition enums.h:1585
@ SOUND_STAR_SPIRIT_APPEAR_A
Definition enums.h:1373
@ SOUND_LOOP_TIK_UNUSED2_WATER
Definition enums.h:1643
@ SOUND_LOOP_TROMP_ROLL
Definition enums.h:1611
@ SOUND_METAL_DOOR_OPEN
Definition enums.h:854
@ SOUND_WINDOW_CLOSE_A
Definition enums.h:863
@ SOUND_FUZZY_HOP_A
Definition enums.h:1132
@ SOUND_FIRE_BAR_9_B
Definition enums.h:1119
@ SOUND_LRAW_TROMP_ROLL
Definition enums.h:617
@ SOUND_LOOP_WINDMILL_EXT
Definition enums.h:1658
@ SOUND_LRAW_FLO_FILL_WATER_POOL
Definition enums.h:824
@ SOUND_LOOP_KKJ_RUMBLING
Definition enums.h:1670
@ SOUND_STAR_BOUNCE_A
Definition enums.h:978
@ SOUND_SEQ_FIRE_BAR_9
Definition enums.h:1711
@ SOUND_FIRE_BAR_4_A
Definition enums.h:1141
@ SOUND_LOOP_PUFF_PUFF_MACHINE
Definition enums.h:1621
@ SOUND_LRAW_ISK_LOWER_STAIRS
Definition enums.h:621
@ SOUND_SEQ_SHOOTING_STAR_BOUNCE
Definition enums.h:1724
@ SOUND_LOOP_FLO_WATER_FLOW_2
Definition enums.h:1618
@ SOUND_SHOOTING_STAR_FALL_B
Definition enums.h:977
@ SOUND_LRAW_CHEERING
Definition enums.h:1154
@ SOUND_SHOOTING_STAR_FALL_A
Definition enums.h:976
@ SOUND_LRAW_USE_STAR_BEAM
Definition enums.h:972
@ SOUND_CREAKY_WINDOW_OPEN
Definition enums.h:1457
@ SOUND_RAVEN_LEAP_A
Definition enums.h:1028
@ SOUND_SEQ_SHY_GUY_STEP
Definition enums.h:1735
@ SOUND_LOOP_OBK_LOWER_CHAIN
Definition enums.h:1599
@ SOUND_LOOP_TIK09_FLOW4
Definition enums.h:1639
@ SOUND_LRAW_SBK_OASIS_WATER
Definition enums.h:851
@ SOUND_FIRE_BAR_1_A
Definition enums.h:1138
@ SOUND_LRAW_TRD_04_LOWER_STAIRS
Definition enums.h:582
@ SOUND_LRAW_SPINNING_FLOWER
Definition enums.h:1218
@ SOUND_LRAW_OSR_FOUNTAIN_BROKEN
Definition enums.h:612
@ SOUND_LRAW_SHY_GUY_CROWD_2
Definition enums.h:1184
@ SOUND_CREAKY_DOOR_OPEN
Definition enums.h:858
@ SOUND_LRAW_BOMBETTE_FUSE
Definition enums.h:1001
@ SOUND_LOOP_SENTINEL_ALARM
Definition enums.h:1601
@ SOUND_SEQ_FIRE_BAR_6
Definition enums.h:1708
@ SOUND_LRAW_WATER_FLOWING_1
Definition enums.h:992
@ SOUND_SEQ_AI_ALERT
Definition enums.h:1713
@ SOUND_LRAW_FIGHTING
Definition enums.h:1246
@ SOUND_LRAW_WATER_FLOWING_3
Definition enums.h:994
@ SOUND_FUZZY_HOP_B
Definition enums.h:1133
@ SOUND_LOOP_TIK24_WATER
Definition enums.h:1657
@ SOUND_NONE
Definition enums.h:550
@ SOUND_LOOP_SBK_OASIS_WATER
Definition enums.h:1681
@ SOUND_LOOP_TIK02_FLOW3
Definition enums.h:1626
@ SOUND_LOOP_OSR_FOUNTAIN_BROKEN
Definition enums.h:1674
@ SOUND_SEQ_FIRE_BAR_4
Definition enums.h:1706
@ SOUND_SEQ_FIRE_BAR_8
Definition enums.h:1710
@ SOUND_STAR_SPIRIT_APPEAR_B
Definition enums.h:1374
@ SOUND_FIRE_BAR_5_A
Definition enums.h:1142
@ SOUND_STAR_SPIRIT_CAST_B
Definition enums.h:1376
@ SOUND_LOOP_TIK09_FLOW3
Definition enums.h:1640
@ SOUND_SEQ_FIRE_BAR_2
Definition enums.h:1704
@ SOUND_WINDOW_CLOSE_B
Definition enums.h:865
@ SOUND_LRAW_QUIZ_TICKING
Definition enums.h:660
@ SOUND_LRAW_FLO_RELEASE_FOUNTAIN
Definition enums.h:827
@ SOUND_LRAW_CHARGE_METER
Definition enums.h:1148
@ SOUND_LUIGI_STEP_A
Definition enums.h:799
@ SOUND_LARGE_DOOR_OPEN
Definition enums.h:856
@ SOUND_LOOP_IWA01_FLOW1
Definition enums.h:1597
@ SOUND_LRAW_JR_TROOPA_SWIM
Definition enums.h:606
@ SOUND_LOOP_DGB_COLLAPSE
Definition enums.h:1677
@ SOUND_LRAW_WHALE_GEYSER
Definition enums.h:603
@ SOUND_AI_ALERT_B
Definition enums.h:1082
@ SOUND_LOOP_TOYBOX_TRAIN_GEAR
Definition enums.h:1604
@ SOUND_KPA_FLIP_BRIDGE_PANEL
Definition enums.h:1372
@ SOUND_LOOP_FLIGHT
Definition enums.h:1662
@ SOUND_SHUFFLE_CARD_A
Definition enums.h:1350
@ SOUND_LOOP_TRD_WATER_EXT
Definition enums.h:1676
@ SOUND_LOOP_JAN_CONSTRUCTION
Definition enums.h:1614
@ SOUND_LOOP_TIK_UNUSED1_WATER
Definition enums.h:1642
@ SOUND_KPA_BRIDGE_COLLAPSE_B
Definition enums.h:1367
@ SOUND_LRAW_JAN_CONSTRUCTION
Definition enums.h:815
@ SOUND_LRAW_TRD_02_LOWER_STAIRS
Definition enums.h:579
@ SOUND_RAVEN_FALL_A
Definition enums.h:922
@ SOUND_FIRE_BAR_DEAD
Definition enums.h:1147
@ SOUND_FUZZY_HOP_C
Definition enums.h:1134
@ SOUND_LRAW_SHY_GUY_CROWD_1
Definition enums.h:1183
@ SOUND_SHY_GUY_STEP_B
Definition enums.h:1256
@ SOUND_LOOP_STAR_SANCTUARY_FAR
Definition enums.h:1683
@ SOUND_LRAW_JAN_BEACH_WAVES
Definition enums.h:610
@ SOUND_LOOP_TIK_UNUSED3_FLOW2
Definition enums.h:1647
@ SOUND_ISK_FLIP_STAIRS
Definition enums.h:619
@ SOUND_LOOP_ZIPLINE_RIDE
Definition enums.h:1609
@ SOUND_LRAW_STAR_SANCTUARY_INSIDE
Definition enums.h:690
@ SOUND_LOOP_TIK_UNUSED3_FLOW4
Definition enums.h:1645
@ SOUND_LRAW_JAN_LARGE_GEYSER
Definition enums.h:614
@ SOUND_SEQ_RAVEN_LEAP
Definition enums.h:1721
@ SOUND_LRAW_TOYBOX_TRAIN_GEAR
Definition enums.h:651
@ SOUND_LOOP_TIK05_FLOW1
Definition enums.h:1630
@ SOUND_LOOP_CRYSTAL_BALL_GLOW
Definition enums.h:1650
@ SOUND_LRAW_WINDMILL_GEARS
Definition enums.h:643
@ SOUND_SEQ_SNORE_INHALE
Definition enums.h:1714
@ SOUND_SEQ_BULLET_BILL_EXPLODE
Definition enums.h:1726
@ SOUND_LOOP_CHARGE_METER
Definition enums.h:1649
@ SOUND_BULLET_BILL_EXPLODE_B
Definition enums.h:1420
@ SOUND_KPA_EXPLOSION_B
Definition enums.h:951
@ SOUND_LOOP_TIK03_FLOW1
Definition enums.h:1628
@ SOUND_LUIGI_STEP_B
Definition enums.h:800
@ SOUND_SEQ_FIRE_BAR_DEAD
Definition enums.h:1712
@ SOUND_LOOP_OSR_RUMBLING
Definition enums.h:1671
@ SOUND_LOOP_FIGHTING
Definition enums.h:1692
@ SOUND_LOOP_SPINNING_FLOWER
Definition enums.h:1690
@ SOUND_LOOP_NOK_WATER
Definition enums.h:1675
@ SOUND_LRAW_SENTINEL_ALARM
Definition enums.h:1129
@ SOUND_FIRE_BAR_0_B
Definition enums.h:1110
@ SOUND_LOOP_BOMBETTE_FUSE
Definition enums.h:1584
@ SOUND_BULLET_BILL_EXPLODE_A
Definition enums.h:1419
@ SOUND_TRAIN_CHUG_B
Definition enums.h:907
@ SOUND_LOOP_TIK06_FLOW3
Definition enums.h:1633
@ SOUND_LOOP_JR_TROOPA_SWIM
Definition enums.h:1669
@ SOUND_LOOP_TIK01_WATER
Definition enums.h:1623
@ SOUND_SEQ_SNORE_EXHALE
Definition enums.h:1715
@ SOUND_LOOP_TIK02_FLOW2
Definition enums.h:1625
@ SOUND_STAR_BOUNCE_B
Definition enums.h:979
@ SOUND_LOOP_TIK02_WATER
Definition enums.h:1624
@ SOUND_FLIGHT
Definition enums.h:1015
@ SOUND_LRAW_WINDMILL_EXT
Definition enums.h:615
@ SOUND_BOO_APPEAR_B
Definition enums.h:698
@ SOUND_LOOP_TIK03_WATER
Definition enums.h:1627
@ SOUND_SNORE_EXHALE_A
Definition enums.h:1135
@ SOUND_FIRE_BAR_8_B
Definition enums.h:1118
@ SOUND_LOOP_USE_PEACH_BEAM
Definition enums.h:1689
@ SOUND_WINDOW_OPEN_B
Definition enums.h:864
@ SOUND_SEQ_FUZZY_HOP
Definition enums.h:1725
@ SOUND_LOOP_MOVE_LARGE_STATUE
Definition enums.h:1608
@ SOUND_SEQ_FIRE_BAR_5
Definition enums.h:1707
@ SOUND_KPA_EXPLOSION_A
Definition enums.h:950
@ SOUND_LRAW_DGB_COLLAPSE
Definition enums.h:665
@ SOUND_LOOP_TIK19_FLOW4
Definition enums.h:1654
@ SOUND_LRAW_NOK_WATER
Definition enums.h:849
@ SOUND_TRAIN_CHUG_A
Definition enums.h:906
@ SOUND_LOOP_ISK_LOWER_STAIRS
Definition enums.h:1587
@ SOUND_FIRE_BAR_3_B
Definition enums.h:1113
@ SOUND_LOOP_TIK23_WATER
Definition enums.h:1656
@ SOUND_SEQ_SHUFFLE_CARD
Definition enums.h:1731
@ SOUND_LOOP_KPA_CHAIN_DRIVE
Definition enums.h:1665
@ SOUND_LRAW_SBK_RUINS_RISING_DISTANT
Definition enums.h:631
@ SOUND_LOOP_FLO_WATER_FLOW_1
Definition enums.h:1617
@ SOUND_FIRE_BAR_6_B
Definition enums.h:1116
@ SOUND_LOOP_TIK09_WATER
Definition enums.h:1637
@ SOUND_LRAW_TRD_RAISE_STAIRS
Definition enums.h:577
@ SOUND_LOOP_NOTHING_1F
Definition enums.h:1615
@ SOUND_LOOP_TIK08_WATER
Definition enums.h:1635
@ SOUND_FIRE_BAR_2_B
Definition enums.h:1112
@ SOUND_LOOP_WINDMILL_GEARS
Definition enums.h:1659
@ SOUND_SEQ_UNUSED_EXPLODE
Definition enums.h:1734
@ SOUND_LRAW_CRYSTAL_BALL_GLOW
Definition enums.h:917
@ SOUND_LOOP_ISK_FLIP_STAIRS
Definition enums.h:1586
@ SOUND_LOOP_NOTHING_26
Definition enums.h:1622
@ SOUND_LOOP_62
Definition enums.h:1682
@ SOUND_SEQ_FIRE_BAR_3
Definition enums.h:1705
@ SOUND_LRAW_STAR_ORB_RISING
Definition enums.h:677
@ SOUND_LOOP_TIK10_WATER
Definition enums.h:1641
@ SOUND_LOOP_TRD_04_LOWER_STAIRS
Definition enums.h:1589
@ SOUND_SEQ_LUIGI_STEP
Definition enums.h:1727
@ SOUND_LOOP_TIK20_WATER
Definition enums.h:1655
@ SOUND_SNAP_AWAKE_A
Definition enums.h:1078
@ SOUND_LOOP_STAR_SANCTUARY_INSIDE
Definition enums.h:1685
@ SOUND_RAVEN_FALL_C
Definition enums.h:924
@ SOUND_AI_ALERT_A
Definition enums.h:1081
@ SOUND_LRAW_WATER_FLOWING_4
Definition enums.h:995
@ SOUND_FIRE_BAR_9_A
Definition enums.h:1146
@ SOUND_LRAW_TIK_WATER
Definition enums.h:991
@ SOUND_SEQ_STAR_SPIRIT_CAST
Definition enums.h:1733
@ SOUND_LOOP_TIK_UNUSED3_WATER
Definition enums.h:1644
@ SOUND_SEQ_FIRE_BAR_7
Definition enums.h:1709
@ SOUND_LOOP_TIK08_FLOW1
Definition enums.h:1636
@ SOUND_LOOP_SBK_RUINS_WHIRLWIND
Definition enums.h:1679
@ SOUND_LRAW_KPA_ARENA_TURN_ON
Definition enums.h:948
@ SOUND_LOOP_SBK_RUINS_RISING_DISTANT
Definition enums.h:1680
@ SOUND_SEQ_FINALE_EXPLOSION
Definition enums.h:1730
@ SOUND_LOOP_FLO_RELEASE_FOUNTAIN
Definition enums.h:1620
@ SOUND_LOOP_TRD_RAISE_STAIRS
Definition enums.h:1591
@ SOUND_LOOP_KPA_FILL_WATER
Definition enums.h:1666
@ SOUND_LRAW_WATER_FLOWING_2
Definition enums.h:993
@ SOUND_BOO_VANISH_A
Definition enums.h:695
@ SOUND_LRAW_KPA_FILL_WATER
Definition enums.h:946
@ SOUND_SEQ_SHOOTING_STAR_FALL
Definition enums.h:1723
@ SOUND_LOOP_MAC_HARBOR_WATER
Definition enums.h:1672
@ SOUND_SEQ_BOO_VANISH
Definition enums.h:1717
@ SOUND_LOOP_TIK18_WATER
Definition enums.h:1651
@ SOUND_STAR_SPIRIT_CAST_A
Definition enums.h:1375
@ SOUND_LRAW_KPA_ARENA_ACTIVE
Definition enums.h:949
@ SOUND_LOOP_OMO_ROTATING_WHEEL
Definition enums.h:1606
@ SOUND_LOOP_STAR_ORB_RISING
Definition enums.h:1687
@ SOUND_FIRE_BAR_2_A
Definition enums.h:1139
@ SOUND_SEQ_BOO_APPEAR
Definition enums.h:1718
@ SOUND_LOOP_MOVE_STATUE
Definition enums.h:1600
@ SOUND_BOO_APPEAR_A
Definition enums.h:697
@ SOUND_LRAW_PUFF_PUFF_MACHINE
Definition enums.h:662
@ SOUND_SEQ_FINALE_BRIDGE_COLLAPSE
Definition enums.h:1729
@ SOUND_LRAW_OMO_SLOT_MACHINE
Definition enums.h:1210
@ SOUND_LRAW_KKJ_RUMBLING
Definition enums.h:592
@ SOUND_LRAW_JAN_SMALL_GEYSER
Definition enums.h:613
@ SOUND_LOOP_QUIZ_TICKING
Definition enums.h:1602
@ SOUND_METAL_DOOR_CLOSE
Definition enums.h:855
@ SOUND_LRAW_KPA_CHAIN_DRIVE
Definition enums.h:937
@ SOUND_LOOP_TIK19_FLOW3
Definition enums.h:1653
@ SOUND_LOOP_OSR_FOUNTAIN_INTACT
Definition enums.h:1673
@ SOUND_LRAW_MOVE_STATUE
Definition enums.h:673
@ SOUND_LOOP_TRD_02_LOWER_STAIRS
Definition enums.h:1588
@ SOUND_LOOP_IWA10_FLOW1
Definition enums.h:1593
@ SOUND_LOOP_SHY_GUY_CROWD_1
Definition enums.h:1660
@ SOUND_LOOP_TRD_FLOWING_WATER
Definition enums.h:1590
@ SOUND_FIRE_BAR_4_B
Definition enums.h:1114
@ SOUND_LOOP_WHALE_GEYSER
Definition enums.h:1663
@ SOUND_SNAP_AWAKE_B
Definition enums.h:1079
@ SOUND_FIRE_BAR_8_A
Definition enums.h:1145
@ SOUND_FIRE_BAR_5_B
Definition enums.h:1115
@ SOUND_LRAW_STAR_SANCTUARY_NEAR
Definition enums.h:689
@ SOUND_FIRE_BAR_3_A
Definition enums.h:1140
@ SOUND_LOOP_BUBBLE_DRIFT
Definition enums.h:1619
@ SOUND_KPA_BRIDGE_COLLAPSE_A
Definition enums.h:1366
@ SOUND_LRAW_NOTHING_26
Definition enums.h:789
@ SOUND_LOOP_KPA_ARENA_TURN_ON
Definition enums.h:1693
@ SOUND_SHY_GUY_STEP_A
Definition enums.h:1255
@ SOUND_LOOP_KPA_FLIP_BRIDGE_PANEL
Definition enums.h:1668
@ SOUND_WINDOW_OPEN_A
Definition enums.h:862
@ SOUND_LOOP_JAN_SMALL_GEYSER
Definition enums.h:1612
@ SOUND_LRAW_RUMBLE
Definition enums.h:1260
@ SOUND_FIRE_BAR_7_B
Definition enums.h:1117
@ SOUND_LARGE_DOOR_CLOSE
Definition enums.h:857
@ SOUND_LOOP_KPA_DRAIN_WATER
Definition enums.h:1667
@ SOUND_LRAW_SBK_RUINS_RISING
Definition enums.h:628
@ SOUND_SEQ_TRAIN_CHUG
Definition enums.h:1728
@ SOUND_SEQ_FIRE_BAR_0
Definition enums.h:1702
@ SOUND_LOOP_SAM_STAIRS_RISE
Definition enums.h:1648
@ SOUND_METAL_GATE_OPEN
Definition enums.h:860
@ SOUND_LOOP_NOTHING_20
Definition enums.h:1616
@ SOUND_LOOP_IWA00_FLOW3
Definition enums.h:1595
@ SOUND_LOOP_TIK06_WATER
Definition enums.h:1631
@ SOUND_SEQ_WINDOW_OPEN
Definition enums.h:1719
@ SOUND_SEQ_SNAP_AWAKE
Definition enums.h:1716
@ SOUND_LOOP_TIK09_FLOW2
Definition enums.h:1638
@ SOUND_LOOP_RUMBLE
Definition enums.h:1691
@ SOUND_LRAW_SAM_STAIRS_RISE
Definition enums.h:1231
@ SOUND_LOOP_CHEERING
Definition enums.h:1592
@ SOUND_CREAKY_WINDOW_CLOSE
Definition enums.h:1458
@ SOUND_LOOP_ZIPLINE_RETURN
Definition enums.h:1610
@ SOUND_LRAW_ZIPLINE_RETURN
Definition enums.h:811
@ SOUND_LRAW_OMO_ROTATING_WHEEL
Definition enums.h:675
@ SOUND_LRAW_AUDIENCE_MURMUR
Definition enums.h:655
@ SOUND_LRAW_MAC_HARBOR_WATER
Definition enums.h:598
@ SOUND_FIRE_BAR_0_A
Definition enums.h:1137
@ SOUND_LRAW_KPA_DRAIN_WATER
Definition enums.h:947
@ SOUND_LRAW_OBK_LOWER_CHAIN
Definition enums.h:670
@ SOUND_LOOP_USE_STAR_BEAM
Definition enums.h:1688
@ SOUND_LOOP_OMO_SLOT_MACHINE
Definition enums.h:1605
@ SOUND_LOOP_IWA01_FLOW2
Definition enums.h:1598
@ SOUND_LRAW_TRD_FLOWING_WATER
Definition enums.h:576
@ SOUND_TYPE_ROOM_DOOR
Definition enums.h:545
@ SOUND_TYPE_LOOPING
Definition enums.h:543
@ SOUND_TYPE_EXIT_DOOR
Definition enums.h:544
@ SOUND_TYPE_ALTERNATING
Definition enums.h:546
@ SOUND_SPACE_PARAMS_MASK
Definition enums.h:1743
@ SOUND_PARAM_CLIP_OFFSCREEN_X
Definition enums.h:1746
@ SOUND_SPACE_MODE_MASK
Definition enums.h:1739
@ SOUND_SPACE_DEFAULT
Definition enums.h:1740
@ SOUND_SPACE_FULL
Definition enums.h:1742
@ SOUND_PARAM_CLIP_OFFSCREEN_ANY
Definition enums.h:1745
@ SOUND_PARAM_QUIET
Definition enums.h:1750
@ SOUND_SPACE_WITH_DEPTH
Definition enums.h:1741
@ SOUND_PARAM_MUTE
Definition enums.h:1744
@ SOUND_PARAM_CLIP_OFFSCREEN_Y
Definition enums.h:1747
@ SOUND_PARAM_MORE_QUIET
Definition enums.h:1749
@ SOUND_PARAM_MOST_QUIET
Definition enums.h:1748
@ DOOR_SOUNDS_BASIC
Definition enums.h:2393
f32 update_lerp(s32 easing, f32 start, f32 end, s32 elapsed, s32 duration)
Definition 43F0.c:735
f32 fabsf(f32 f)
void get_screen_coords(s32 camID, f32 x, f32 y, f32 z, s32 *screenX, s32 *screenY, s32 *screenZ)
Definition cam_main.c:409
f64 fabs(f64 f)
f32 sin_rad(f32 x)
Definition 43F0.c:713
Npc * get_npc_safe(s32 npcID)
Definition npc.c:1007
void snd_stop_sound(s32 soundID)
void snd_start_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift)
void snd_adjust_sound_with_shift(s32 soundID, u8 volume, u8 pan, s16 pitchShift)
void snd_set_sfx_reverb_type(s32 arg0)
#define SCREEN_WIDTH
Definition macros.h:108
#define BSS
Definition macros.h:6
#define SCREEN_HEIGHT
Definition macros.h:109
#define DEG_TO_RAD(deg)
Definition macros.h:145
void sfx_clear_env_sounds(s16 playSounds)
s32 ShyGuyStepSounds[]
void sfx_play_sound_at_npc(s32 soundID, s32 flags, s32 npcID)
s32 TrainChugSounds[]
void sfx_set_reverb_mode(s32 mode)
s32 OpenCloseSounds[][2]
void sfx_update_env_sound_params(void)
void sfx_stop_env_sounds(void)
s32 BooAppearSounds[]
void sfx_register_looping_sound_at_position(s32 soundID, s32 flags, f32 x, f32 y, f32 z)
#define SEQ_SOUND_ENTRY(soundID, sym)
s32 BulletBillExplodeSounds[]
void sfx_get_spatialized_sound_params(f32 x, f32 y, f32 z, s16 *volume, s16 *pan, s32 flags)
s32 SnoreExhaleSounds[]
s32 WindowOpenSounds[]
void sfx_stop_sound(s32 soundID)
s32 FireBar7Sounds[]
s32 sfx_get_reverb_mode(void)
void sfx_adjust_env_sound_params(s32 soundID, u8 volume, u8 pan, s16 pitchShift)
void sfx_reset_door_sounds(void)
void sfx_play_sound_with_params(s32 soundID, u8 volume, u8 pan, s16 pitchShift)
s32 LuigiStepSounds[]
s32 FireBar8Sounds[]
s32 ShootingStarBounceSounds[]
s32 SnoreInhaleSounds[]
SoundInstance * sfx_get_env_sound_instance(s32 soundID)
void sfx_play_sound(s32 soundID)
s32 sfx_adjust_env_sound_pos(s32 soundID, s32 sourceFlags, f32 x, f32 y, f32 z)
void sfx_compute_spatialized_sound_params_with_depth(f32 x, f32 y, f32 z, s16 *volume, s16 *pan)
s32 FinaleBridgeCollapseSounds[]
BSS SoundInstance wEnvSounds[10]
#define SOUND_LOOP_IDX(soundID)
Definition sfx_control.c:9
s32 BooVanishSounds[]
AlternatingSoundSet AlternatingSounds[]
s32 FireBar1Sounds[]
s32 FireBar9Sounds[]
s32 WindowCloseSounds[]
s32 AlertSounds[]
void sfx_compute_spatialized_sound_params_ignore_depth(f32 x, f32 y, f32 z, s16 *volume, s16 *pan)
void sfx_stop_tracking_env_sound_pos(s32 soundID, s32 keepPlaying)
void sfx_compute_spatialized_sound_params_full(f32 x, f32 y, f32 z, s16 *volume, s16 *pan, s32 flags)
void sfx_play_sound_at_player(s32 soundID, s32 flags)
s32 FireBar2Sounds[]
#define MAX_SOUND_INSTANCES
Definition sfx_control.c:4
BSS SoundInstance bEnvSounds[10]
s32 FireBar3Sounds[]
s32 StarSpiritAppearSounds[]
s32 FireBar4Sounds[]
s32 FireBar6Sounds[]
void sfx_clear_sounds(void)
s32 LoopingSounds[]
Definition sfx_control.c:12
u16 gCurrentDoorSounds
Definition sfx_control.c:6
s32 UnusedExplodeSounds[]
s32 SnapAwakeSounds[]
void sfx_play_sound_looping(s32 soundID, u8 volume, u8 pan, s16 pitchShift)
s32 FinaleExplosionSounds[]
s32 FireBarDeadSounds[]
s32 FireBar0Sounds[]
u16 gCurrentRoomDoorSounds
Definition sfx_control.c:7
BSS SoundInstance * gCurrentEnvSounds
BSS s32 SfxReverbMode
s32 StarSpiritCastSounds[]
s32 RavenFallSounds[]
s32 FireBar5Sounds[]
s32 FuzzyHopSounds[]
s32 CardShuffleSounds[]
s32 RavenLeapSounds[]
s32 ShootingStarFallSounds[]
Vec3f pos
GameStatus * gGameStatusPtr
Definition main_loop.c:31
Camera gCameras[4]
Definition cam_main.c:16
PlayerStatus gPlayerStatus
Definition 77480.c:38
s32 gCurrentCameraID
Definition cam_math.c:5