diff options
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index d7a62b4cd7e..1256428f6dc 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -1629,23 +1629,20 @@ uint32 ObjectMgr::ChooseDisplayId(CreatureTemplate const* cinfo, CreatureData co return cinfo->GetFirstInvisibleModel(); } -void ObjectMgr::ChooseCreatureFlags(CreatureTemplate const* cinfo, uint32& npcflag, uint32& unit_flags, uint32& dynamicflags, CreatureData const* data /*= nullptr*/) +void ObjectMgr::ChooseCreatureFlags(CreatureTemplate const* cinfo, uint32* npcflag, uint32* unit_flags, uint32* dynamicflags, CreatureData const* data /*= nullptr*/) { - npcflag = cinfo->npcflag; - unit_flags = cinfo->unit_flags; - dynamicflags = cinfo->dynamicflags; +#define ChooseCreatureFlagSource(field) ((data && data->field) ? data->field : cinfo->field) - if (data) - { - if (data->npcflag) - npcflag = data->npcflag; + if (npcflag) + *npcflag = ChooseCreatureFlagSource(npcflag); - if (data->unit_flags) - unit_flags = data->unit_flags; + if (unit_flags) + *unit_flags = ChooseCreatureFlagSource(unit_flags); - if (data->dynamicflags) - dynamicflags = data->dynamicflags; - } + if (dynamicflags) + *dynamicflags = ChooseCreatureFlagSource(dynamicflags); + +#undef ChooseCreatureFlagSource } CreatureModelInfo const* ObjectMgr::GetCreatureModelRandomGender(uint32* displayID) const |