diff options
Diffstat (limited to 'q3map/vis.h')
-rw-r--r-- | q3map/vis.h | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/q3map/vis.h b/q3map/vis.h deleted file mode 100644 index 8eed728..0000000 --- a/q3map/vis.h +++ /dev/null @@ -1,162 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code 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. - -Quake III Arena source code 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 Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// vis.h - -#include "cmdlib.h" -#include "mathlib.h" -#include "bspfile.h" - -#define MAX_PORTALS 32768 - -#define PORTALFILE "PRT1" - -#define ON_EPSILON 0.1 - -//#define MREDEBUG - -// seperator caching helps a bit -#define SEPERATORCACHE - -// can't have more seperators than the max number of points on a winding -#define MAX_SEPERATORS 64 - -typedef struct -{ - vec3_t normal; - float dist; -} plane_t; - -#define MAX_POINTS_ON_WINDING 64 -#define MAX_POINTS_ON_FIXED_WINDING 12 - -typedef struct -{ - int numpoints; - vec3_t points[MAX_POINTS_ON_FIXED_WINDING]; // variable sized -} winding_t; - -winding_t *NewWinding (int points); -void FreeWinding (winding_t *w); -winding_t *CopyWinding (winding_t *w); - - -typedef struct passage_s -{ - struct passage_s *next; - byte cansee[1]; //all portals that can be seen through this passage -} passage_t; - -typedef enum {stat_none, stat_working, stat_done} vstatus_t; -typedef struct -{ - int num; - qboolean hint; // true if this portal was created from a hint splitter - qboolean removed; - plane_t plane; // normal pointing into neighbor - int leaf; // neighbor - - vec3_t origin; // for fast clip testing - float radius; - - winding_t *winding; - vstatus_t status; - byte *portalfront; // [portals], preliminary - byte *portalflood; // [portals], intermediate - byte *portalvis; // [portals], final - - int nummightsee; // bit count on portalflood for sort - passage_t *passages; // there are just as many passages as there - // are portals in the leaf this portal leads to -} vportal_t; - -#define MAX_PORTALS_ON_LEAF 128 -typedef struct leaf_s -{ - int numportals; - int merged; - vportal_t *portals[MAX_PORTALS_ON_LEAF]; -} leaf_t; - - -typedef struct pstack_s -{ - byte mightsee[MAX_PORTALS/8]; // bit string - struct pstack_s *next; - leaf_t *leaf; - vportal_t *portal; // portal exiting - winding_t *source; - winding_t *pass; - - winding_t windings[3]; // source, pass, temp in any order - int freewindings[3]; - - plane_t portalplane; - int depth; -#ifdef SEPERATORCACHE - plane_t seperators[2][MAX_SEPERATORS]; - int numseperators[2]; -#endif -} pstack_t; - -typedef struct -{ - vportal_t *base; - int c_chains; - pstack_t pstack_head; -} threaddata_t; - - - -extern int numportals; -extern int portalclusters; - -extern vportal_t *portals; -extern leaf_t *leafs; - -extern int c_portaltest, c_portalpass, c_portalcheck; -extern int c_portalskip, c_leafskip; -extern int c_vistest, c_mighttest; -extern int c_chains; - -extern byte *vismap, *vismap_p, *vismap_end; // past visfile - -extern int testlevel; - -extern byte *uncompressed; - -extern int leafbytes, leaflongs; -extern int portalbytes, portallongs; - - -void LeafFlow (int leafnum); - - -void BasePortalVis(int portalnum); -void BetterPortalVis(int portalnum); -void PortalFlow(int portalnum); -void PassagePortalFlow(int portalnum); -void CreatePassages(int portalnum); -void PassageFlow(int portalnum); - -extern vportal_t *sorted_portals[MAX_MAP_PORTALS*2]; - -int CountBits (byte *bits, int numbits); |