aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/Audio/SoundEngine.cpp
diff options
context:
space:
mode:
authorLoki Rautio <lokirautio@gmail.com>2026-03-04 03:56:03 -0600
committerLoki Rautio <lokirautio@gmail.com>2026-03-04 03:56:03 -0600
commit42aec6dac53dffa6afe072560a7e1d4986112538 (patch)
tree0836426857391df1b6a83f6368a183f83ec9b104 /Minecraft.Client/Common/Audio/SoundEngine.cpp
parentc9d58eeac7c72f0b3038e084667b4d89a6249fce (diff)
parentef9b6fd500dfabd9463267b0dd9e29577eea8a2b (diff)
Merge branch 'main' into pr/win64-world-saves
# Conflicts: # Minecraft.Client/MinecraftServer.cpp # README.md
Diffstat (limited to 'Minecraft.Client/Common/Audio/SoundEngine.cpp')
-rw-r--r--Minecraft.Client/Common/Audio/SoundEngine.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/Audio/SoundEngine.cpp b/Minecraft.Client/Common/Audio/SoundEngine.cpp
index 1906b1aa..e9affe6b 100644
--- a/Minecraft.Client/Common/Audio/SoundEngine.cpp
+++ b/Minecraft.Client/Common/Audio/SoundEngine.cpp
@@ -490,6 +490,12 @@ void SoundEngine::updateMiles()
case eSoundType_MOB_ENDERDRAGON_HIT:
distanceScaler=100.0f;
break;
+ case eSoundType_FIREWORKS_BLAST:
+ case eSoundType_FIREWORKS_BLAST_FAR:
+ case eSoundType_FIREWORKS_LARGE_BLAST:
+ case eSoundType_FIREWORKS_LARGE_BLAST_FAR:
+ distanceScaler=100.0f;
+ break;
case eSoundType_MOB_GHAST_MOAN:
case eSoundType_MOB_GHAST_SCREAM:
case eSoundType_MOB_GHAST_DEATH:
@@ -624,6 +630,7 @@ static S32 running = AIL_ms_count();
void SoundEngine::tick(shared_ptr<Mob> *players, float a)
{
+ ConsoleSoundEngine::tick();
#ifdef __DISABLE_MILES__
return;
#endif
@@ -1129,6 +1136,11 @@ int SoundEngine::OpenStreamThreadProc( void* lpParameter )
#endif
SoundEngine *soundEngine = (SoundEngine *)lpParameter;
soundEngine->m_hStream = AIL_open_stream(soundEngine->m_hDriver,soundEngine->m_szStreamName,0);
+
+ if(soundEngine->m_hStream==0)
+ {
+ app.DebugPrintf("SoundEngine::OpenStreamThreadProc - Could not open - %s\n",soundEngine->m_szStreamName);
+ }
return 0;
}
@@ -1225,7 +1237,11 @@ void SoundEngine::playMusicUpdate()
char szName[255];
wcstombs(szName,wstrSoundName.c_str(),255);
+#if defined __PS3__ || defined __ORBIS__ || defined __PSVITA__
+ string strFile="TPACK:/Data/" + string(szName) + ".binka";
+#else
string strFile="TPACK:\\Data\\" + string(szName) + ".binka";
+#endif
std::string mountedPath = StorageManager.GetMountedPath(strFile);
strcpy(m_szStreamName,mountedPath.c_str());
#endif
@@ -1318,6 +1334,38 @@ void SoundEngine::playMusicUpdate()
// char *SoundName = (char *)ConvertSoundPathToName(name);
// strcat((char *)szStreamName,SoundName);
+ const bool isCD = (m_musicID >= m_iStream_CD_1);
+ const char* folder = isCD ? "cds/" : "music/";
+
+ FILE* pFile = nullptr;
+ if (fopen_s(&pFile, reinterpret_cast<char*>(m_szStreamName), "rb") == 0 && pFile)
+ {
+ fclose(pFile);
+ }
+ else
+ {
+ const char* extensions[] = { ".wav" }; // only wav works outside of binka files to my knowledge, i've only tested ogg, wav, mp3 and only wav worked out of the bunch
+ size_t count = sizeof(extensions) / sizeof(extensions[0]);
+ bool found = false;
+
+ for (size_t i = 0; i < count; i++)
+ {
+ int n = sprintf_s(reinterpret_cast<char*>(m_szStreamName), 512, "%s%s%s%s", m_szMusicPath, folder, m_szStreamFileA[m_musicID], extensions[i]);
+ if (n < 0) continue;
+
+ if (fopen_s(&pFile, reinterpret_cast<char*>(m_szStreamName), "rb") == 0 && pFile)
+ {
+ fclose(pFile);
+ found = true;
+ break;
+ }
+ }
+
+ if (!found)
+ {
+ return;
+ }
+ }
app.DebugPrintf("Starting streaming - %s\n",m_szStreamName);