]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - tools/quake2/q2map/qbsp.h
uncrustify! now the code is only ugly on the *inside*
[xonotic/netradiant.git] / tools / quake2 / q2map / qbsp.h
index 1ba1b75d4ab6028b32c91b261eb978c0447be18b..bd55ba40262edfa9aba96bc60e4e1148bc0155e9 100644 (file)
@@ -1,42 +1,42 @@
 /*
-Copyright (C) 1999-2007 id Software, Inc. and contributors.
-For a list of contributors, see the accompanying CONTRIBUTORS file.
+   Copyright (C) 1999-2007 id Software, Inc. and contributors.
+   For a list of contributors, see the accompanying CONTRIBUTORS file.
 
-This file is part of GtkRadiant.
+   This file is part of GtkRadiant.
 
-GtkRadiant is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   GtkRadiant is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-GtkRadiant is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   GtkRadiant is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with GtkRadiant; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+   You should have received a copy of the GNU General Public License
+   along with GtkRadiant; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
 
 /* Files:
 
-brushbsp.c
-csg.c
-faces.c
-gldraw.c
-glfile.c
-leakfile.c
-map.c
-nodraw.c
-portals.c
-prtfile.c
-qbsp3.c
-textures.c
-tree.c
-writebsp.c
-
-*/
+   brushbsp.c
+   csg.c
+   faces.c
+   gldraw.c
+   glfile.c
+   leakfile.c
+   map.c
+   nodraw.c
+   portals.c
+   prtfile.c
+   qbsp3.c
+   textures.c
+   tree.c
+   writebsp.c
+
+ */
 
 #include "cmdlib.h"
 #include "mathlib.h"
@@ -47,181 +47,181 @@ writebsp.c
 #include "inout.h"
 
 #ifdef WIN32
-       #ifdef NDEBUG                                                   // Don't show in a Release build
+       #ifdef NDEBUG                           // Don't show in a Release build
                #pragma warning(disable : 4305)     // truncate from double to float
                #pragma warning(disable : 4244)     // conversion from double to float
                #pragma warning(disable : 4018)     // signed/unsigned mismatch
        #endif
 #endif
 
-#define        MAX_BRUSH_SIDES 128
-#define        CLIP_EPSILON    0.1
+#define MAX_BRUSH_SIDES 128
+#define CLIP_EPSILON    0.1
 
-#define        BOGUS_RANGE     8192
+#define BOGUS_RANGE 8192
 
-#define        TEXINFO_NODE            -1              // side is allready on a node
+#define TEXINFO_NODE        -1      // side is allready on a node
 
 typedef struct plane_s
 {
-       vec3_t  normal;
-       vec_t   dist;
-       int             type;
-       struct plane_s  *hash_chain;
+       vec3_t normal;
+       vec_t dist;
+       int type;
+       struct plane_s  *hash_chain;
 } plane_t;
 
 typedef struct
 {
-       vec_t   shift[2];
-       vec_t   rotate;
-       vec_t   scale[2];
-       char    name[32];
-       int             flags;
-       int             value;
+       vec_t shift[2];
+       vec_t rotate;
+       vec_t scale[2];
+       char name[32];
+       int flags;
+       int value;
 } brush_texture_t;
 
 typedef struct side_s
 {
-       int                     planenum;
-       int                     texinfo;
-       winding_t       *winding;
-       struct side_s   *original;      // bspbrush_t sides will reference the mapbrush_t sides
-       int                     contents;               // from miptex
-       int                     surf;                   // from miptex
-       qboolean        visible;                // choose visble planes first
-       qboolean        tested;                 // this plane allready checked as a split
-       qboolean        bevel;                  // don't ever use for bsp splitting
+       int planenum;
+       int texinfo;
+       winding_t   *winding;
+       struct side_s   *original;  // bspbrush_t sides will reference the mapbrush_t sides
+       int contents;               // from miptex
+       int surf;                   // from miptex
+       qboolean visible;           // choose visble planes first
+       qboolean tested;            // this plane allready checked as a split
+       qboolean bevel;             // don't ever use for bsp splitting
 } side_t;
 
 typedef struct brush_s
 {
-       int             entitynum;
-       int             brushnum;
+       int entitynum;
+       int brushnum;
 
-       int             contents;
+       int contents;
 
-       vec3_t  mins, maxs;
+       vec3_t mins, maxs;
 
-       int             numsides;
-       side_t  *original_sides;
+       int numsides;
+       side_t  *original_sides;
 } mapbrush_t;
 
-#define        PLANENUM_LEAF                   -1
+#define PLANENUM_LEAF           -1
 
-#define        MAXEDGES                20
+#define MAXEDGES        20
 
 typedef struct face_s
 {
-       struct face_s   *next;          // on node
+       struct face_s   *next;      // on node
 
        // the chain of faces off of a node can be merged or split,
        // but each face_t along the way will remain in the chain
        // until the entire tree is freed
-       struct face_s   *merged;        // if set, this face isn't valid anymore
-       struct face_s   *split[2];      // if set, this face isn't valid anymore
-
-       struct portal_s *portal;
-       int                             texinfo;
-       int                             planenum;
-       int                             contents;       // faces in different contents can't merge
-       int                             outputnumber;
-       winding_t               *w;
-       int                             numpoints;
-       qboolean                badstartvert;   // tjunctions cannot be fixed without a midpoint vertex
-       int                             vertexnums[MAXEDGES];
+       struct face_s   *merged;    // if set, this face isn't valid anymore
+       struct face_s   *split[2];  // if set, this face isn't valid anymore
+
+       struct portal_s *portal;
+       int texinfo;
+       int planenum;
+       int contents;               // faces in different contents can't merge
+       int outputnumber;
+       winding_t       *w;
+       int numpoints;
+       qboolean badstartvert;          // tjunctions cannot be fixed without a midpoint vertex
+       int vertexnums[MAXEDGES];
 } face_t;
 
 
 
 typedef struct bspbrush_s
 {
-       struct bspbrush_s       *next;
-       vec3_t  mins, maxs;
-       int             side, testside;         // side of node during construction
-       mapbrush_t      *original;
-       int             numsides;
-       side_t  sides[6];                       // variably sized
+       struct bspbrush_s   *next;
+       vec3_t mins, maxs;
+       int side, testside;         // side of node during construction
+       mapbrush_t  *original;
+       int numsides;
+       side_t sides[6];            // variably sized
 } bspbrush_t;
 
 
 
-#define        MAX_NODE_BRUSHES        8
+#define MAX_NODE_BRUSHES    8
 typedef struct node_s
 {
        // both leafs and nodes
-       int                             planenum;       // -1 = leaf node
-       struct node_s   *parent;
-       vec3_t                  mins, maxs;     // valid after portalization
-       bspbrush_t              *volume;        // one for each leaf/node
+       int planenum;               // -1 = leaf node
+       struct node_s   *parent;
+       vec3_t mins, maxs;          // valid after portalization
+       bspbrush_t      *volume;    // one for each leaf/node
 
        // nodes only
-       qboolean                detail_seperator;       // a detail brush caused the split
-       side_t                  *side;          // the side that created the node
-       struct node_s   *children[2];
-       face_t                  *faces;
+       qboolean detail_seperator;          // a detail brush caused the split
+       side_t          *side;      // the side that created the node
+       struct node_s   *children[2];
+       face_t          *faces;
 
        // leafs only
-       bspbrush_t              *brushlist;     // fragments of all brushes in this leaf
-       int                             contents;       // OR of all brush contents
-       int                             occupied;       // 1 or greater can reach entity
-       entity_t                *occupant;      // for leak file testing
-       int                             cluster;        // for portalfile writing
-       int                             area;           // for areaportals
-       struct portal_s *portals;       // also on nodes during construction
+       bspbrush_t      *brushlist; // fragments of all brushes in this leaf
+       int contents;               // OR of all brush contents
+       int occupied;               // 1 or greater can reach entity
+       entity_t        *occupant;  // for leak file testing
+       int cluster;                // for portalfile writing
+       int area;                   // for areaportals
+       struct portal_s *portals;   // also on nodes during construction
 } node_t;
 
 typedef struct portal_s
 {
-       plane_t         plane;
-       node_t          *onnode;                // NULL = outside box
-       node_t          *nodes[2];              // [0] = front side of plane
-       struct portal_s *next[2];
-       winding_t       *winding;
-
-       qboolean        sidefound;              // false if ->side hasn't been checked
-       side_t          *side;                  // NULL = non-visible
-       face_t          *face[2];               // output face in bsp file
+       plane_t plane;
+       node_t      *onnode;        // NULL = outside box
+       node_t      *nodes[2];      // [0] = front side of plane
+       struct portal_s *next[2];
+       winding_t   *winding;
+
+       qboolean sidefound;         // false if ->side hasn't been checked
+       side_t      *side;          // NULL = non-visible
+       face_t      *face[2];       // output face in bsp file
 } portal_t;
 
 typedef struct
 {
-       node_t          *headnode;
-       node_t          outside_node;
-       vec3_t          mins, maxs;
+       node_t      *headnode;
+       node_t outside_node;
+       vec3_t mins, maxs;
 } tree_t;
 
-extern int                     entity_num;
+extern int entity_num;
 
-extern plane_t         mapplanes[MAX_MAP_PLANES];
-extern int                     nummapplanes;
+extern plane_t mapplanes[MAX_MAP_PLANES];
+extern int nummapplanes;
 
-extern int                     nummapbrushes;
-extern mapbrush_t      mapbrushes[MAX_MAP_BRUSHES];
+extern int nummapbrushes;
+extern mapbrush_t mapbrushes[MAX_MAP_BRUSHES];
 
-extern vec3_t          map_mins, map_maxs;
+extern vec3_t map_mins, map_maxs;
 
-#define        MAX_MAP_SIDES           (MAX_MAP_BRUSHES*6)
+#define MAX_MAP_SIDES       ( MAX_MAP_BRUSHES * 6 )
 
-extern int                     nummapbrushsides;
-extern side_t          brushsides[MAX_MAP_SIDES];
+extern int nummapbrushsides;
+extern side_t brushsides[MAX_MAP_SIDES];
 
-extern qboolean        noprune;
-extern qboolean        nodetail;
-extern qboolean        fulldetail;
-extern qboolean        nomerge;
-extern qboolean        nosubdiv;
-extern qboolean        nowater;
-extern qboolean        noweld;
-extern qboolean        noshare;
-extern qboolean        notjunc;
+extern qboolean noprune;
+extern qboolean nodetail;
+extern qboolean fulldetail;
+extern qboolean nomerge;
+extern qboolean nosubdiv;
+extern qboolean nowater;
+extern qboolean noweld;
+extern qboolean noshare;
+extern qboolean notjunc;
 
-extern vec_t           microvolume;
+extern vec_t microvolume;
 
-extern char            outbase[32];
+extern char outbase[32];
 
-extern char    source[1024];
+extern char source[1024];
 
-void   LoadMapFile (char *filename);
-int            FindFloatPlane (vec3_t normal, vec_t dist);
+void    LoadMapFile( char *filename );
+int     FindFloatPlane( vec3_t normal, vec_t dist );
 
 //=============================================================================
 
@@ -229,162 +229,162 @@ int             FindFloatPlane (vec3_t normal, vec_t dist);
 
 typedef struct
 {
-       char    name[64];
-       int             flags;
-       int             value;
-       int             contents;
-       char    animname[64];
+       char name[64];
+       int flags;
+       int value;
+       int contents;
+       char animname[64];
 } textureref_t;
 
-#define        MAX_MAP_TEXTURES        1024
+#define MAX_MAP_TEXTURES    1024
 
-extern textureref_t    textureref[MAX_MAP_TEXTURES];
+extern textureref_t textureref[MAX_MAP_TEXTURES];
 
-int    FindMiptex (char *name);
+int FindMiptex( char *name );
 
-int TexinfoForBrushTexture (plane_t *plane, brush_texture_t *bt, vec3_t origin);
+int TexinfoForBrushTexture( plane_t *plane, brush_texture_t *bt, vec3_t origin );
 
 //=============================================================================
 
-void FindGCD (int *v);
+void FindGCD( int *v );
 
-mapbrush_t *Brush_LoadEntity (entity_t *ent);
-int    PlaneTypeForNormal (vec3_t normal);
-qboolean MakeBrushPlanes (mapbrush_t *b);
-int            FindIntPlane (int *inormal, int *iorigin);
-void   CreateBrush (int brushnum);
+mapbrush_t *Brush_LoadEntity( entity_t *ent );
+int PlaneTypeForNormal( vec3_t normal );
+qboolean MakeBrushPlanes( mapbrush_t *b );
+int     FindIntPlane( int *inormal, int *iorigin );
+void    CreateBrush( int brushnum );
 
 
 //=============================================================================
 
 // draw.c
 
-extern vec3_t  draw_mins, draw_maxs;
-extern qboolean        drawflag;
+extern vec3_t draw_mins, draw_maxs;
+extern qboolean drawflag;
 
-void Draw_ClearWindow (void);
-void DrawWinding (winding_t *w);
+void Draw_ClearWindow( void );
+void DrawWinding( winding_t *w );
 
-void GLS_BeginScene (void);
-void GLS_Winding (winding_t *w, int code);
-void GLS_EndScene (void);
+void GLS_BeginScene( void );
+void GLS_Winding( winding_t *w, int code );
+void GLS_EndScene( void );
 
 //=============================================================================
 
 // csg
 
-bspbrush_t *MakeBspBrushList (int startbrush, int endbrush,
-               vec3_t clipmins, vec3_t clipmaxs);
-bspbrush_t *ChopBrushes (bspbrush_t *head);
-bspbrush_t *InitialBrushList (bspbrush_t *list);
-bspbrush_t *OptimizedBrushList (bspbrush_t *list);
+bspbrush_t *MakeBspBrushListint startbrush, int endbrush,
+                                                         vec3_t clipmins, vec3_t clipmaxs );
+bspbrush_t *ChopBrushes( bspbrush_t *head );
+bspbrush_t *InitialBrushList( bspbrush_t *list );
+bspbrush_t *OptimizedBrushList( bspbrush_t *list );
 
-void WriteBrushMap (char *name, bspbrush_t *list);
+void WriteBrushMap( char *name, bspbrush_t *list );
 
 //=============================================================================
 
 // brushbsp
 
-void WriteBrushList (char *name, bspbrush_t *brush, qboolean onlyvis);
+void WriteBrushList( char *name, bspbrush_t *brush, qboolean onlyvis );
 
-bspbrush_t *CopyBrush (bspbrush_t *brush);
+bspbrush_t *CopyBrush( bspbrush_t *brush );
 
-void SplitBrush (bspbrush_t *brush, int planenum,
-       bspbrush_t **front, bspbrush_t **back);
+void SplitBrushbspbrush_t *brush, int planenum,
+                                bspbrush_t **front, bspbrush_t **back );
 
-tree_t *AllocTree (void);
-node_t *AllocNode (void);
-bspbrush_t *AllocBrush (int numsides);
-int    CountBrushList (bspbrush_t *brushes);
-void FreeBrush (bspbrush_t *brushes);
-vec_t BrushVolume (bspbrush_t *brush);
+tree_t *AllocTree( void );
+node_t *AllocNode( void );
+bspbrush_t *AllocBrush( int numsides );
+int CountBrushList( bspbrush_t *brushes );
+void FreeBrush( bspbrush_t *brushes );
+vec_t BrushVolume( bspbrush_t *brush );
 
-void BoundBrush (bspbrush_t *brush);
-void FreeBrushList (bspbrush_t *brushes);
+void BoundBrush( bspbrush_t *brush );
+void FreeBrushList( bspbrush_t *brushes );
 
-tree_t *BrushBSP (bspbrush_t *brushlist, vec3_t mins, vec3_t maxs);
+tree_t *BrushBSP( bspbrush_t *brushlist, vec3_t mins, vec3_t maxs );
 
 //=============================================================================
 
 // portals.c
 
-int VisibleContents (int contents);
+int VisibleContents( int contents );
 
-void MakeHeadnodePortals (tree_t *tree);
-void MakeNodePortal (node_t *node);
-void SplitNodePortals (node_t *node);
+void MakeHeadnodePortals( tree_t *tree );
+void MakeNodePortal( node_t *node );
+void SplitNodePortals( node_t *node );
 
-qboolean       Portal_VisFlood (portal_t *p);
+qboolean    Portal_VisFlood( portal_t *p );
 
-qboolean FloodEntities (tree_t *tree);
-void FillOutside (node_t *headnode);
-void FloodAreas (tree_t *tree);
-void MarkVisibleSides (tree_t *tree, int start, int end);
-void FreePortal (portal_t *p);
-void EmitAreaPortals (node_t *headnode);
+qboolean FloodEntities( tree_t *tree );
+void FillOutside( node_t *headnode );
+void FloodAreas( tree_t *tree );
+void MarkVisibleSides( tree_t *tree, int start, int end );
+void FreePortal( portal_t *p );
+void EmitAreaPortals( node_t *headnode );
 
-void MakeTreePortals (tree_t *tree);
+void MakeTreePortals( tree_t *tree );
 
 //=============================================================================
 
 // glfile.c
 
-void OutputWinding (winding_t *w, FILE *glview);
-void WriteGLView (tree_t *tree, char *source);
+void OutputWinding( winding_t *w, FILE *glview );
+void WriteGLView( tree_t *tree, char *source );
 
 //=============================================================================
 
 // leakfile.c
 
 //void LeakFile (tree_t *tree);
-xmlNodePtr LeakFile (tree_t *tree);
+xmlNodePtr LeakFile( tree_t *tree );
 
 //=============================================================================
 
 // prtfile.c
 
-void WritePortalFile (tree_t *tree);
+void WritePortalFile( tree_t *tree );
 
 //=============================================================================
 
 // writebsp.c
 
-void SetModelNumbers (void);
-void SetLightStyles (void);
+void SetModelNumbers( void );
+void SetLightStyles( void );
 
-void BeginBSPFile (void);
-void WriteBSP (node_t *headnode);
-void EndBSPFile (void);
-void BeginModel (void);
-void EndModel (void);
+void BeginBSPFile( void );
+void WriteBSP( node_t *headnode );
+void EndBSPFile( void );
+void BeginModel( void );
+void EndModel( void );
 
 //=============================================================================
 
 // faces.c
 
-void MakeFaces (node_t *headnode);
-void FixTjuncs (node_t *headnode);
-int GetEdge2 (int v1, int v2,  face_t *f);
+void MakeFaces( node_t *headnode );
+void FixTjuncs( node_t *headnode );
+int GetEdge2( int v1, int v2,  face_t *f );
 
-face_t *AllocFace (void);
-void FreeFace (face_t *f);
+face_t  *AllocFace( void );
+void FreeFace( face_t *f );
 
-void MergeNodeFaces (node_t *node);
+void MergeNodeFaces( node_t *node );
 
 //=============================================================================
 
 // tree.c
 
-void FreeTree (tree_t *tree);
-void FreeTree_r (node_t *node);
-void PrintTree_r (node_t *node, int depth);
-void FreeTreePortals_r (node_t *node);
-void PruneNodes_r (node_t *node);
-void PruneNodes (node_t *node);
+void FreeTree( tree_t *tree );
+void FreeTree_r( node_t *node );
+void PrintTree_r( node_t *node, int depth );
+void FreeTreePortals_r( node_t *node );
+void PruneNodes_r( node_t *node );
+void PruneNodes( node_t *node );
 
 //=============================================================================
 
 // externs
 
-extern char    *mapname;
-extern char    game[64];
+extern char *mapname;
+extern char game[64];