Use range_for for kill_stuck_objects

This commit is contained in:
Kp 2016-04-05 01:10:18 +00:00
parent 6b5bf5a549
commit 5dae1e9080

View file

@ -1378,17 +1378,18 @@ void remove_obsolete_stuck_objects(void)
// Door with wall index wallnum is opening, kill all objects stuck in it. // Door with wall index wallnum is opening, kill all objects stuck in it.
void kill_stuck_objects(int wallnum) void kill_stuck_objects(int wallnum)
{ {
int i;
if (wallnum < 0 || Num_stuck_objects == 0) { if (wallnum < 0 || Num_stuck_objects == 0) {
return; return;
} }
Num_stuck_objects=0; unsigned n = 0;
for (i=0; i<MAX_STUCK_OBJECTS; i++) range_for (auto &i, Stuck_objects)
if (Stuck_objects[i].wallnum == wallnum) { {
const auto &&objp = vobjptr(Stuck_objects[i].objnum); if (i.wallnum == wallnum)
{
i.wallnum = wall_none;
const auto &&objp = vobjptr(i.objnum);
if (objp->type == OBJ_WEAPON) { if (objp->type == OBJ_WEAPON) {
#if defined(DXX_BUILD_DESCENT_I) #if defined(DXX_BUILD_DESCENT_I)
#define DXX_WEAPON_LIFELEFT F1_0/4 #define DXX_WEAPON_LIFELEFT F1_0/4
@ -1397,12 +1398,13 @@ void kill_stuck_objects(int wallnum)
#endif #endif
objp->lifeleft = DXX_WEAPON_LIFELEFT; objp->lifeleft = DXX_WEAPON_LIFELEFT;
} }
Stuck_objects[i].wallnum = wall_none;
} }
else if (Stuck_objects[i].wallnum != wall_none) else if (i.wallnum != wall_none)
{ {
Num_stuck_objects++; ++n;
} }
}
Num_stuck_objects = n;
// Ok, this is awful, but we need to do things whenever a door opens/closes/disappears, etc. // Ok, this is awful, but we need to do things whenever a door opens/closes/disappears, etc.
#if defined(DXX_BUILD_DESCENT_II) #if defined(DXX_BUILD_DESCENT_II)
flush_fcd_cache(); flush_fcd_cache();