Use range_for/vcwallptridx for write_wall_text
This commit is contained in:
parent
20776fcfbc
commit
4597ecf1f0
|
@ -535,39 +535,42 @@ static void write_matcen_text(PHYSFS_File *my_file)
|
||||||
namespace dsx {
|
namespace dsx {
|
||||||
static void write_wall_text(PHYSFS_File *my_file)
|
static void write_wall_text(PHYSFS_File *my_file)
|
||||||
{
|
{
|
||||||
int i, j;
|
int j;
|
||||||
array<int8_t, MAX_WALLS> wall_flags;
|
array<int8_t, MAX_WALLS> wall_flags;
|
||||||
|
|
||||||
PHYSFSX_printf(my_file, "-----------------------------------------------------------------------------\n");
|
PHYSFSX_printf(my_file, "-----------------------------------------------------------------------------\n");
|
||||||
PHYSFSX_printf(my_file, "Walls:\n");
|
PHYSFSX_printf(my_file, "Walls:\n");
|
||||||
for (i=0; i<Num_walls; i++) {
|
range_for (auto &&wp, vcwallptridx)
|
||||||
|
{
|
||||||
|
auto &w = *wp;
|
||||||
int sidenum;
|
int sidenum;
|
||||||
|
|
||||||
|
const auto i = static_cast<wallnum_t>(wp);
|
||||||
PHYSFSX_printf(my_file, "Wall %03i: seg=%3i, side=%2i, linked_wall=%3i, type=%s, flags=%4x, hps=%3i, trigger=%2i, clip_num=%2i, keys=%2i, state=%i\n", i,
|
PHYSFSX_printf(my_file, "Wall %03i: seg=%3i, side=%2i, linked_wall=%3i, type=%s, flags=%4x, hps=%3i, trigger=%2i, clip_num=%2i, keys=%2i, state=%i\n", i,
|
||||||
Walls[i].segnum, Walls[i].sidenum, Walls[i].linked_wall, Wall_names[Walls[i].type], Walls[i].flags, Walls[i].hps >> 16, Walls[i].trigger, Walls[i].clip_num, Walls[i].keys, Walls[i].state);
|
w.segnum, w.sidenum, w.linked_wall, Wall_names[w.type], w.flags, w.hps >> 16, w.trigger, w.clip_num, w.keys, w.state);
|
||||||
|
|
||||||
#if defined(DXX_BUILD_DESCENT_II)
|
#if defined(DXX_BUILD_DESCENT_II)
|
||||||
if (Walls[i].trigger >= Num_triggers)
|
if (w.trigger >= Num_triggers)
|
||||||
PHYSFSX_printf(my_file, "Wall %03d points to invalid trigger %d\n",i,Walls[i].trigger);
|
PHYSFSX_printf(my_file, "Wall %03d points to invalid trigger %d\n",i,w.trigger);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
auto segnum = Walls[i].segnum;
|
auto segnum = w.segnum;
|
||||||
sidenum = Walls[i].sidenum;
|
sidenum = w.sidenum;
|
||||||
|
|
||||||
if (Segments[segnum].sides[sidenum].wall_num != i)
|
if (Segments[segnum].sides[sidenum].wall_num != wp)
|
||||||
err_printf(my_file, "Error: Wall %i points at segment %i, side %i, but that segment doesn't point back (it's wall_num = %hi)", i, segnum, sidenum, static_cast<int16_t>(Segments[segnum].sides[sidenum].wall_num));
|
err_printf(my_file, "Error: Wall %u points at segment %i, side %i, but that segment doesn't point back (it's wall_num = %hi)", i, segnum, sidenum, static_cast<int16_t>(Segments[segnum].sides[sidenum].wall_num));
|
||||||
}
|
}
|
||||||
|
|
||||||
wall_flags = {};
|
wall_flags = {};
|
||||||
|
|
||||||
range_for (const auto &&segp, vcsegptr)
|
range_for (const auto &&segp, vcsegptridx)
|
||||||
{
|
{
|
||||||
for (j=0; j<MAX_SIDES_PER_SEGMENT; j++) {
|
for (j=0; j<MAX_SIDES_PER_SEGMENT; j++) {
|
||||||
const auto sidep = &segp->sides[j];
|
const auto sidep = &segp->sides[j];
|
||||||
if (sidep->wall_num != wall_none)
|
if (sidep->wall_num != wall_none)
|
||||||
{
|
{
|
||||||
if (wall_flags[sidep->wall_num])
|
if (wall_flags[sidep->wall_num])
|
||||||
err_printf(my_file, "Error: Wall %hu appears in two or more segments, including segment %hu, side %i.", static_cast<int16_t>(sidep->wall_num), static_cast<int16_t>(i), j);
|
err_printf(my_file, "Error: Wall %hu appears in two or more segments, including segment %hu, side %i.", static_cast<int16_t>(sidep->wall_num), static_cast<segnum_t>(segp), j);
|
||||||
else
|
else
|
||||||
wall_flags[sidep->wall_num] = 1;
|
wall_flags[sidep->wall_num] = 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue