aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortartalo <none@none>2009-10-22 18:35:52 +0200
committertartalo <none@none>2009-10-22 18:35:52 +0200
commit9e8961bc4cd9bb99b863031924f16c6306a1e35d (patch)
tree3705782864aa0c9129f2e9d9252bfd4286635b93
parent9c81b3e51dbf255435a8ac945ac018b809be2e83 (diff)
Fix some problems with instance full conditions. BTW, Implement maxPlayers = -1 as unlimited access
--HG-- branch : trunk
-rw-r--r--src/game/MapManager.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp
index 66fa5632d56..476426b8106 100644
--- a/src/game/MapManager.cpp
+++ b/src/game/MapManager.cpp
@@ -252,15 +252,19 @@ bool MapManager::CanPlayerEnter(uint32 mapid, Player* player)
//Instance is full
if (boundedMap)
{
- Map::PlayerList const &players = boundedMap->GetPlayers();
- uint8 count = 0;
- for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- ++count;
- if (count == player->GetDifficulty() ? instance->maxPlayersHeroic : instance->maxPlayers)
+ int8 maxPlayers = (player->GetDifficulty() == DIFFICULTY_HEROIC) ? instance->maxPlayersHeroic : instance->maxPlayers;
+ if (maxPlayers != -1) //-1: unlimited access
{
- sLog.outDebug("MAP: Player '%s' can't enter instance '%s' because it's full.", player->GetName(), mapName);
- player->SendTransferAborted(mapid, TRANSFER_ABORT_MAX_PLAYERS);
- return(false);
+ Map::PlayerList const &players = boundedMap->GetPlayers();
+ uint8 count = 0;
+ for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
+ ++count;
+ if (count >= maxPlayers)
+ {
+ sLog.outDebug("MAP: Player '%s' can't enter instance '%s' because it's full.", player->GetName(), mapName);
+ player->SendTransferAborted(mapid, TRANSFER_ABORT_MAX_PLAYERS);
+ return(false);
+ }
}
}
}