Use valptr for object highest_valid

This commit is contained in:
Kp 2015-06-13 22:42:18 +00:00
parent ac5d5b879a
commit a4d3c55fe4

View file

@ -980,8 +980,11 @@ objptridx_t obj_allocate()
{ {
Unused_object_slots=0; Unused_object_slots=0;
range_for (const auto i, highest_valid(Objects)) range_for (const auto i, highest_valid(Objects))
if (Objects[i].type == OBJ_NONE) {
const auto &&objp = vcobjptr(static_cast<objnum_t>(i));
if (objp->type == OBJ_NONE)
Unused_object_slots++; Unused_object_slots++;
}
} }
return objptridx(objnum); return objptridx(objnum);
} }
@ -1024,12 +1027,15 @@ static void free_object_slots(uint_fast32_t num_used)
range_for (const auto i, highest_valid(Objects)) range_for (const auto i, highest_valid(Objects))
{ {
if (Objects[i].flags & OF_SHOULD_BE_DEAD) { const auto &&objp = vobjptr(static_cast<objnum_t>(i));
if (objp->flags & OF_SHOULD_BE_DEAD)
{
num_already_free++; num_already_free++;
if (MAX_OBJECTS - num_already_free < num_used) if (MAX_OBJECTS - num_already_free < num_used)
return; return;
} else } else
switch (Objects[i].type) { switch (objp->type)
{
case OBJ_NONE: case OBJ_NONE:
num_already_free++; num_already_free++;
if (MAX_OBJECTS - num_already_free < num_used) if (MAX_OBJECTS - num_already_free < num_used)
@ -1041,7 +1047,7 @@ static void free_object_slots(uint_fast32_t num_used)
case OBJ_FIREBALL: case OBJ_FIREBALL:
case OBJ_WEAPON: case OBJ_WEAPON:
case OBJ_DEBRIS: case OBJ_DEBRIS:
obj_list[olind++] = &Objects[i]; obj_list[olind++] = objp;
break; break;
case OBJ_ROBOT: case OBJ_ROBOT:
case OBJ_HOSTAGE: case OBJ_HOSTAGE:
@ -1588,7 +1594,10 @@ void obj_relink(const vobjptridx_t objnum,const vsegptridx_t newsegnum)
void obj_relink_all(void) void obj_relink_all(void)
{ {
range_for (const auto segnum, highest_valid(Segments)) range_for (const auto segnum, highest_valid(Segments))
Segments[segnum].objects = object_none; {
const auto &&segp = vsegptr(static_cast<segnum_t>(segnum));
segp->objects = object_none;
}
range_for (const auto objnum, highest_valid(Objects)) range_for (const auto objnum, highest_valid(Objects))
{ {