diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 1d35205a0..435e2a1ac 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -5418,6 +5418,16 @@ inline void CheckAndFixGOChairHeightId(GameObjectInfo const* goInfo,uint32 const const_cast(dataN) = 0; } +inline void CheckGONoDamageImmuneId(GameObjectInfo const* goInfo,uint32 dataN,uint32 N) +{ + // 0/1 correct values + if (dataN <= 1) + return; + + sLog.outErrorDb("Gameobject (Entry: %u GoType: %u) have data%d=%u but expected boolean (0/1) noDamageImmune field value.", + goInfo->id,goInfo->type,N,dataN); +} + void ObjectMgr::LoadGameobjectInfo() { SQLGameObjectLoader loader; @@ -5436,18 +5446,21 @@ void ObjectMgr::LoadGameobjectInfo() { if (goInfo->door.lockId) CheckGOLockId(goInfo,goInfo->door.lockId,1); + CheckGONoDamageImmuneId(goInfo,goInfo->door.noDamageImmune,3); break; } case GAMEOBJECT_TYPE_BUTTON: //1 { if (goInfo->button.lockId) CheckGOLockId(goInfo,goInfo->button.lockId,1); + CheckGONoDamageImmuneId(goInfo,goInfo->button.noDamageImmune,4); break; } case GAMEOBJECT_TYPE_QUESTGIVER: //2 { if (goInfo->questgiver.lockId) CheckGOLockId(goInfo,goInfo->questgiver.lockId,0); + CheckGONoDamageImmuneId(goInfo,goInfo->questgiver.noDamageImmune,5); break; } case GAMEOBJECT_TYPE_CHEST: //3 @@ -5500,6 +5513,7 @@ void ObjectMgr::LoadGameobjectInfo() if (goInfo->goober.spellId) // spell CheckGOSpellId(goInfo,goInfo->goober.spellId,10); */ + CheckGONoDamageImmuneId(goInfo,goInfo->goober.noDamageImmune,11); if (goInfo->goober.linkedTrapId) // linked trap CheckGOLinkedTrapId(goInfo,goInfo->goober.linkedTrapId,12); break; @@ -5544,6 +5558,7 @@ void ObjectMgr::LoadGameobjectInfo() { if (goInfo->flagstand.lockId) CheckGOLockId(goInfo,goInfo->flagstand.lockId,0); + CheckGONoDamageImmuneId(goInfo,goInfo->flagstand.noDamageImmune,5); break; } case GAMEOBJECT_TYPE_FISHINGHOLE: //25 @@ -5556,6 +5571,7 @@ void ObjectMgr::LoadGameobjectInfo() { if (goInfo->flagdrop.lockId) CheckGOLockId(goInfo,goInfo->flagdrop.lockId,0); + CheckGONoDamageImmuneId(goInfo,goInfo->flagdrop.noDamageImmune,3); break; } case GAMEOBJECT_TYPE_BARBER_CHAIR: //32 diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 8c9cd3e3d..3391fb309 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7640" + #define REVISION_NR "7641" #endif // __REVISION_NR_H__