Use valptr for medwall highest_valid

This commit is contained in:
Kp 2015-06-13 22:42:18 +00:00
parent c3ba75cd22
commit 438a1a4bee

View file

@ -682,10 +682,13 @@ int wall_remove_side(const vsegptridx_t seg, short side)
Num_walls -= 2;
range_for (const auto s, highest_valid(Segments))
if (Segments[s].segnum != segment_none)
{
const auto &&segp = vsegptr(static_cast<segnum_t>(s));
if (segp->segnum != segment_none)
for (int w=0;w<MAX_SIDES_PER_SEGMENT;w++)
if (Segments[s].sides[w].wall_num > lower_wallnum+1)
Segments[s].sides[w].wall_num -= 2;
if (segp->sides[w].wall_num > lower_wallnum+1)
segp->sides[w].wall_num -= 2;
}
// Destroy any links to the deleted wall.
range_for (auto &t, partial_range(Triggers, Num_triggers))
@ -986,12 +989,14 @@ int check_walls()
wall_count = 0;
range_for (const auto seg, highest_valid(Segments))
if (Segments[seg].segnum != segment_none) {
{
const auto &&segp = vsegptr(static_cast<segnum_t>(seg));
if (segp->segnum != segment_none) {
// Check fuelcenters
matcen_num = Segments[seg].matcen_num;
matcen_num = segp->matcen_num;
if (matcen_num == 0)
if (RobotCenters[0].segnum != seg) {
Segments[seg].matcen_num = -1;
segp->matcen_num = -1;
}
if (matcen_num > -1)
@ -1000,13 +1005,14 @@ int check_walls()
}
for (int side=0;side<MAX_SIDES_PER_SEGMENT;side++)
if (Segments[seg].sides[side].wall_num != wall_none) {
CountedWalls[wall_count].wallnum = Segments[seg].sides[side].wall_num;
if (segp->sides[side].wall_num != wall_none) {
CountedWalls[wall_count].wallnum = segp->sides[side].wall_num;
CountedWalls[wall_count].segnum = seg;
CountedWalls[wall_count].sidenum = side;
wall_count++;
}
}
}
if (wall_count != Num_walls) {
sprintf( Message, "Num_walls is bogus\nDo you wish to correct it?\n");
@ -1052,8 +1058,11 @@ int delete_all_walls()
sprintf( Message, "Are you sure that walls are hosed so\n badly that you want them ALL GONE!?\n");
if (ui_messagebox( -2, -2, 2, Message, "YES!", "No" )==1) {
range_for (const auto seg, highest_valid(Segments))
{
const auto &&segp = vsegptr(static_cast<segnum_t>(seg));
for (int side=0;side<MAX_SIDES_PER_SEGMENT;side++)
Segments[seg].sides[side].wall_num = wall_none;
segp->sides[side].wall_num = wall_none;
}
Num_walls=0;
Num_triggers=0;
@ -1156,10 +1165,11 @@ void check_wall_validity(void)
range_for (const auto i, highest_valid(Segments))
{
if (Segments[i].segnum != segment_none)
const auto &&segp = vsegptr(static_cast<segnum_t>(i));
if (segp->segnum != segment_none)
for (int j=0; j<MAX_SIDES_PER_SEGMENT; j++) {
// Check walls
auto wall_num = Segments[i].sides[j].wall_num;
auto wall_num = segp->sides[j].wall_num;
if (wall_num != wall_none) {
if (wall_flags[wall_num] != 0) {
if (!Validate_walls)