Retry login music playback when not playing

This commit is contained in:
Kelsi 2026-02-05 15:47:21 -08:00
parent 205db7d3b6
commit 071c8ead3b
2 changed files with 21 additions and 5 deletions

View file

@ -3,6 +3,7 @@
#include "core/logger.hpp"
#include "platform/process.hpp"
#include <fstream>
#include <filesystem>
namespace wowee {
namespace audio {
@ -75,6 +76,10 @@ void MusicManager::playMusic(const std::string& mpqPath, bool loop) {
void MusicManager::playFilePath(const std::string& filePath, bool loop) {
if (filePath.empty()) return;
if (filePath == currentTrack && playing) return;
if (!std::filesystem::exists(filePath)) {
LOG_WARNING("Music: file not found: ", filePath);
return;
}
stopCurrentProcess();

View file

@ -6,6 +6,7 @@
#include "pipeline/asset_manager.hpp"
#include "audio/music_manager.hpp"
#include <imgui.h>
#include <filesystem>
#include <sstream>
#include <fstream>
#include <cstdlib>
@ -75,19 +76,29 @@ void AuthScreen::render(auth::AuthHandler& authHandler) {
}
}
auto& app = core::Application::getInstance();
auto* renderer = app.getRenderer();
if (!musicInitAttempted) {
musicInitAttempted = true;
auto& app = core::Application::getInstance();
auto* renderer = app.getRenderer();
auto* assets = app.getAssetManager();
if (renderer) {
auto* music = renderer->getMusicManager();
if (music && assets && assets->isInitialized() && !music->isInitialized()) {
music->initialize(assets);
}
if (music && !musicPlaying) {
music->playFilePath("assets/20-taverns.mp3", true);
musicPlaying = true;
}
}
if (renderer) {
auto* music = renderer->getMusicManager();
if (music) {
music->update(ImGui::GetIO().DeltaTime);
if (!music->isPlaying()) {
std::string path = "assets/20-taverns.mp3";
if (!std::filesystem::exists(path)) {
path = (std::filesystem::current_path() / "assets/20-taverns.mp3").string();
}
music->playFilePath(path, true);
musicPlaying = music->isPlaying();
}
}
}