Core/Players: Fixed racemasks usage for new races

This commit is contained in:
Shauren
2020-03-30 19:06:11 +02:00
parent 642dd62cc7
commit 3cc50e69f1
29 changed files with 224 additions and 153 deletions

View File

@@ -92,12 +92,12 @@ int32 ReputationMgr::GetBaseReputation(FactionEntry const* factionEntry) const
if (!factionEntry)
return 0;
uint64 raceMask = _player->getRaceMask();
uint8 race = _player->getRace();
uint32 classMask = _player->getClassMask();
for (int i=0; i < 4; i++)
{
if ((factionEntry->ReputationRaceMask[i] & raceMask ||
(factionEntry->ReputationRaceMask[i] == 0 &&
if ((factionEntry->ReputationRaceMask[i].HasRace(race) ||
(!factionEntry->ReputationRaceMask[i] &&
factionEntry->ReputationClassMask[i] != 0)) &&
(factionEntry->ReputationClassMask[i] & classMask ||
factionEntry->ReputationClassMask[i] == 0))
@@ -151,12 +151,12 @@ uint32 ReputationMgr::GetDefaultStateFlags(FactionEntry const* factionEntry) con
if (!factionEntry)
return 0;
uint64 raceMask = _player->getRaceMask();
uint8 race = _player->getRace();
uint32 classMask = _player->getClassMask();
for (int i=0; i < 4; i++)
{
if ((factionEntry->ReputationRaceMask[i] & raceMask ||
(factionEntry->ReputationRaceMask[i] == 0 &&
if ((factionEntry->ReputationRaceMask[i].HasRace(race) ||
(!factionEntry->ReputationRaceMask[i] &&
factionEntry->ReputationClassMask[i] != 0)) &&
(factionEntry->ReputationClassMask[i] & classMask ||
factionEntry->ReputationClassMask[i] == 0))
@@ -396,7 +396,7 @@ void ReputationMgr::SetVisible(FactionTemplateEntry const* factionTemplateEntry)
if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionTemplateEntry->Faction))
// Never show factions of the opposing team
if (!(factionEntry->ReputationRaceMask[1] & _player->getRaceMask() && factionEntry->ReputationBase[1] == Reputation_Bottom))
if (!(factionEntry->ReputationRaceMask[1].HasRace(_player->getRace()) && factionEntry->ReputationBase[1] == Reputation_Bottom))
SetVisible(factionEntry);
}