Core/Misc: Use equal_range instead of lower_bound/upper_bound calls where possible.

This commit is contained in:
Spp
2013-01-02 09:53:43 +01:00
parent 2292025bf9
commit d36c4a91ba
9 changed files with 160 additions and 104 deletions

View File

@@ -108,24 +108,24 @@ void InstanceScript::UpdateMinionState(Creature* minion, EncounterState state)
void InstanceScript::UpdateDoorState(GameObject* door)
{
DoorInfoMap::iterator lower = doors.lower_bound(door->GetEntry());
DoorInfoMap::iterator upper = doors.upper_bound(door->GetEntry());
if (lower == upper)
DoorInfoMapBounds range = doors.equal_range(door->GetEntry());
if (range.first == range.second)
return;
bool open = true;
for (DoorInfoMap::iterator itr = lower; itr != upper && open; ++itr)
for (; range.first != range.second && open; ++range.first)
{
switch (itr->second.type)
DoorInfo const& info = range.first->second;
switch (info.type)
{
case DOOR_TYPE_ROOM:
open = (itr->second.bossInfo->state != IN_PROGRESS);
open = (info.bossInfo->state != IN_PROGRESS);
break;
case DOOR_TYPE_PASSAGE:
open = (itr->second.bossInfo->state == DONE);
open = (info.bossInfo->state == DONE);
break;
case DOOR_TYPE_SPAWN_HOLE:
open = (itr->second.bossInfo->state == IN_PROGRESS);
open = (info.bossInfo->state == IN_PROGRESS);
break;
default:
break;
@@ -137,14 +137,13 @@ void InstanceScript::UpdateDoorState(GameObject* door)
void InstanceScript::AddDoor(GameObject* door, bool add)
{
DoorInfoMap::iterator lower = doors.lower_bound(door->GetEntry());
DoorInfoMap::iterator upper = doors.upper_bound(door->GetEntry());
if (lower == upper)
DoorInfoMapBounds range = doors.equal_range(door->GetEntry());
if (range.first == range.second)
return;
for (DoorInfoMap::iterator itr = lower; itr != upper; ++itr)
for (; range.first != range.second; ++range.first)
{
DoorInfo const& data = itr->second;
DoorInfo const& data = range.first->second;
if (add)
{