From 55f2f5f16cd73ca31a0e662da2a1ebcac2d10eb2 Mon Sep 17 00:00:00 2001 From: arsenicviscera Date: Wed, 11 Mar 2026 03:06:19 -0700 Subject: [PATCH] Fix --- Minecraft.Client/Common/Audio/SoundEngine.cpp | 36 +++++++++++++------ Minecraft.Client/Common/Audio/SoundEngine.h | 12 ++++--- Minecraft.Client/Common/Consoles_App.cpp | 2 +- Minecraft.Client/Common/UI/UIController.cpp | 2 +- Minecraft.Client/DLCTexturePack.cpp | 3 +- 5 files changed, 38 insertions(+), 17 deletions(-) diff --git a/Minecraft.Client/Common/Audio/SoundEngine.cpp b/Minecraft.Client/Common/Audio/SoundEngine.cpp index 24cb7bf45..47ef7df24 100644 --- a/Minecraft.Client/Common/Audio/SoundEngine.cpp +++ b/Minecraft.Client/Common/Audio/SoundEngine.cpp @@ -114,7 +114,9 @@ const char *SoundEngine::m_szStreamFileA[eStream_Max]= "hal4", "nuance1", "nuance2", - + "piano1", + "piano2", + "piano3", #ifndef _XBOX "creative1", "creative2", @@ -127,11 +129,6 @@ const char *SoundEngine::m_szStreamFileA[eStream_Max]= "menu3", "menu4", #endif - - "piano1", - "piano2", - "piano3", - // Nether "nether1", "nether2", @@ -191,7 +188,7 @@ void SoundEngine::init(Options* pOptions) return; } -void SoundEngine::SetStreamingSounds(int iOverworldMin, int iOverWorldMax, int iNetherMin, int iNetherMax, int iEndMin, int iEndMax, int iCD1) +void SoundEngine::SetStreamingSounds(int iOverworldMin, int iOverWorldMax, int iNetherMin, int iNetherMax, int iEndMin, int iEndMax, int iCD1, int iCreativeMin, int iCreativeMax, int iMenuMin, int iMenuMax) { m_iStream_Overworld_Min=iOverworldMin; m_iStream_Overworld_Max=iOverWorldMax; @@ -199,6 +196,10 @@ void SoundEngine::SetStreamingSounds(int iOverworldMin, int iOverWorldMax, int i m_iStream_Nether_Max=iNetherMax; m_iStream_End_Min=iEndMin; m_iStream_End_Max=iEndMax; + m_iStream_Creative_Min=iCreativeMin; + m_iStream_Creative_Max=iCreativeMax; + m_iStream_Menu_Min=iMenuMin; + m_iStream_Menu_Max=iMenuMax; m_iStream_CD_1=iCD1; // array to monitor recently played tracks @@ -407,7 +408,7 @@ SoundEngine::SoundEngine() SetStreamingSounds(eStream_Overworld_Calm1,eStream_Overworld_piano3, eStream_Nether1,eStream_Nether4, eStream_end_dragon,eStream_end_end, - eStream_CD_1); + eStream_CD_1, eStream_Overworld_Creative1, eStream_Overworld_Creative6, eStream_Overworld_Menu1, eStream_Overworld_Menu4); m_musicID=getMusicID(LevelData::DIMENSION_OVERWORLD); @@ -797,7 +798,16 @@ int SoundEngine::getMusicID(int iDomain) if(pMinecraft==nullptr) { // any track from the overworld - return GetRandomishTrack(m_iStream_Overworld_Min,m_iStream_Overworld_Max); + return GetRandomishTrack(m_iStream_Menu_Min,m_iStream_Menu_Max); + } + + int localPlayerIdx = pMinecraft->getLocalPlayerIdx(); + std::shared_ptr localPlayer = pMinecraft->localplayers[localPlayerIdx]; + + if (localPlayer == nullptr) + { + // any track from the overworld + return GetRandomishTrack(m_iStream_Menu_Min,m_iStream_Menu_Max); } if(pMinecraft->skins->isUsingDefaultSkin()) @@ -811,7 +821,13 @@ int SoundEngine::getMusicID(int iDomain) return GetRandomishTrack(m_iStream_Nether_Min,m_iStream_Nether_Max); //return m_iStream_Nether_Min + random->nextInt(m_iStream_Nether_Max-m_iStream_Nether_Min); default: //overworld + GameType* gt = Player::getPlayerGamePrivilege(localPlayer->getAllPlayerGamePrivileges(), Player::ePlayerGamePrivilege_CreativeMode) ? GameType::CREATIVE : GameType::SURVIVAL; //return m_iStream_Overworld_Min + random->nextInt(m_iStream_Overworld_Max-m_iStream_Overworld_Min); + + if (gt == GameType::CREATIVE) + { + return GetRandomishTrack(m_iStream_Creative_Min,m_iStream_Creative_Max); + } return GetRandomishTrack(m_iStream_Overworld_Min,m_iStream_Overworld_Max); } } @@ -826,7 +842,7 @@ int SoundEngine::getMusicID(int iDomain) //return m_iStream_Nether_Min + random->nextInt(m_iStream_Nether_Max-m_iStream_Nether_Min); return GetRandomishTrack(m_iStream_Nether_Min,m_iStream_Nether_Max); default: //overworld - //return m_iStream_Overworld_Min + random->nextInt(m_iStream_Overworld_Max-m_iStream_Overworld_Min); + //Mash-ups don't have special ranges. return GetRandomishTrack(m_iStream_Overworld_Min,m_iStream_Overworld_Max); } } diff --git a/Minecraft.Client/Common/Audio/SoundEngine.h b/Minecraft.Client/Common/Audio/SoundEngine.h index 2134c491c..c70a01dd1 100644 --- a/Minecraft.Client/Common/Audio/SoundEngine.h +++ b/Minecraft.Client/Common/Audio/SoundEngine.h @@ -17,6 +17,10 @@ enum eMUSICFILES eStream_Overworld_hal4, eStream_Overworld_nuance1, eStream_Overworld_nuance2, + //Moved these to separate + eStream_Overworld_piano1, + eStream_Overworld_piano2, + eStream_Overworld_piano3, // <-- make piano3 the last overworld one #ifndef _XBOX // Add the new music tracks eStream_Overworld_Creative1, @@ -30,9 +34,7 @@ enum eMUSICFILES eStream_Overworld_Menu3, eStream_Overworld_Menu4, #endif - eStream_Overworld_piano1, - eStream_Overworld_piano2, - eStream_Overworld_piano3, // <-- make piano3 the last overworld one + // Nether eStream_Nether1, eStream_Nether2, @@ -128,7 +130,7 @@ class SoundEngine : public ConsoleSoundEngine bool isStreamingWavebankReady(); // 4J Added int getMusicID(int iDomain); int getMusicID(const wstring& name); - void SetStreamingSounds(int iOverworldMin, int iOverWorldMax, int iNetherMin, int iNetherMax, int iEndMin, int iEndMax, int iCD1); + void SetStreamingSounds(int iOverworldMin, int iOverWorldMax, int iNetherMin, int iNetherMax, int iEndMin, int iEndMax, int iCD1, int iCreativeMin, int iCreativeMax, int iMenuMin, int iMenuMax); void updateMiniAudio(); void playMusicUpdate(); @@ -179,6 +181,8 @@ class SoundEngine : public ConsoleSoundEngine int m_iStream_Nether_Min,m_iStream_Nether_Max; int m_iStream_End_Min,m_iStream_End_Max; int m_iStream_CD_1; + int m_iStream_Creative_Min,m_iStream_Creative_Max; + int m_iStream_Menu_Min,m_iStream_Menu_Max; bool *m_bHeardTrackA; #ifdef __ORBIS__ diff --git a/Minecraft.Client/Common/Consoles_App.cpp b/Minecraft.Client/Common/Consoles_App.cpp index c3a623d5f..ea1013d29 100644 --- a/Minecraft.Client/Common/Consoles_App.cpp +++ b/Minecraft.Client/Common/Consoles_App.cpp @@ -3757,7 +3757,7 @@ void CMinecraftApp::HandleXuiActions(void) pMinecraft->soundEngine->SetStreamingSounds(eStream_Overworld_Calm1,eStream_Overworld_piano3, eStream_Nether1,eStream_Nether4, eStream_end_dragon,eStream_end_end, - eStream_CD_1); + eStream_CD_1, eStream_Overworld_Creative1, eStream_Overworld_Creative6, eStream_Overworld_Menu1, eStream_Overworld_Menu4); #endif pMinecraft->soundEngine->playStreaming(L"", 0, 0, 0, 1, 1); diff --git a/Minecraft.Client/Common/UI/UIController.cpp b/Minecraft.Client/Common/UI/UIController.cpp index b12ea5e73..5e97b9b24 100644 --- a/Minecraft.Client/Common/UI/UIController.cpp +++ b/Minecraft.Client/Common/UI/UIController.cpp @@ -2067,7 +2067,7 @@ void UIController::NavigateToHomeMenu() pMinecraft->soundEngine->SetStreamingSounds(eStream_Overworld_Calm1,eStream_Overworld_piano3, eStream_Nether1,eStream_Nether4, eStream_end_dragon,eStream_end_end, - eStream_CD_1); + eStream_CD_1, eStream_Overworld_Creative1, eStream_Overworld_Creative6, eStream_Overworld_Menu1, eStream_Overworld_Menu4); pMinecraft->soundEngine->playStreaming(L"", 0, 0, 0, 1, 1); // if(pDLCTexPack->m_pStreamedWaveBank!=nullptr) diff --git a/Minecraft.Client/DLCTexturePack.cpp b/Minecraft.Client/DLCTexturePack.cpp index f1304a9ef..29b38ebf6 100644 --- a/Minecraft.Client/DLCTexturePack.cpp +++ b/Minecraft.Client/DLCTexturePack.cpp @@ -483,8 +483,9 @@ int DLCTexturePack::packMounted(LPVOID pParam,int iPad,DWORD dwErr,DWORD dwLicen iEndStart=iOverworldC+iNetherC; iEndC=dlcFile->GetCountofType(DLCAudioFile::e_AudioType_End); + //Mash-up packs don't have these custom ranges. Minecraft::GetInstance()->soundEngine->SetStreamingSounds(iOverworldStart,iOverworldStart+iOverworldC-1, - iNetherStart,iNetherStart+iNetherC-1,iEndStart,iEndStart+iEndC-1,iEndStart+iEndC); // push the CD start to after + iNetherStart,iNetherStart+iNetherC-1,iEndStart,iEndStart+iEndC-1,iEndStart+iEndC, iOverworldStart,iOverworldStart+iOverworldC-1,iOverworldStart,iOverworldStart+iOverworldC-1); // push the CD start to after } #endif }