Use object helper to iterate over dumpmine segments

This commit is contained in:
Kp 2014-07-30 02:52:33 +00:00
parent dfce3e399c
commit 56d12300b9

View file

@ -62,6 +62,9 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#include "gamesave.h" #include "gamesave.h"
#include "piggy.h" #include "piggy.h"
#include "compiler-range_for.h"
#include "segiter.h"
#ifdef EDITOR #ifdef EDITOR
static void dump_used_textures_level(PHYSFS_file *my_file, int level_num); static void dump_used_textures_level(PHYSFS_file *my_file, int level_num);
static void say_totals(PHYSFS_file *my_file, const char *level_name); static void say_totals(PHYSFS_file *my_file, const char *level_name);
@ -349,7 +352,7 @@ static void write_key_text(PHYSFS_file *my_file)
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
static void write_control_center_text(PHYSFS_file *my_file) static void write_control_center_text(PHYSFS_file *my_file)
{ {
int i, count, objnum, count2; int i, count, count2;
PHYSFSX_printf(my_file, "-----------------------------------------------------------------------------\n"); PHYSFSX_printf(my_file, "-----------------------------------------------------------------------------\n");
PHYSFSX_printf(my_file, "Control Center stuff:\n"); PHYSFSX_printf(my_file, "Control Center stuff:\n");
@ -359,12 +362,11 @@ static void write_control_center_text(PHYSFS_file *my_file)
if (Segments[i].special == SEGMENT_IS_CONTROLCEN) { if (Segments[i].special == SEGMENT_IS_CONTROLCEN) {
count++; count++;
PHYSFSX_printf(my_file, "Segment %3i is a control center.\n", i); PHYSFSX_printf(my_file, "Segment %3i is a control center.\n", i);
objnum = Segments[i].objects;
count2 = 0; count2 = 0;
while (objnum != object_none) { range_for (auto objp, objects_in(Segments[i]))
if (Objects[objnum].type == OBJ_CNTRLCEN) {
if (objp->type == OBJ_CNTRLCEN)
count2++; count2++;
objnum = Objects[objnum].next;
} }
if (count2 == 0) if (count2 == 0)
PHYSFSX_printf(my_file, "No control center object in control center segment.\n"); PHYSFSX_printf(my_file, "No control center object in control center segment.\n");
@ -396,7 +398,7 @@ static void write_fuelcen_text(PHYSFS_file *my_file)
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
static void write_segment_text(PHYSFS_file *my_file) static void write_segment_text(PHYSFS_file *my_file)
{ {
int i, objnum; int i;
PHYSFSX_printf(my_file, "-----------------------------------------------------------------------------\n"); PHYSFSX_printf(my_file, "-----------------------------------------------------------------------------\n");
PHYSFSX_printf(my_file, "Segment stuff:\n"); PHYSFSX_printf(my_file, "Segment stuff:\n");
@ -416,20 +418,18 @@ static void write_segment_text(PHYSFS_file *my_file)
for (i=0; i<=Highest_segment_index; i++) { for (i=0; i<=Highest_segment_index; i++) {
int depth; int depth;
objnum = Segments[i].objects;
PHYSFSX_printf(my_file, "Segment %4i: ", i); PHYSFSX_printf(my_file, "Segment %4i: ", i);
depth=0; depth=0;
if (objnum != object_none) {
PHYSFSX_printf(my_file, "Objects: "); PHYSFSX_printf(my_file, "Objects: ");
while (objnum != object_none) { range_for (auto objp, objects_in(Segments[i]))
{
short objnum = objp;
PHYSFSX_printf(my_file, "[%8s %8s %3i] ", object_types(objnum), object_ids(objnum), objnum); PHYSFSX_printf(my_file, "[%8s %8s %3i] ", object_types(objnum), object_ids(objnum), objnum);
objnum = Objects[objnum].next;
if (depth++ > 30) { if (depth++ > 30) {
PHYSFSX_printf(my_file, "\nAborted after %i links\n", depth); PHYSFSX_printf(my_file, "\nAborted after %i links\n", depth);
break; break;
} }
} }
}
PHYSFSX_printf(my_file, "\n"); PHYSFSX_printf(my_file, "\n");
} }
} }