diff options
author | Shauren <shauren.trinity@gmail.com> | 2022-05-06 18:45:51 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-05-06 18:45:51 +0200 |
commit | d800c87137088f2cfdb66e8086c64321ca9c3509 (patch) | |
tree | c3c7eab562409d2ba5f8e501985ad419c2893fe7 /src/server/game/Conditions/ConditionMgr.cpp | |
parent | aa6a0f24312ce6132e55a9aed677362a3b1dc8a9 (diff) |
Core/Misc: Remove implicit conversions from RaceMask class, fixes racemask check failing during loading from db
Diffstat (limited to 'src/server/game/Conditions/ConditionMgr.cpp')
-rw-r--r-- | src/server/game/Conditions/ConditionMgr.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 796080a020f..e154df64f7a 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -2230,9 +2230,10 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) const } case CONDITION_RACE: { - if (uint32(cond->ConditionValue1 & ~RACEMASK_ALL_PLAYABLE)) // uint32 works thanks to weird index remapping in racemask + Trinity::RaceMask<uint64> invalidRaceMask = Trinity::RaceMask<uint64>{ cond->ConditionValue1 } & ~RACEMASK_ALL_PLAYABLE; + if (!invalidRaceMask.IsEmpty()) // uint32 works thanks to weird index remapping in racemask { - TC_LOG_ERROR("sql.sql", "%s has non existing racemask (" UI64FMTD "), skipped.", cond->ToString(true).c_str(), cond->ConditionValue1 & ~RACEMASK_ALL_PLAYABLE); + TC_LOG_ERROR("sql.sql", "%s has non existing racemask (" UI64FMTD "), skipped.", cond->ToString(true).c_str(), invalidRaceMask.RawValue); return false; } break; @@ -2821,7 +2822,7 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio } } - if (condition->RaceMask && !condition->RaceMask.HasRace(player->GetRace())) + if (!condition->RaceMask.IsEmpty() && !condition->RaceMask.HasRace(player->GetRace())) return false; if (condition->ClassMask && !(player->GetClassMask() & condition->ClassMask)) |