mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-26 21:13:51 +00:00
fix(parsing): bail on suspicious maskBlockCount in CREATE_OBJECT blocks
When spline parsing consumes the wrong number of bytes, the subsequent blockCount read lands on garbage data (e.g. 71 instead of ~5 for UNIT). Previously the parser logged a warning but continued, reading garbage mask/field data until hitting truncation. Now it returns false for CREATE_OBJECT blocks with suspicious counts, letting the block loop skip cleanly to the next entity. Also downgrade ~44 diagnostic LOG_WARNING messages to LOG_DEBUG across 17 files (equipment, transport, DBC, heartbeat, chat, GO raypick, etc.) to reduce log noise and make real warnings visible.
This commit is contained in:
parent
e32f4fbff9
commit
069dd36698
18 changed files with 46 additions and 43 deletions
|
|
@ -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<uint64_t> goPickLog;
|
||||
if (goPickLog.insert(guid).second) {
|
||||
auto go = std::static_pointer_cast<game::GameObject>(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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue