diff options
| author | Subv <s.v.h21@hotmail.com> | 2012-10-10 06:43:47 -0700 |
|---|---|---|
| committer | Subv <s.v.h21@hotmail.com> | 2012-10-10 06:43:47 -0700 |
| commit | ef6e7e09141f2dcd964e0828f287e2b235250746 (patch) | |
| tree | 8e2a5978a54ba23450329efa4a20fcec1ea9a286 /src/server/game/Globals/ObjectMgr.cpp | |
| parent | 3e5af53bf75fdacdb8626e4fd95a5c889874a829 (diff) | |
| parent | 05eaf75501a69a4b9561ed245f07a4d0a7871f1d (diff) | |
Merge pull request #8001 from tibbi/reputation_convert
correct reputation converting at faction change
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
| -rwxr-xr-x | src/server/game/Globals/ObjectMgr.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 95a27fd14e1..b28f8be7805 100755 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -7590,6 +7590,27 @@ SpellScriptsBounds ObjectMgr::GetSpellScriptsBounds(uint32 spell_id) return SpellScriptsBounds(_spellScriptsStore.lower_bound(spell_id), _spellScriptsStore.upper_bound(spell_id)); } +// this allows calculating base reputations to offline players, just by race and class +int32 ObjectMgr::GetBaseReputation(FactionEntry const* factionEntry, uint8 race, uint8 playerClass) +{ + if (!factionEntry) + return 0; + + uint32 raceMask = (1 << (race - 1)); + uint32 classMask = (1 << (playerClass-1)); + + for (int i = 0; i < 4; i++) + { + if ((!factionEntry->BaseRepClassMask[i] || + factionEntry->BaseRepClassMask[i] & classMask) && + (!factionEntry->BaseRepRaceMask[i] || + factionEntry->BaseRepRaceMask[i] & raceMask)) + return factionEntry->BaseRepValue[i]; + } + + return 0; +} + SkillRangeType GetSkillRangeType(SkillLineEntry const* pSkill, bool racial) { switch (pSkill->categoryId) |
