mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 22:37:03 +00:00
[7641] Implement check noDamageImmune fields at gameobject templates loading at server startup.
This commit is contained in:
parent
f87684bab6
commit
463e78c872
2 changed files with 17 additions and 1 deletions
|
|
@ -5418,6 +5418,16 @@ inline void CheckAndFixGOChairHeightId(GameObjectInfo const* goInfo,uint32 const
|
|||
const_cast<uint32&>(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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue