home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 22 / PCPP #22.iso / Quake2 / q2source_12_11 / utils3 / common / bspfile.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-11-20  |  2.3 KB  |  109 lines

  1.  
  2. #include "qfiles.h"
  3.  
  4.  
  5. extern    int            nummodels;
  6. extern    dmodel_t    dmodels[MAX_MAP_MODELS];
  7.  
  8. extern    int            visdatasize;
  9. extern    byte        dvisdata[MAX_MAP_VISIBILITY];
  10. extern    dvis_t        *dvis;
  11.  
  12. extern    int            lightdatasize;
  13. extern    byte        dlightdata[MAX_MAP_LIGHTING];
  14.  
  15. extern    int            entdatasize;
  16. extern    char        dentdata[MAX_MAP_ENTSTRING];
  17.  
  18. extern    int            numleafs;
  19. extern    dleaf_t        dleafs[MAX_MAP_LEAFS];
  20.  
  21. extern    int            numplanes;
  22. extern    dplane_t    dplanes[MAX_MAP_PLANES];
  23.  
  24. extern    int            numvertexes;
  25. extern    dvertex_t    dvertexes[MAX_MAP_VERTS];
  26.  
  27. extern    int            numnodes;
  28. extern    dnode_t        dnodes[MAX_MAP_NODES];
  29.  
  30. extern    int            numtexinfo;
  31. extern    texinfo_t    texinfo[MAX_MAP_TEXINFO];
  32.  
  33. extern    int            numfaces;
  34. extern    dface_t        dfaces[MAX_MAP_FACES];
  35.  
  36. extern    int            numedges;
  37. extern    dedge_t        dedges[MAX_MAP_EDGES];
  38.  
  39. extern    int            numleaffaces;
  40. extern    unsigned short    dleaffaces[MAX_MAP_LEAFFACES];
  41.  
  42. extern    int            numleafbrushes;
  43. extern    unsigned short    dleafbrushes[MAX_MAP_LEAFBRUSHES];
  44.  
  45. extern    int            numsurfedges;
  46. extern    int            dsurfedges[MAX_MAP_SURFEDGES];
  47.  
  48. extern    int            numareas;
  49. extern    darea_t        dareas[MAX_MAP_AREAS];
  50.  
  51. extern    int            numareaportals;
  52. extern    dareaportal_t    dareaportals[MAX_MAP_AREAPORTALS];
  53.  
  54. extern    int            numbrushes;
  55. extern    dbrush_t    dbrushes[MAX_MAP_BRUSHES];
  56.  
  57. extern    int            numbrushsides;
  58. extern    dbrushside_t    dbrushsides[MAX_MAP_BRUSHSIDES];
  59.  
  60. extern    byte        dpop[256];
  61.  
  62. void DecompressVis (byte *in, byte *decompressed);
  63. int CompressVis (byte *vis, byte *dest);
  64.  
  65. void    LoadBSPFile (char *filename);
  66. void    LoadBSPFileTexinfo (char *filename);    // just for qdata
  67. void    WriteBSPFile (char *filename);
  68. void    PrintBSPFileSizes (void);
  69.  
  70. //===============
  71.  
  72.  
  73. typedef struct epair_s
  74. {
  75.     struct epair_s    *next;
  76.     char    *key;
  77.     char    *value;
  78. } epair_t;
  79.  
  80. typedef struct
  81. {
  82.     vec3_t        origin;
  83.     int            firstbrush;
  84.     int            numbrushes;
  85.     epair_t        *epairs;
  86.  
  87. // only valid for func_areaportals
  88.     int            areaportalnum;
  89.     int            portalareas[2];
  90. } entity_t;
  91.  
  92. extern    int            num_entities;
  93. extern    entity_t    entities[MAX_MAP_ENTITIES];
  94.  
  95. void    ParseEntities (void);
  96. void    UnparseEntities (void);
  97.  
  98. void     SetKeyValue (entity_t *ent, char *key, char *value);
  99. char     *ValueForKey (entity_t *ent, char *key);
  100. // will return "" if not present
  101.  
  102. vec_t    FloatForKey (entity_t *ent, char *key);
  103. void     GetVectorForKey (entity_t *ent, char *key, vec3_t vec);
  104.  
  105. epair_t *ParseEpair (void);
  106.  
  107. void PrintEntity (entity_t *ent);
  108.  
  109.