aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsilinoron <none@none>2010-08-05 14:18:33 -0700
committersilinoron <none@none>2010-08-05 14:18:33 -0700
commit71ef21de21be2e4fc426c8ebb3be3556e517bee0 (patch)
treed3e823757f29169ebb1bcf01cd85688aa62723a5 /src
parent309970936c9b11f5bf3a1dc61d0be133300bd4b2 (diff)
Add helper Player::GetAverageItemLevel() function for future use in Dungeon Finder and vehicle scaling.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp20
-rw-r--r--src/server/game/Entities/Player/Player.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 8eb2d34229e..1e3bd84c780 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -24003,3 +24003,23 @@ void Player::_LoadRandomBGStatus(QueryResult_AutoPtr result)
if (result)
m_IsBGRandomWinner = true;
}
+
+float Player::GetAverageItemLevel()
+{
+ uint32 sum = 0;
+ uint32 count = 0;
+
+ for (int i = EQUIPMENT_SLOT_START; i < EQUIPMENT_SLOT_END; ++i)
+ {
+ // don't check tabard, ranged, offhand or chest
+ if (i == EQUIPMENT_SLOT_TABARD || i == EQUIPMENT_SLOT_RANGED || i == EQUIPMENT_SLOT_OFFHAND || i == EQUIPMENT_SLOT_CHEST)
+ continue;
+
+ if (m_items[i] && m_items[i]->GetProto())
+ sum += m_items[i]->GetProto()->ItemLevel;
+
+ count++;
+ }
+
+ return ((float)sum) / count;
+}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 4f8da387fb2..2d6690bd817 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -2347,6 +2347,8 @@ class Player : public Unit, public GridObject<Player>
void SetChampioningFaction(uint32 faction) { m_ChampioningFaction = faction; }
Spell * m_spellModTakingSpell;
+ float GetAverageItemLevel();
+
protected:
uint32 m_AreaID;
uint32 m_regenTimerCount;