Use find_if to search CloakingWalls in start_wall_decloak

This commit is contained in:
Kp 2016-11-19 17:24:54 +00:00
parent 1cebed13e3
commit a9d82352b8

View file

@ -562,20 +562,15 @@ void start_wall_decloak(const vsegptridx_t seg, int side)
return;
if (w->state == WALL_DOOR_CLOAKING) { //cloaking, so reuse door
d = NULL;
for (unsigned i = 0; i < Num_cloaking_walls; ++i)
{ //find door
d = &CloakingWalls[i];
if (d->front_wallnum == w || d->back_wallnum == w)
{
d->time = CLOAKING_WALL_TIME - d->time;
break;
}
const auto &&r = partial_range(CloakingWalls, Num_cloaking_walls);
const auto i = std::find_if(r.begin(), r.end(), find_cloaked_wall_predicate(w));
if (i == r.end())
{
d_debugbreak();
return;
}
Assert( d!=NULL ); // Get John!
d = i;
d->time = CLOAKING_WALL_TIME - d->time;
}
else if (w->state == WALL_DOOR_CLOSED) { //create new door
d = &CloakingWalls[Num_cloaking_walls];