diff --git a/src/core/entity_spawn_callback_handler.cpp b/src/core/entity_spawn_callback_handler.cpp index f3f07157..4ed7d7aa 100644 --- a/src/core/entity_spawn_callback_handler.cpp +++ b/src/core/entity_spawn_callback_handler.cpp @@ -41,7 +41,7 @@ void EntitySpawnCallbackHandler::setupCallbacks() { uint32_t appearanceBytes, uint8_t facialFeatures, float x, float y, float z, float orientation) { - LOG_WARNING("playerSpawnCallback: guid=0x", std::hex, guid, std::dec, + LOG_DEBUG("playerSpawnCallback: guid=0x", std::hex, guid, std::dec, " race=", static_cast(raceId), " gender=", static_cast(genderId), " pos=(", x, ",", y, ",", z, ")"); // Skip local player — already spawned as the main character diff --git a/src/core/entity_spawner.cpp b/src/core/entity_spawner.cpp index 8dd5f3bd..3baa1ae6 100644 --- a/src/core/entity_spawner.cpp +++ b/src/core/entity_spawner.cpp @@ -544,7 +544,7 @@ void EntitySpawner::buildCreatureDisplayLookups() { if (!extra.bakeName.empty()) withBakeName++; humanoidExtraMap_[cdie->getUInt32(i, cdieL ? (*cdieL)["ID"] : 0)] = extra; } - LOG_WARNING("Loaded ", humanoidExtraMap_.size(), " humanoid display extra entries (", + LOG_DEBUG("Loaded ", humanoidExtraMap_.size(), " humanoid display extra entries (", withBakeName, " with baked textures, ", numEquipSlots, " equip slots, ", dbcFieldCount, " DBC fields, bakeField=", bakeField, ")"); } diff --git a/src/core/entity_spawner_player.cpp b/src/core/entity_spawner_player.cpp index 85fa6820..92240fd9 100644 --- a/src/core/entity_spawner_player.cpp +++ b/src/core/entity_spawner_player.cpp @@ -340,14 +340,14 @@ void EntitySpawner::setOnlinePlayerEquipment(uint64_t guid, if (st.instanceId == 0 || st.modelId == 0) return; if (st.bodySkinPath.empty()) { - LOG_WARNING("setOnlinePlayerEquipment: bodySkinPath empty for guid=0x", std::hex, guid, std::dec, + LOG_DEBUG("setOnlinePlayerEquipment: bodySkinPath empty for guid=0x", std::hex, guid, std::dec, " instanceId=", st.instanceId, " — skipping equipment"); return; } int nonZeroDisplay = 0; for (uint32_t d : displayInfoIds) if (d != 0) nonZeroDisplay++; - LOG_WARNING("setOnlinePlayerEquipment: guid=0x", std::hex, guid, std::dec, + LOG_DEBUG("setOnlinePlayerEquipment: guid=0x", std::hex, guid, std::dec, " instanceId=", st.instanceId, " nonZeroDisplayIds=", nonZeroDisplay, " head=", displayInfoIds[0], " chest=", displayInfoIds[4], " legs=", displayInfoIds[6], " mainhand=", displayInfoIds[15]); @@ -1099,7 +1099,7 @@ void EntitySpawner::spawnOnlineGameObject(uint64_t guid, uint32_t entry, uint32_ // (e.g. elevators/lifts). If the server marks it as a transport, always // notify so TransportManager can animate/carry passengers. bool isTG = gameHandler_ && gameHandler_->isTransportGuid(guid); - LOG_WARNING("WMO GO spawned: guid=0x", std::hex, guid, std::dec, + LOG_DEBUG("WMO GO spawned: guid=0x", std::hex, guid, std::dec, " entry=", entry, " displayId=", displayId, " isTransport=", isTG, " pos=(", x, ", ", y, ", ", z, ")"); @@ -1215,7 +1215,7 @@ void EntitySpawner::spawnOnlineGameObject(uint64_t guid, uint32_t entry, uint32_ // Notify transport system for M2 transports (e.g. Deeprun Tram cars) if (gameHandler_ && gameHandler_->isTransportGuid(guid)) { - LOG_WARNING("M2 transport spawned: guid=0x", std::hex, guid, std::dec, + LOG_DEBUG("M2 transport spawned: guid=0x", std::hex, guid, std::dec, " entry=", entry, " displayId=", displayId, " instanceId=", instanceId); gameHandler_->notifyTransportSpawned(guid, entry, displayId, x, y, z, orientation); diff --git a/src/core/entity_spawner_processing.cpp b/src/core/entity_spawner_processing.cpp index fc8f4394..828bf3ce 100644 --- a/src/core/entity_spawner_processing.cpp +++ b/src/core/entity_spawner_processing.cpp @@ -722,7 +722,7 @@ void EntitySpawner::processDeferredEquipmentQueue() { setOnlinePlayerEquipment(guid, equipData.first, equipData.second); return; } - LOG_WARNING("Equipment async pre-decode for guid=0x", std::hex, guid, std::dec, + LOG_DEBUG("Equipment async pre-decode for guid=0x", std::hex, guid, std::dec, " textures=", texturePaths.size()); // Launch background BLP pre-decode @@ -991,7 +991,7 @@ void EntitySpawner::processPendingTransportRegistrations() { } const uint32_t wmoInstanceId = goIt->second.instanceId; - LOG_WARNING("Registering server transport: GUID=0x", std::hex, pending.guid, std::dec, + LOG_DEBUG("Registering server transport: GUID=0x", std::hex, pending.guid, std::dec, " entry=", pending.entry, " displayId=", pending.displayId, " wmoInstance=", wmoInstanceId, " pos=(", pending.x, ", ", pending.y, ", ", pending.z, ")"); @@ -1015,17 +1015,17 @@ void EntitySpawner::processPendingTransportRegistrations() { hasUsablePath = transportManager->hasUsableMovingPathForEntry(pending.entry, 25.0f); } - LOG_WARNING("Transport path check: entry=", pending.entry, " hasUsablePath=", hasUsablePath, + LOG_DEBUG("Transport path check: entry=", pending.entry, " hasUsablePath=", hasUsablePath, " preferServerData=", preferServerData, " shipOrZepDisplay=", shipOrZeppelinDisplay); if (preferServerData) { if (!hasUsablePath) { std::vector path = { canonicalSpawnPos }; transportManager->loadPathFromNodes(pathId, path, false, 0.0f); - LOG_WARNING("Server-first strict registration: stationary fallback for GUID 0x", + LOG_DEBUG("Server-first strict registration: stationary fallback for GUID 0x", std::hex, pending.guid, std::dec, " entry=", pending.entry); } else { - LOG_WARNING("Server-first transport registration: using entry DBC path for entry ", pending.entry); + LOG_DEBUG("Server-first transport registration: using entry DBC path for entry ", pending.entry); } } else if (!hasUsablePath) { bool allowZOnly = (pending.displayId == 455 || pending.displayId == 462); @@ -1087,7 +1087,7 @@ void EntitySpawner::processPendingTransportRegistrations() { } if (auto* tr = transportManager->getTransport(pending.guid); tr) { - LOG_WARNING("Transport registered: guid=0x", std::hex, pending.guid, std::dec, + LOG_DEBUG("Transport registered: guid=0x", std::hex, pending.guid, std::dec, " entry=", pending.entry, " displayId=", pending.displayId, " pathId=", tr->pathId, " mode=", (tr->useClientAnimation ? "client" : "server"), diff --git a/src/core/world_entry_callback_handler.cpp b/src/core/world_entry_callback_handler.cpp index e8e9c678..2ba4678f 100644 --- a/src/core/world_entry_callback_handler.cpp +++ b/src/core/world_entry_callback_handler.cpp @@ -228,7 +228,7 @@ void WorldEntryCallbackHandler::setupCallbacks() { // drives `gameHandler->update()` during warmup. Queue the load here so // it runs after the current packet handler returns instead of recursing // from `SMSG_LOGIN_VERIFY_WORLD` / `SMSG_NEW_WORLD`. - LOG_WARNING("Queued world entry: map ", mapId, " pos=(", x, ", ", y, ", ", z, ")"); + LOG_DEBUG("Queued world entry: map ", mapId, " pos=(", x, ", ", y, ", ", z, ")"); if (worldLoader_) worldLoader_->setPendingEntry(mapId, x, y, z); }); diff --git a/src/core/world_loader.cpp b/src/core/world_loader.cpp index 2b624ed2..f489bf41 100644 --- a/src/core/world_loader.cpp +++ b/src/core/world_loader.cpp @@ -174,7 +174,7 @@ void WorldLoader::processPendingEntry() { if (!pendingWorldEntry_ || loadingWorld_) return; auto entry = *pendingWorldEntry_; pendingWorldEntry_.reset(); - LOG_WARNING("Processing deferred world entry: map ", entry.mapId); + LOG_DEBUG("Processing deferred world entry: map ", entry.mapId); if (app_.worldEntryCallbacks_) { app_.worldEntryCallbacks_->setWorldEntryMovementGraceTimer(2.0f); app_.worldEntryCallbacks_->setTaxiLandingClampTimer(0.0f); @@ -250,7 +250,7 @@ void WorldLoader::loadOnlineWorldTerrain(uint32_t mapId, float x, float y, float // --- Clean up previous map's state on map change --- // (Same cleanup as logout, but preserves player identity and renderer objects.) - LOG_WARNING("loadOnlineWorldTerrain: mapId=", mapId, " loadedMapId_=", loadedMapId_); + LOG_DEBUG("loadOnlineWorldTerrain: mapId=", mapId, " loadedMapId_=", loadedMapId_); bool hasRendererData = renderer_ && (renderer_->getWMORenderer() || renderer_->getM2Renderer()); if (loadedMapId_ != 0xFFFFFFFF || hasRendererData) { LOG_WARNING("Map change: cleaning up old map ", loadedMapId_, " before loading map ", mapId); @@ -448,12 +448,12 @@ void WorldLoader::loadOnlineWorldTerrain(uint32_t mapId, float x, float y, float pipeline::WDTInfo wdtInfo; { std::string wdtPath = "World\\Maps\\" + mapName + "\\" + mapName + ".wdt"; - LOG_WARNING("Reading WDT: ", wdtPath); + LOG_DEBUG("Reading WDT: ", wdtPath); std::vector wdtData = assetManager_->readFile(wdtPath); if (!wdtData.empty()) { wdtInfo = pipeline::parseWDT(wdtData); isWMOOnlyMap = wdtInfo.isWMOOnly() && !wdtInfo.rootWMOPath.empty(); - LOG_WARNING("WDT result: isWMOOnly=", isWMOOnlyMap, " rootWMO='", wdtInfo.rootWMOPath, "'"); + LOG_DEBUG("WDT result: isWMOOnly=", isWMOOnlyMap, " rootWMO='", wdtInfo.rootWMOPath, "'"); } else { LOG_WARNING("No WDT file found at ", wdtPath); } @@ -954,7 +954,7 @@ void WorldLoader::loadOnlineWorldTerrain(uint32_t mapId, float x, float y, float // If a new world entry was deferred during packet processing, // stop warming up this map — we'll load the new one after cleanup. if (pendingWorldEntry_) { - LOG_WARNING("loadOnlineWorldTerrain(map ", mapId, + LOG_DEBUG("loadOnlineWorldTerrain(map ", mapId, ") — deferred world entry pending, stopping warmup"); break; } @@ -1021,7 +1021,7 @@ void WorldLoader::loadOnlineWorldTerrain(uint32_t mapId, float x, float y, float if (auto* tm = renderer_->getTerrainManager()) { if (tm->getLoadedTileCount() >= 4) { groundReady = true; - LOG_WARNING("Warmup: using tile-count fallback (", tm->getLoadedTileCount(), " tiles) after ", elapsed, "s"); + LOG_DEBUG("Warmup: using tile-count fallback (", tm->getLoadedTileCount(), " tiles) after ", elapsed, "s"); } } } @@ -1078,7 +1078,7 @@ void WorldLoader::loadOnlineWorldTerrain(uint32_t mapId, float x, float y, float if (pendingWorldEntry_) { auto entry = *pendingWorldEntry_; pendingWorldEntry_.reset(); - LOG_WARNING("Processing deferred world entry: map ", entry.mapId); + LOG_DEBUG("Processing deferred world entry: map ", entry.mapId); if (app_.worldEntryCallbacks_) { app_.worldEntryCallbacks_->setWorldEntryMovementGraceTimer(2.0f); app_.worldEntryCallbacks_->setTaxiLandingClampTimer(0.0f); diff --git a/src/game/chat_handler.cpp b/src/game/chat_handler.cpp index 5616d1b2..0d9174d3 100644 --- a/src/game/chat_handler.cpp +++ b/src/game/chat_handler.cpp @@ -191,7 +191,7 @@ void ChatHandler::handleMessageChat(network::Packet& packet) { LOG_WARNING("Failed to parse SMSG_MESSAGECHAT, size=", packet.getSize()); return; } - LOG_WARNING("INCOMING CHAT: type=", static_cast(data.type), + LOG_DEBUG("INCOMING CHAT: type=", static_cast(data.type), " (", getChatTypeString(data.type), ") sender=0x", std::hex, data.senderGuid, std::dec, " '", data.senderName, "' msg='", data.message.substr(0, 60), "'"); diff --git a/src/game/entity_controller.cpp b/src/game/entity_controller.cpp index ce5ed2e3..2af369de 100644 --- a/src/game/entity_controller.cpp +++ b/src/game/entity_controller.cpp @@ -985,7 +985,7 @@ bool EntityController::applyPlayerStatFields(const std::map& // 0 = not resting, 1 = REST_TYPE_IN_TAVERN, 2 = REST_TYPE_IN_CITY uint8_t restStateByte = static_cast((val >> 24) & 0xFF); if (isCreate) { - LOG_WARNING("PLAYER_BYTES_2 (CREATE): raw=0x", std::hex, val, std::dec, + LOG_DEBUG("PLAYER_BYTES_2 (CREATE): raw=0x", std::hex, val, std::dec, " bankBagSlots=", static_cast(bankBagSlots)); bool wasResting = owner_.isRestingRef(); owner_.isRestingRef() = (restStateByte != 0); diff --git a/src/game/game_handler_callbacks.cpp b/src/game/game_handler_callbacks.cpp index 67f2cc44..8eb1c43b 100644 --- a/src/game/game_handler_callbacks.cpp +++ b/src/game/game_handler_callbacks.cpp @@ -133,7 +133,7 @@ void GameHandler::sendAuthSession() { } void GameHandler::handleAuthResponse(network::Packet& packet) { - LOG_WARNING("Handling SMSG_AUTH_RESPONSE, size=", packet.getSize()); + LOG_DEBUG("Handling SMSG_AUTH_RESPONSE, size=", packet.getSize()); AuthResponseData response; if (!AuthResponseParser::parse(packet, response)) { @@ -1940,12 +1940,12 @@ void GameHandler::interactWithNpc(uint64_t guid) { } void GameHandler::interactWithGameObject(uint64_t guid) { - LOG_WARNING("[GO-DIAG] interactWithGameObject called: guid=0x", std::hex, guid, std::dec); - if (guid == 0) { LOG_WARNING("[GO-DIAG] BLOCKED: guid==0"); return; } - if (!isInWorld()) { LOG_WARNING("[GO-DIAG] BLOCKED: not in world"); return; } + LOG_DEBUG("[GO-DIAG] interactWithGameObject called: guid=0x", std::hex, guid, std::dec); + if (guid == 0) { LOG_DEBUG("[GO-DIAG] BLOCKED: guid==0"); return; } + if (!isInWorld()) { LOG_DEBUG("[GO-DIAG] BLOCKED: not in world"); return; } // Do not overlap an actual spell cast. if (spellHandler_ && spellHandler_->isCasting() && spellHandler_->getCurrentCastSpellId() != 0) { - LOG_WARNING("[GO-DIAG] BLOCKED: already casting spellId=", spellHandler_->getCurrentCastSpellId()); + LOG_DEBUG("[GO-DIAG] BLOCKED: already casting spellId=", spellHandler_->getCurrentCastSpellId()); return; } // Always clear melee intent before GO interactions. diff --git a/src/game/game_handler_packets.cpp b/src/game/game_handler_packets.cpp index f2b44533..469aeb8f 100644 --- a/src/game/game_handler_packets.cpp +++ b/src/game/game_handler_packets.cpp @@ -2775,7 +2775,7 @@ void GameHandler::handlePacket(network::Packet& packet) { ++wardenPacketsAfterGate_; } if (preLogicalOp && isAuthCharPipelineOpcode(*preLogicalOp)) { - LOG_WARNING("AUTH/CHAR RX opcode=0x", std::hex, opcode, std::dec, + LOG_DEBUG("AUTH/CHAR RX opcode=0x", std::hex, opcode, std::dec, " logical=", static_cast(*preLogicalOp), " state=", worldStateName(state), " size=", packet.getSize()); diff --git a/src/game/inventory_handler.cpp b/src/game/inventory_handler.cpp index 9526ca79..dba9ceac 100644 --- a/src/game/inventory_handler.cpp +++ b/src/game/inventory_handler.cpp @@ -2483,7 +2483,7 @@ void InventoryHandler::handleItemQueryResponse(network::Packet& packet) { } } if (reemitCount > 0) { - LOG_WARNING("Re-emitted equipment for ", reemitCount, " players after resolving entry=", resolvedEntry); + LOG_DEBUG("Re-emitted equipment for ", reemitCount, " players after resolving entry=", resolvedEntry); } // Same for inspect-based entries if (owner_.playerEquipmentCallbackRef()) { @@ -3117,11 +3117,11 @@ void InventoryHandler::updateOtherPlayerVisibleItems(uint64_t guid, const std::m dump += buf; } } - LOG_WARNING("RAW FIELDS 270-340:", dump); + LOG_DEBUG("RAW FIELDS 270-340:", dump); } if (nonZero > 0) { - LOG_WARNING("updateOtherPlayerVisibleItems: guid=0x", std::hex, guid, std::dec, + LOG_DEBUG("updateOtherPlayerVisibleItems: guid=0x", std::hex, guid, std::dec, " nonZero=", nonZero, " base=", base, " stride=", stride, " head=", newEntries[0], " shoulders=", newEntries[2], " chest=", newEntries[4], " legs=", newEntries[6], @@ -3182,7 +3182,7 @@ void InventoryHandler::emitOtherPlayerEquipment(uint64_t guid) { resolved++; } - LOG_WARNING("emitOtherPlayerEquipment: guid=0x", std::hex, guid, std::dec, + LOG_DEBUG("emitOtherPlayerEquipment: guid=0x", std::hex, guid, std::dec, " entries=", (anyEntry ? "yes" : "none"), " resolved=", resolved, " unresolved=", unresolved, " head=", displayIds[0], " shoulders=", displayIds[2], @@ -3192,7 +3192,7 @@ void InventoryHandler::emitOtherPlayerEquipment(uint64_t guid) { // Don't emit all-zero displayIds — that strips existing equipment for no reason. // Wait until at least one item resolves before applying. if (anyEntry && resolved == 0) { - LOG_WARNING("emitOtherPlayerEquipment: skipping all-zero emit (waiting for item queries)"); + LOG_DEBUG("emitOtherPlayerEquipment: skipping all-zero emit (waiting for item queries)"); return; } diff --git a/src/game/movement_handler.cpp b/src/game/movement_handler.cpp index 735e4be1..09c7e9b8 100644 --- a/src/game/movement_handler.cpp +++ b/src/game/movement_handler.cpp @@ -632,7 +632,7 @@ void MovementHandler::sendMovement(Opcode opcode) { // Periodic position audit — log every ~60 heartbeats (~30s) to trace position drift. if (opcode == Opcode::MSG_MOVE_HEARTBEAT && ++heartbeatLogCount_ % 60 == 0) { - LOG_WARNING("HEARTBEAT #", heartbeatLogCount_, " canonical=(", + LOG_DEBUG("HEARTBEAT #", heartbeatLogCount_, " canonical=(", movementInfo.x, ",", movementInfo.y, ",", movementInfo.z, ") server=(", wireInfo.x, ",", wireInfo.y, ",", wireInfo.z, ") flags=0x", std::hex, movementInfo.flags, std::dec); @@ -2551,7 +2551,7 @@ void MovementHandler::loadAreaTriggerDbc() { owner_.areaTriggersRef().push_back(at); } - LOG_WARNING("Loaded ", owner_.areaTriggersRef().size(), " area triggers from AreaTrigger.dbc"); + LOG_DEBUG("Loaded ", owner_.areaTriggersRef().size(), " area triggers from AreaTrigger.dbc"); } void MovementHandler::checkAreaTriggers() { diff --git a/src/game/spell_handler.cpp b/src/game/spell_handler.cpp index fd2823ec..1c653543 100644 --- a/src/game/spell_handler.cpp +++ b/src/game/spell_handler.cpp @@ -979,7 +979,7 @@ void SpellHandler::handleSpellGo(network::Packet& packet) { } } - LOG_WARNING("[GO-DIAG] SPELL_GO: spellId=", data.spellId, + LOG_DEBUG("[GO-DIAG] SPELL_GO: spellId=", data.spellId, " casting=", casting_, " currentCast=", currentCastSpellId_, " wasInTimedCast=", wasInTimedCast, " lastGoGuid=0x", std::hex, owner_.lastInteractedGoGuidRef(), @@ -992,7 +992,7 @@ void SpellHandler::handleSpellGo(network::Packet& packet) { // Gather node looting: re-send CMSG_LOOT now that the cast completed. if (wasInTimedCast && owner_.lastInteractedGoGuidRef() != 0) { - LOG_WARNING("[GO-DIAG] Sending CMSG_LOOT for GO 0x", std::hex, + LOG_DEBUG("[GO-DIAG] Sending CMSG_LOOT for GO 0x", std::hex, owner_.lastInteractedGoGuidRef(), std::dec); owner_.lootTarget(owner_.lastInteractedGoGuidRef()); owner_.lastInteractedGoGuidRef() = 0; diff --git a/src/game/transport_manager.cpp b/src/game/transport_manager.cpp index 47f12735..3f053f5d 100644 --- a/src/game/transport_manager.cpp +++ b/src/game/transport_manager.cpp @@ -887,7 +887,7 @@ bool TransportManager::loadTransportAnimationDBC(pipeline::AssetManager* assetMg if (transportEntry >= 176080 && transportEntry <= 176085) { size_t mid = sortedWaypoints.size() / 4; // ~quarter through size_t mid2 = sortedWaypoints.size() / 2; // ~halfway - LOG_WARNING("DBC path entry=", transportEntry, " nPts=", sortedWaypoints.size(), + LOG_DEBUG("DBC path entry=", transportEntry, " nPts=", sortedWaypoints.size(), " [0] t=", sortedWaypoints[0].first, " raw=(", sortedWaypoints[0].second.x, ",", sortedWaypoints[0].second.y, ",", sortedWaypoints[0].second.z, ")", " [", mid, "] t=", sortedWaypoints[mid].first, " raw=(", sortedWaypoints[mid].second.x, ",", sortedWaypoints[mid].second.y, ",", sortedWaypoints[mid].second.z, ")", " [", mid2, "] t=", sortedWaypoints[mid2].first, " raw=(", sortedWaypoints[mid2].second.x, ",", sortedWaypoints[mid2].second.y, ",", sortedWaypoints[mid2].second.z, ")"); diff --git a/src/game/world_packets.cpp b/src/game/world_packets.cpp index 025ead10..d927676b 100644 --- a/src/game/world_packets.cpp +++ b/src/game/world_packets.cpp @@ -1201,6 +1201,9 @@ bool UpdateObjectParser::parseUpdateFields(network::Packet& packet, UpdateBlock& " updateFlags=0x", std::hex, block.updateFlags, std::dec, " moveFlags=0x", std::hex, block.moveFlags, std::dec, " readPos=", packet.getReadPos(), " size=", packet.getSize()); + // Movement data likely consumed wrong number of bytes, causing blockCount + // to be read from a misaligned position. Bail out rather than reading garbage. + if (isCreateBlock) return false; } uint32_t fieldsCapacity = blockCount * 32; diff --git a/src/pipeline/wdt_loader.cpp b/src/pipeline/wdt_loader.cpp index cb59cec5..a19ccd17 100644 --- a/src/pipeline/wdt_loader.cpp +++ b/src/pipeline/wdt_loader.cpp @@ -101,7 +101,7 @@ WDTInfo parseWDT(const std::vector& data) { offset += 8 + chunkSize; } - LOG_WARNING("WDT parse result: mphdFlags=0x", std::hex, info.mphdFlags, std::dec, + LOG_DEBUG("WDT parse result: mphdFlags=0x", std::hex, info.mphdFlags, std::dec, " isWMOOnly=", info.isWMOOnly(), " rootWMO='", info.rootWMOPath, "'"); diff --git a/src/rendering/character_renderer.cpp b/src/rendering/character_renderer.cpp index 06bb4e08..3c838eea 100644 --- a/src/rendering/character_renderer.cpp +++ b/src/rendering/character_renderer.cpp @@ -2368,7 +2368,7 @@ void CharacterRenderer::render(VkCommandBuffer cmd, VkDescriptorSet perFrameSet, uint16_t bg = static_cast(b.submeshId / 100); bool active = instance.activeGeosets.empty() || instance.activeGeosets.count(b.submeshId); - LOG_WARNING("BATCH DIAG: submesh=", b.submeshId, " group=", bg, + LOG_DEBUG("BATCH DIAG: submesh=", b.submeshId, " group=", bg, " blend=", bm, " matFlags=0x", std::hex, mf, std::dec, " texIdx=", b.textureIndex, " matIdx=", b.materialIndex, " active=", active); diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index ed02bfff..d480665a 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -1243,7 +1243,7 @@ void GameScreen::processTargetInput(game::GameHandler& gameHandler) { if (gameHandler.hasTarget()) { auto target = gameHandler.getTarget(); if (target && target->getType() == game::ObjectType::GAMEOBJECT) { - LOG_WARNING("[GO-DIAG] Right-click: re-interacting with targeted GO 0x", + LOG_DEBUG("[GO-DIAG] Right-click: re-interacting with targeted GO 0x", std::hex, target->getGuid(), std::dec); gameHandler.setTarget(target->getGuid()); gameHandler.interactWithGameObject(target->getGuid()); @@ -1322,7 +1322,7 @@ void GameScreen::processTargetInput(game::GameHandler& gameHandler) { static std::unordered_set goPickLog; if (goPickLog.insert(guid).second) { auto go = std::static_pointer_cast(entity); - LOG_WARNING("[GO-DIAG] Raypick GO: guid=0x", std::hex, guid, std::dec, + LOG_DEBUG("[GO-DIAG] Raypick GO: guid=0x", std::hex, guid, std::dec, " entry=", go->getEntry(), " name='", go->getName(), "' pos=(", entity->getX(), ",", entity->getY(), ",", entity->getZ(), ") center=(", hitCenter.x, ",", hitCenter.y, ",", hitCenter.z, @@ -1389,7 +1389,7 @@ void GameScreen::processTargetInput(game::GameHandler& gameHandler) { if (closestGuid != 0) { if (closestType == game::ObjectType::GAMEOBJECT) { - LOG_WARNING("[GO-DIAG] Right-click: raypick hit GO 0x", + LOG_DEBUG("[GO-DIAG] Right-click: raypick hit GO 0x", std::hex, closestGuid, std::dec); gameHandler.setTarget(closestGuid); gameHandler.interactWithGameObject(closestGuid);