Use valptr for medwall highest_valid
This commit is contained in:
parent
c3ba75cd22
commit
438a1a4bee
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue