home *** CD-ROM | disk | FTP | other *** search
/ Doom Fever / Doom_Fever-1995_Maple_Media.iso / dmutil / doom_ps.zip / WAD.H < prev   
C/C++ Source or Header  |  1994-03-08  |  2KB  |  100 lines

  1. /*
  2.  * Doom PostScript map generator.
  3.  * Copyright James Bonfield, 3/3/94 
  4.  */
  5.  
  6. #ifndef _WAD_H_
  7. #define _WAD_H_
  8.  
  9. typedef int int4;
  10. typedef short int2;
  11.  
  12. struct wad_header {
  13.     int4 magic;
  14.     int4 dir_size;
  15.     int4 dir_off;
  16. };
  17.  
  18. struct directory {
  19.     int4 start;
  20.     int4 length;
  21.     char name[8];
  22. };
  23.  
  24. typedef struct linedef_ {
  25.     int2 from_vertex;
  26.     int2 to_vertex;
  27.     int2 attrib;
  28.     int2 type;
  29.     int2 trigger;
  30.     int2 sidedef1;
  31.     int2 sidedef2;
  32. } linedef;
  33.  
  34. /* linedef attrib bits */
  35. #define LI_IMPASS 0x01
  36. #define LI_SECRET 0x20
  37.  
  38. typedef struct vertex_ {
  39.     int2 x;
  40.     int2 y;
  41. } vertex;
  42.  
  43. typedef struct sidedef_ {
  44.     int2 x;
  45.     int2 y;
  46.     char wall_above[8];
  47.     char wall_below[8];
  48.     char wall_part[8];
  49.     int2 sector;
  50. } sidedef;
  51.  
  52. typedef struct ssector_ {
  53.     int2 num;
  54.     int2 seg;
  55. } ssector;
  56.  
  57. typedef struct sector_ {
  58.     int2 bot_pos;
  59.     int2 top_pos;
  60.     char bot_texture[8];
  61.     char top_texture[8];
  62.     int2 brightness;
  63.     int2 special;
  64.     int2 trigger;
  65. } sector;
  66.  
  67. typedef struct thing_ {
  68.     int2 x;
  69.     int2 y;
  70.     int2 angle;
  71.     int2 type;
  72.     int2 attrib;
  73. } thing;
  74.  
  75. /* thing 'type' bits */
  76. #define TH_SKILL1  0x01
  77. #define TH_SKILL2  0x01
  78. #define TH_SKILL3  0x02
  79. #define TH_SKILL4  0x04
  80. #define TH_MULTI   0x08
  81.  
  82. typedef int2 blockmap;
  83.  
  84. extern struct directory *open_wad(char *file, int *fd, int *size);
  85. extern int get_index(struct directory *d, int size, char *name, int st);
  86. extern linedef *read_linedefs(int fd, struct directory *d, int size,
  87.                   int start, int *num);
  88. extern vertex *read_vertexes(int fd, struct directory *d, int size,
  89.                  int start, int *num);
  90. extern blockmap *read_blockmap(int fd, struct directory *d, int size,
  91.                    int start, int *num);
  92. extern sidedef *read_sidedefs(int fd, struct directory *d, int size,
  93.                   int start, int *num);
  94. extern sector *read_sectors(int fd, struct directory *d, int size,
  95.                 int start, int *num);
  96. extern thing *read_things(int fd, struct directory *d, int size, int start,
  97.               int *num);
  98.  
  99. #endif
  100.