aboutsummaryrefslogtreecommitdiff
path: root/src/game/Player.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r--src/game/Player.cpp44
1 files changed, 19 insertions, 25 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 11d8d6de5b3..ba11ffa6c27 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -19053,40 +19053,34 @@ bool Player::GetBGAccessByLevel(BattleGroundTypeId bgTypeId) const
return true;
}
-uint32 Player::GetMinLevelForBattleGroundQueueId(uint32 queue_id)
+uint32 Player::GetMinLevelForBattleGroundQueueId(uint32 queue_id, BattleGroundTypeId bgTypeId)
{
- if(queue_id < 1)
- return 0;
-
- if(queue_id >=7)
- queue_id = 7;
-
- return 10*(queue_id+1);
+ BattleGround *bg = sBattleGroundMgr.GetBattleGroundTemplate(bgTypeId);
+ assert(bg);
+ return (queue_id*10)+bg->GetMinLevel();
}
-uint32 Player::GetMaxLevelForBattleGroundQueueId(uint32 queue_id)
+uint32 Player::GetMaxLevelForBattleGroundQueueId(uint32 queue_id, BattleGroundTypeId bgTypeId)
{
- if(queue_id >=7)
- return 255; // hardcoded max level
-
- return 10*(queue_id+2)-1;
+ return GetMinLevelForBattleGroundQueueId(queue_id, bgTypeId)+10;
}
-//TODO make this more generic - current implementation is wrong
-uint32 Player::GetBattleGroundQueueIdFromLevel() const
+uint32 Player::GetBattleGroundQueueIdFromLevel(BattleGroundTypeId bgTypeId) const
{
- uint32 level = getLevel();
- if(level <= 19)
- return 0;
- else if (level > 79)
- return 7;
- else
- return level/10 - 1; // 20..29 -> 1, 30-39 -> 2, ...
- /*
- assert(bgTypeId < MAX_BATTLEGROUND_TYPES);
BattleGround *bg = sBattleGroundMgr.GetBattleGroundTemplate(bgTypeId);
assert(bg);
- return (getLevel() - bg->GetMinLevel()) / 10;*/
+ if(getLevel()<bg->GetMinLevel())
+ {
+ sLog.outError("getting queue_id for player who doesn't meet the requirements - this shouldn't happen");
+ return 0;
+ }
+ uint32 queue_id = (getLevel() - bg->GetMinLevel()) / 10;
+ if(queue_id>MAX_BATTLEGROUND_QUEUES)
+ {
+ sLog.outError("to high queue_id %u this shouldn't happen",queue_id);
+ return 0;
+ }
+ return queue_id;
}
float Player::GetReputationPriceDiscount( Creature const* pCreature ) const