Add ambient sound system and eliminate log spam

- Implement AmbientSoundManager with tavern/outdoor ambience
- Fix audio buffer limit (5s → 60s) for long ambient loops
- Set log level to INFO to eliminate DEBUG spam (130MB → 3.2MB logs)
- Remove excessive terrain/model/network logging
- Fix ambient sound timer sharing and pitch parameter bugs
This commit is contained in:
Kelsi 2026-02-09 14:50:14 -08:00
parent 4a7e599764
commit dab23f1895
24 changed files with 701 additions and 138 deletions

View file

@ -65,8 +65,6 @@ ADTTerrain ADTLoader::load(const std::vector<uint8_t>& adtData) {
// Log first few chunks for debugging
char magic[5] = {0};
std::memcpy(magic, &header.magic, 4);
LOG_INFO("Chunk #", totalChunks, ": magic=", magic,
" (0x", std::hex, header.magic, std::dec, "), size=", chunkSize);
}
// Parse based on chunk type
@ -101,10 +99,6 @@ ADTTerrain ADTLoader::load(const std::vector<uint8_t>& adtData) {
}
terrain.loaded = true;
LOG_INFO("ADT loaded: ", chunkIndex, " map chunks, ",
terrain.textures.size(), " textures, ",
terrain.doodadNames.size(), " doodads, ",
terrain.wmoNames.size(), " WMOs");
return terrain;
}
@ -211,7 +205,6 @@ void ADTLoader::parseMWMO(const uint8_t* data, size_t size, ADTTerrain& terrain)
LOG_DEBUG("Loaded ", terrain.wmoNames.size(), " WMO names");
for (size_t i = 0; i < terrain.wmoNames.size(); i++) {
LOG_INFO(" WMO[", i, "]: ", terrain.wmoNames[i]);
}
}

View file

@ -823,11 +823,6 @@ bool M2Loader::loadSkin(const std::vector<uint8_t>& skinData, M2Model& model) {
core::Logger::getInstance().debug(" Submeshes: ", submeshes.size());
for (size_t i = 0; i < submeshes.size(); i++) {
const auto& sm = submeshes[i];
core::Logger::getInstance().info(" SkinSection[", i, "]: id=", sm.id,
" level=", sm.level,
" vtxStart=", sm.vertexStart, " vtxCount=", sm.vertexCount,
" idxStart=", sm.indexStart, " idxCount=", sm.indexCount,
" boneCount=", sm.boneCount, " boneStart=", sm.boneStart);
}
}

View file

@ -13,7 +13,6 @@ TerrainMesh TerrainMeshGenerator::generate(const ADTTerrain& terrain) {
return mesh;
}
LOG_INFO("Generating terrain mesh for ADT...");
// Copy texture list
mesh.textures = terrain.textures;
@ -40,7 +39,6 @@ TerrainMesh TerrainMeshGenerator::generate(const ADTTerrain& terrain) {
}
mesh.validChunkCount = validCount;
LOG_INFO("Generated ", validCount, " terrain chunk meshes");
return mesh;
}

View file

@ -75,7 +75,7 @@ WMOModel WMOLoader::load(const std::vector<uint8_t>& wmoData) {
return model;
}
core::Logger::getInstance().info("Loading WMO model...");
// WMO loader logs disabled
uint32_t offset = 0;
@ -95,7 +95,7 @@ WMOModel WMOLoader::load(const std::vector<uint8_t>& wmoData) {
switch (chunkId) {
case MVER: {
model.version = read<uint32_t>(wmoData, offset);
core::Logger::getInstance().info("WMO version: ", model.version);
// WMO version log disabled
break;
}
@ -147,11 +147,11 @@ WMOModel WMOLoader::load(const std::vector<uint8_t>& wmoData) {
// Store mapping from byte offset to texture index
model.textureOffsetToIndex[relativeOffset] = texIndex;
model.textures.push_back(texName);
core::Logger::getInstance().info(" MOTX texture[", texIndex, "] at offset ", relativeOffset, ": ", texName);
// MOTX texture log disabled
texOffset += texName.length() + 1;
texIndex++;
}
core::Logger::getInstance().info("WMO textures: ", model.textures.size());
// WMO textures log disabled
break;
}
@ -200,7 +200,7 @@ WMOModel WMOLoader::load(const std::vector<uint8_t>& wmoData) {
model.groupNames.push_back(name);
nameOffset += name.length() + 1;
}
core::Logger::getInstance().info("WMO group names: ", model.groupNames.size());
// WMO group names log disabled
break;
}
@ -382,7 +382,7 @@ WMOModel WMOLoader::load(const std::vector<uint8_t>& wmoData) {
// Initialize groups array
model.groups.resize(model.nGroups);
core::Logger::getInstance().info("WMO model loaded successfully");
// WMO loaded log disabled
return model;
}