aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Reputation
diff options
context:
space:
mode:
authorQAston <qaston@gmail.com>2011-09-15 17:44:03 +0200
committerQAston <qaston@gmail.com>2011-09-15 17:44:03 +0200
commite07535c3e3b9df05c894557b675ccf95bf7a622b (patch)
tree69af39ede1eb45c822abd0a293b281192208962b /src/server/game/Reputation
parentaf05915b9e36497eda8f2f061c29ffee0c8042b6 (diff)
Core/Entities: Add new functions: Unit::GetReactionTo and Unit::GetFactionReactionTo for more direct reaction checks than Unit::IsFriendly/HostileTo (those functions have many duplicated code and have many checks unrelated to unit reaction).
Diffstat (limited to 'src/server/game/Reputation')
-rwxr-xr-xsrc/server/game/Reputation/ReputationMgr.cpp23
-rwxr-xr-xsrc/server/game/Reputation/ReputationMgr.h5
2 files changed, 27 insertions, 1 deletions
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index 0aaa3da0a38..a82764c62f9 100755
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -39,6 +39,29 @@ ReputationRank ReputationMgr::ReputationToRank(int32 standing)
return MIN_REPUTATION_RANK;
}
+bool ReputationMgr::IsAtWar(uint32 faction_id) const
+{
+ FactionEntry const* factionEntry = sFactionStore.LookupEntry(faction_id);
+
+ if (!factionEntry)
+ {
+ sLog->outError("ReputationMgr::IsAtWar: Can't get AtWat flag of %s for unknown faction (faction id) #%u.", m_player->GetName(), faction_id);
+ return 0;
+ }
+
+ return IsAtWar(factionEntry);
+}
+
+bool ReputationMgr::IsAtWar(FactionEntry const* factionEntry) const
+{
+ if (!factionEntry)
+ return false;
+
+ if (FactionState const* factionState = GetState(factionEntry))
+ return (factionState->Flags & FACTION_FLAG_AT_WAR);
+ return false;
+}
+
int32 ReputationMgr::GetReputation(uint32 faction_id) const
{
FactionEntry const* factionEntry = sFactionStore.LookupEntry(faction_id);
diff --git a/src/server/game/Reputation/ReputationMgr.h b/src/server/game/Reputation/ReputationMgr.h
index bb22f46585a..59ec826f0c5 100755
--- a/src/server/game/Reputation/ReputationMgr.h
+++ b/src/server/game/Reputation/ReputationMgr.h
@@ -86,7 +86,7 @@ class ReputationMgr
FactionState const* GetState(FactionEntry const* factionEntry) const
{
- return factionEntry->reputationListID >= 0 ? GetState(factionEntry->reputationListID) : NULL;
+ return factionEntry->CanHaveReputation() ? GetState(factionEntry->reputationListID) : NULL;
}
FactionState const* GetState(RepListID id) const
@@ -95,6 +95,9 @@ class ReputationMgr
return repItr != m_factions.end() ? &repItr->second : NULL;
}
+ bool IsAtWar(uint32 faction_id) const;
+ bool IsAtWar(FactionEntry const* factionEntry) const;
+
int32 GetReputation(uint32 faction_id) const;
int32 GetReputation(FactionEntry const* factionEntry) const;
int32 GetBaseReputation(FactionEntry const* factionEntry) const;