/* This module lists the directory of a wadfile to stdout. */ #include #include #include "doomdefs.h" #include "directory.h" #define ISMISSION(X) ( \ X[0] == 'E' && isdigit(X[1]) && X[2] == 'M' && isdigit(X[3]) && !X[4] \ ) int waddir(int fd) { dir_entry entry; if ( set_directory(fd) < 0 ) { fprintf(stderr, "Can't find the directory entries.\n"); return(-1); } while ( read(fd, (char *)&entry, ENTRY_SIZE) == ENTRY_SIZE ) { /* Null terminate the name */ entry.name[8]='\0'; /* Print it out, if it is a level... */ if ( ISMISSION(entry.name) ) printf("%s\n", entry.name); if ( strcasecmp(WADDIR_END, entry.name) == 0 ) break; } return(0); }