aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Conditions/ConditionMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-05-06 18:45:51 +0200
committerShauren <shauren.trinity@gmail.com>2022-05-06 18:45:51 +0200
commitd800c87137088f2cfdb66e8086c64321ca9c3509 (patch)
treec3c7eab562409d2ba5f8e501985ad419c2893fe7 /src/server/game/Conditions/ConditionMgr.cpp
parentaa6a0f24312ce6132e55a9aed677362a3b1dc8a9 (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.cpp7
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))