Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ UpdateAudio()

void Terraria.Main.UpdateAudio ( )
inlineprotected

Definition at line 10185 of file Main.cs.

10186 {
10188 {
10189 return;
10190 }
10191 if (!dedServ && !showSplash)
10192 {
10194 }
10195 if (musicVolume == 0f)
10196 {
10197 curMusic = 0;
10198 }
10199 try
10200 {
10201 if (dedServ)
10202 {
10203 return;
10204 }
10205 bool flag = base.IsActive;
10206 if (!flag)
10207 {
10208 audioSystem.PauseAll();
10210 }
10211 else
10212 {
10213 audioSystem.ResumeAll();
10214 }
10215 if (drunkWorld)
10216 {
10217 TOWMusicUnlocked = true;
10218 }
10219 if (gameMenu)
10220 {
10221 swapMusic = false;
10222 }
10223 if (swapMusic)
10224 {
10225 if (drunkWorld && !remixWorld)
10226 {
10228 }
10229 else
10230 {
10232 }
10233 }
10234 else if (!gameMenu && drunkWorld && !remixWorld)
10235 {
10237 }
10238 else
10239 {
10241 }
10242 if (musicBox2 >= 0)
10243 {
10244 SceneMetrics.ActiveMusicBox = musicBox2;
10245 }
10246 if (SceneMetrics.ActiveMusicBox >= 0)
10247 {
10248 if (SceneMetrics.ActiveMusicBox == 0)
10249 {
10250 newMusic = 1;
10251 }
10252 if (SceneMetrics.ActiveMusicBox == 1)
10253 {
10254 newMusic = 2;
10255 }
10256 if (SceneMetrics.ActiveMusicBox == 2)
10257 {
10258 newMusic = 3;
10259 }
10260 if (SceneMetrics.ActiveMusicBox == 4)
10261 {
10262 newMusic = 4;
10263 }
10264 if (SceneMetrics.ActiveMusicBox == 5)
10265 {
10266 newMusic = 5;
10267 }
10268 if (SceneMetrics.ActiveMusicBox == 3)
10269 {
10270 newMusic = 6;
10271 }
10272 if (SceneMetrics.ActiveMusicBox == 6)
10273 {
10274 newMusic = 7;
10275 }
10276 if (SceneMetrics.ActiveMusicBox == 7)
10277 {
10278 newMusic = 8;
10279 }
10280 if (SceneMetrics.ActiveMusicBox == 9)
10281 {
10282 newMusic = 9;
10283 }
10284 if (SceneMetrics.ActiveMusicBox == 8)
10285 {
10286 newMusic = 10;
10287 }
10288 if (SceneMetrics.ActiveMusicBox == 11)
10289 {
10290 newMusic = 11;
10291 }
10292 if (SceneMetrics.ActiveMusicBox == 10)
10293 {
10294 newMusic = 12;
10295 }
10296 if (SceneMetrics.ActiveMusicBox == 12)
10297 {
10298 newMusic = 13;
10299 }
10300 if (SceneMetrics.ActiveMusicBox == 13)
10301 {
10302 newMusic = 14;
10303 }
10304 if (SceneMetrics.ActiveMusicBox == 14)
10305 {
10306 newMusic = 15;
10307 }
10308 if (SceneMetrics.ActiveMusicBox == 15)
10309 {
10310 newMusic = 16;
10311 }
10312 if (SceneMetrics.ActiveMusicBox == 16)
10313 {
10314 newMusic = 17;
10315 }
10316 if (SceneMetrics.ActiveMusicBox == 17)
10317 {
10318 newMusic = 18;
10319 }
10320 if (SceneMetrics.ActiveMusicBox == 18)
10321 {
10322 newMusic = 19;
10323 }
10324 if (SceneMetrics.ActiveMusicBox == 19)
10325 {
10326 newMusic = 20;
10327 }
10328 if (SceneMetrics.ActiveMusicBox == 20)
10329 {
10330 newMusic = 21;
10331 }
10332 if (SceneMetrics.ActiveMusicBox == 21)
10333 {
10334 newMusic = 22;
10335 }
10336 if (SceneMetrics.ActiveMusicBox == 22)
10337 {
10338 newMusic = 23;
10339 }
10340 if (SceneMetrics.ActiveMusicBox == 23)
10341 {
10342 newMusic = 24;
10343 }
10344 if (SceneMetrics.ActiveMusicBox == 24)
10345 {
10346 newMusic = 25;
10347 }
10348 if (SceneMetrics.ActiveMusicBox == 25)
10349 {
10350 newMusic = 26;
10351 }
10352 if (SceneMetrics.ActiveMusicBox == 26)
10353 {
10354 newMusic = 27;
10355 }
10356 if (SceneMetrics.ActiveMusicBox == 27)
10357 {
10358 newMusic = 29;
10359 }
10360 if (SceneMetrics.ActiveMusicBox == 28)
10361 {
10362 newMusic = 30;
10363 }
10364 if (SceneMetrics.ActiveMusicBox == 29)
10365 {
10366 newMusic = 31;
10367 }
10368 if (SceneMetrics.ActiveMusicBox == 30)
10369 {
10370 newMusic = 32;
10371 }
10372 if (SceneMetrics.ActiveMusicBox == 31)
10373 {
10374 newMusic = 33;
10375 }
10376 if (SceneMetrics.ActiveMusicBox == 32)
10377 {
10378 newMusic = 38;
10379 }
10380 if (SceneMetrics.ActiveMusicBox == 33)
10381 {
10382 newMusic = 37;
10383 }
10384 if (SceneMetrics.ActiveMusicBox == 34)
10385 {
10386 newMusic = 35;
10387 }
10388 if (SceneMetrics.ActiveMusicBox == 35)
10389 {
10390 newMusic = 36;
10391 }
10392 if (SceneMetrics.ActiveMusicBox == 36)
10393 {
10394 newMusic = 34;
10395 }
10396 if (SceneMetrics.ActiveMusicBox == 37)
10397 {
10398 newMusic = 39;
10399 }
10400 if (SceneMetrics.ActiveMusicBox == 38)
10401 {
10402 newMusic = 40;
10403 }
10404 if (SceneMetrics.ActiveMusicBox == 39)
10405 {
10406 newMusic = 41;
10407 }
10408 if (SceneMetrics.ActiveMusicBox == 40)
10409 {
10410 newMusic = 44;
10411 }
10412 if (SceneMetrics.ActiveMusicBox == 41)
10413 {
10414 newMusic = 48;
10415 }
10416 if (SceneMetrics.ActiveMusicBox == 42)
10417 {
10418 newMusic = 42;
10419 }
10420 if (SceneMetrics.ActiveMusicBox == 43)
10421 {
10422 newMusic = 43;
10423 }
10424 if (SceneMetrics.ActiveMusicBox == 44)
10425 {
10426 newMusic = 46;
10427 }
10428 if (SceneMetrics.ActiveMusicBox == 45)
10429 {
10430 newMusic = 47;
10431 }
10432 if (SceneMetrics.ActiveMusicBox == 46)
10433 {
10434 newMusic = 49;
10435 }
10436 if (SceneMetrics.ActiveMusicBox == 47)
10437 {
10438 newMusic = 51;
10439 }
10440 if (SceneMetrics.ActiveMusicBox == 48)
10441 {
10442 newMusic = 52;
10443 }
10444 if (SceneMetrics.ActiveMusicBox == 49)
10445 {
10446 newMusic = 53;
10447 }
10448 if (SceneMetrics.ActiveMusicBox == 50)
10449 {
10450 newMusic = 54;
10451 }
10452 if (SceneMetrics.ActiveMusicBox == 51)
10453 {
10454 newMusic = 55;
10455 }
10456 if (SceneMetrics.ActiveMusicBox == 52)
10457 {
10458 newMusic = 56;
10459 }
10460 if (SceneMetrics.ActiveMusicBox == 53)
10461 {
10462 newMusic = 57;
10463 }
10464 if (SceneMetrics.ActiveMusicBox == 54)
10465 {
10466 newMusic = 58;
10467 }
10468 if (SceneMetrics.ActiveMusicBox == 55)
10469 {
10470 newMusic = 59;
10471 }
10472 if (SceneMetrics.ActiveMusicBox == 56)
10473 {
10474 newMusic = 60;
10475 }
10476 if (SceneMetrics.ActiveMusicBox == 57)
10477 {
10478 newMusic = 61;
10479 }
10480 if (SceneMetrics.ActiveMusicBox == 58)
10481 {
10482 newMusic = 62;
10483 }
10484 if (SceneMetrics.ActiveMusicBox == 59)
10485 {
10486 newMusic = 63;
10487 }
10488 if (SceneMetrics.ActiveMusicBox == 60)
10489 {
10490 newMusic = 64;
10491 }
10492 if (SceneMetrics.ActiveMusicBox == 61)
10493 {
10494 newMusic = 65;
10495 }
10496 if (SceneMetrics.ActiveMusicBox == 62)
10497 {
10498 newMusic = 66;
10499 }
10500 if (SceneMetrics.ActiveMusicBox == 63)
10501 {
10502 newMusic = 67;
10503 }
10504 if (SceneMetrics.ActiveMusicBox == 64)
10505 {
10506 newMusic = 68;
10507 }
10508 if (SceneMetrics.ActiveMusicBox == 65)
10509 {
10510 newMusic = 69;
10511 }
10512 if (SceneMetrics.ActiveMusicBox == 66)
10513 {
10514 newMusic = 70;
10515 }
10516 if (SceneMetrics.ActiveMusicBox == 67)
10517 {
10518 newMusic = 71;
10519 }
10520 if (SceneMetrics.ActiveMusicBox == 68)
10521 {
10522 newMusic = 72;
10523 }
10524 if (SceneMetrics.ActiveMusicBox == 69)
10525 {
10526 newMusic = 73;
10527 }
10528 if (SceneMetrics.ActiveMusicBox == 70)
10529 {
10530 newMusic = 74;
10531 }
10532 if (SceneMetrics.ActiveMusicBox == 71)
10533 {
10534 newMusic = 75;
10535 }
10536 if (SceneMetrics.ActiveMusicBox == 72)
10537 {
10538 newMusic = 76;
10539 }
10540 if (SceneMetrics.ActiveMusicBox == 73)
10541 {
10542 newMusic = 77;
10543 }
10544 if (SceneMetrics.ActiveMusicBox == 74)
10545 {
10546 newMusic = 78;
10547 }
10548 if (SceneMetrics.ActiveMusicBox == 75)
10549 {
10550 newMusic = 79;
10551 }
10552 if (SceneMetrics.ActiveMusicBox == 76)
10553 {
10554 newMusic = 80;
10555 }
10556 if (SceneMetrics.ActiveMusicBox == 77)
10557 {
10558 newMusic = 81;
10559 }
10560 if (SceneMetrics.ActiveMusicBox == 78)
10561 {
10562 newMusic = 82;
10563 }
10564 if (SceneMetrics.ActiveMusicBox == 79)
10565 {
10566 newMusic = 83;
10567 }
10568 if (SceneMetrics.ActiveMusicBox == 80)
10569 {
10570 newMusic = 84;
10571 }
10572 if (SceneMetrics.ActiveMusicBox == 81)
10573 {
10574 newMusic = 85;
10575 }
10576 if (SceneMetrics.ActiveMusicBox == 82)
10577 {
10578 newMusic = 86;
10579 }
10580 if (SceneMetrics.ActiveMusicBox == 83)
10581 {
10582 newMusic = 87;
10583 }
10584 if (SceneMetrics.ActiveMusicBox == 84)
10585 {
10586 newMusic = 88;
10587 }
10588 if (SceneMetrics.ActiveMusicBox == 85)
10589 {
10590 newMusic = 89;
10591 }
10592 if (SceneMetrics.ActiveMusicBox == 86)
10593 {
10594 newMusic = 90;
10595 }
10596 if (SceneMetrics.ActiveMusicBox == 87)
10597 {
10598 newMusic = 91;
10599 }
10600 }
10601 if (gameMenu || musicVolume == 0f)
10602 {
10603 musicBox2 = -1;
10604 SceneMetrics.ActiveMusicBox = -1;
10605 }
10606 if (musicVolume == 0f)
10607 {
10608 newMusic = 0;
10609 }
10610 audioSystem.Update();
10611 audioSystem.UpdateMisc();
10613 float num = 1f;
10614 if (NPC.MoonLordCountdown > 0)
10615 {
10616 num = (float)NPC.MoonLordCountdown / (float)NPC.MaxMoonLordCountdown;
10617 num *= num;
10618 if ((float)NPC.MoonLordCountdown > (float)NPC.MaxMoonLordCountdown * 0.2f)
10619 {
10620 num = MathHelper.Lerp(0f, 1f, num);
10621 }
10622 else
10623 {
10624 num = 0f;
10625 curMusic = 0;
10626 }
10627 if (NPC.MoonLordCountdown == 1 && curMusic >= 1 && curMusic < maxMusic)
10628 {
10629 musicFade[curMusic] = 0f;
10630 }
10631 }
10632 bool isMainTrackAudible = musicFade[curMusic] > 0.25f;
10633 for (int i = 1; i < maxMusic; i++)
10634 {
10635 float num2 = musicFade[i] * musicVolume * num;
10636 if (i >= 62 && i <= 88)
10637 {
10638 num2 *= 0.9f;
10639 }
10640 else if (i == 52)
10641 {
10642 num2 *= 1.15f;
10643 if (num2 > 1f)
10644 {
10645 num2 = 1f;
10646 }
10647 }
10648 float num3 = shimmerAlpha;
10649 switch (i)
10650 {
10651 case 28:
10652 {
10653 float num7 = 0.5f;
10654 float num8 = cloudAlpha / 9f * 10f * num7 + (1f - num7);
10655 if (num3 > 0f)
10656 {
10657 num8 *= 1f - num3;
10658 }
10659 if (num8 > 1f)
10660 {
10661 num8 = 1f;
10662 }
10663 if (gameMenu)
10664 {
10665 num8 = 0f;
10666 }
10667 num8 *= (float)Math.Pow(atmo, 4.0);
10668 if (remixWorld)
10669 {
10670 if (cloudAlpha > 0f && (double)(player[myPlayer].position.Y / 16f) > rockLayer && player[myPlayer].position.Y / 16f < (float)(maxTilesY - 350) && !player[myPlayer].ZoneSnow && !player[myPlayer].ZoneDungeon)
10671 {
10672 float trackVolume5 = musicFade[i];
10673 audioSystem.UpdateAmbientCueState(i, flag, ref trackVolume5, ambientVolume * num8);
10675 }
10676 else
10677 {
10678 float trackVolume6 = musicFade[i];
10679 audioSystem.UpdateAmbientCueTowardStopping(i, 0.005f, ref trackVolume6, ambientVolume * num8);
10681 }
10682 }
10683 else if (cloudAlpha > 0f && (double)player[myPlayer].position.Y < worldSurface * 16.0 + (double)(screenHeight / 2) && !player[myPlayer].ZoneSnow)
10684 {
10685 float trackVolume7 = musicFade[i];
10686 audioSystem.UpdateAmbientCueState(i, flag, ref trackVolume7, ambientVolume * num8);
10688 }
10689 else
10690 {
10691 float trackVolume8 = musicFade[i];
10692 audioSystem.UpdateAmbientCueTowardStopping(i, 0.005f, ref trackVolume8, ambientVolume * num8);
10694 }
10695 break;
10696 }
10697 case 45:
10698 {
10699 float num4 = 0.7f;
10700 float num5 = Math.Abs(windSpeedCurrent) * num4 + (1f - num4);
10701 if (num3 > 0f)
10702 {
10703 num5 *= 1f - num3;
10704 }
10705 if (num5 > 1f)
10706 {
10707 num5 = 1f;
10708 }
10709 num5 *= 0.9f;
10710 float num6 = 20f;
10711 num5 *= (float)Math.Pow(atmo, 4.0);
10712 if (remixWorld)
10713 {
10714 if (!gameMenu && Math.Abs(windSpeedCurrent) >= num6 / 50f && (double)(player[myPlayer].position.Y / 16f) > rockLayer && player[myPlayer].position.Y / 16f < (float)(maxTilesY - 350) && !player[myPlayer].ZoneDungeon)
10715 {
10716 float trackVolume = musicFade[i];
10717 audioSystem.UpdateAmbientCueState(i, flag, ref trackVolume, ambientVolume * num5);
10719 }
10720 else
10721 {
10722 float trackVolume2 = musicFade[i];
10723 audioSystem.UpdateAmbientCueTowardStopping(i, 0.005f, ref trackVolume2, ambientVolume * num5);
10725 }
10726 }
10727 else if (!gameMenu && Math.Abs(windSpeedCurrent) >= num6 / 50f && (double)player[myPlayer].position.Y < worldSurface * 16.0 + (double)(screenHeight / 2))
10728 {
10729 float trackVolume3 = musicFade[i];
10730 audioSystem.UpdateAmbientCueState(i, flag, ref trackVolume3, ambientVolume * num5);
10732 }
10733 else
10734 {
10735 float trackVolume4 = musicFade[i];
10736 audioSystem.UpdateAmbientCueTowardStopping(i, 0.005f, ref trackVolume4, ambientVolume * num5);
10738 }
10739 break;
10740 }
10741 default:
10742 {
10743 float tempFade = musicFade[i];
10744 if (i == curMusic)
10745 {
10746 audioSystem.UpdateCommonTrack(flag, i, num2, ref tempFade);
10747 }
10748 else
10749 {
10750 audioSystem.UpdateCommonTrackTowardStopping(i, num2, ref tempFade, isMainTrackAudible);
10751 }
10752 musicFade[i] = tempFade;
10753 break;
10754 }
10755 }
10756 }
10757 audioSystem.UpdateAudioEngine();
10758 if (musicError > 0)
10759 {
10760 musicError--;
10761 }
10762 }
10763 catch
10764 {
10765 musicError++;
10766 if (musicError >= 100)
10767 {
10768 musicError = 0;
10769 musicVolume = 0f;
10770 }
10771 }
10772 }
static float Lerp(float value1, float value2, float amount)
Definition MathHelper.cs:53
static double Pow(double x, double y)
static double Abs(double value)
static void StopAmbientSounds()
static int musicBox2
Definition Main.cs:572
static SceneMetrics SceneMetrics
Definition Main.cs:1344
static readonly int maxMusic
Definition Main.cs:447
static float windSpeedCurrent
Definition Main.cs:1360
static int musicError
Definition Main.cs:435
static int maxTilesY
Definition Main.cs:1116
static float cloudAlpha
Definition Main.cs:1302
static float ambientVolume
Definition Main.cs:1423
static IAudioSystem audioSystem
Definition Main.cs:1415
static double worldSurface
Definition Main.cs:1272
static int myPlayer
Definition Main.cs:1801
static double rockLayer
Definition Main.cs:1274
static float[] musicFade
Definition Main.cs:1419
static bool dedServ
Definition Main.cs:1226
static int screenHeight
Definition Main.cs:1721
static float atmo
Definition Main.cs:2571
static bool swapMusic
Definition Main.cs:1214
static bool showSplash
Definition Main.cs:740
void UpdateAudio_DecideOnTOWMusic()
Definition Main.cs:10774
volatile bool _musicLoaded
Definition Main.cs:213
static bool TOWMusicUnlocked
Definition Main.cs:1212
static int newMusic
Definition Main.cs:1236
void UpdateAudio_DecideOnNewMusic()
Definition Main.cs:11306
static bool drunkWorld
Definition Main.cs:339
static float musicVolume
Definition Main.cs:1421
static bool gameMenu
Definition Main.cs:1926
static float shimmerAlpha
Definition Main.cs:1008
static Player[] player
Definition Main.cs:1803
static bool remixWorld
Definition Main.cs:349
static int curMusic
Definition Main.cs:1230

References Terraria.Main._musicLoaded, System.Math.Abs(), Terraria.SceneMetrics.ActiveMusicBox, Terraria.Main.ambientVolume, Terraria.Main.atmo, Terraria.Main.audioSystem, Terraria.Main.cloudAlpha, Terraria.Main.curMusic, Terraria.Main.dedServ, Terraria.Main.drunkWorld, Terraria.Main.gameMenu, System.Text.RegularExpressions.i, Terraria.Audio.SoundEngine.IsAudioSupported, Microsoft.Xna.Framework.MathHelper.Lerp(), Terraria.NPC.MaxMoonLordCountdown, Terraria.Main.maxMusic, Terraria.Main.maxTilesY, Terraria.NPC.MoonLordCountdown, Terraria.Main.musicBox2, Terraria.Main.musicError, Terraria.Main.musicFade, Terraria.Main.musicVolume, Terraria.Main.myPlayer, Terraria.Main.newMusic, Terraria.Main.player, System.Math.Pow(), Terraria.Main.remixWorld, Terraria.Main.rockLayer, Terraria.Main.screenHeight, Terraria.Main.shimmerAlpha, Terraria.Main.showSplash, Terraria.Audio.SoundEngine.StopAmbientSounds(), Terraria.Main.swapMusic, Terraria.Main.TOWMusicUnlocked, Terraria.Audio.SoundEngine.Update(), Terraria.Main.UpdateAudio_DecideOnNewMusic(), Terraria.Main.UpdateAudio_DecideOnTOWMusic(), Terraria.Main.windSpeedCurrent, and Terraria.Main.worldSurface.

Referenced by Terraria.Main.DoUpdate().