forked from len0rd/rockbox
		
	git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9312 a1c6a512-1295-4272-9138-f99709370657
		
			
				
	
	
		
			91 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* Emacs style mode select   -*- C++ -*-
 | |
|  *-----------------------------------------------------------------------------
 | |
|  *
 | |
|  *
 | |
|  *  PrBoom a Doom port merged with LxDoom and LSDLDoom
 | |
|  *  based on BOOM, a modified and improved DOOM engine
 | |
|  *  Copyright (C) 1999 by
 | |
|  *  id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman
 | |
|  *  Copyright (C) 1999-2000 by
 | |
|  *  Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze
 | |
|  *
 | |
|  *  This program 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.
 | |
|  *
 | |
|  *  This program 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 this program; if not, write to the Free Software
 | |
|  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 | |
|  *  02111-1307, USA.
 | |
|  *
 | |
|  * DESCRIPTION:
 | |
|  *      Map utility functions
 | |
|  *
 | |
|  *-----------------------------------------------------------------------------*/
 | |
| 
 | |
| #ifndef __P_MAPUTL__
 | |
| #define __P_MAPUTL__
 | |
| 
 | |
| #include "r_defs.h"
 | |
| 
 | |
| /* mapblocks are used to check movement against lines and things */
 | |
| #define MAPBLOCKUNITS   128
 | |
| #define MAPBLOCKSIZE    (MAPBLOCKUNITS*FRACUNIT)
 | |
| #define MAPBLOCKSHIFT   (FRACBITS+7)
 | |
| #define MAPBMASK        (MAPBLOCKSIZE-1)
 | |
| #define MAPBTOFRAC      (MAPBLOCKSHIFT-FRACBITS)
 | |
| 
 | |
| #define PT_ADDLINES     1
 | |
| #define PT_ADDTHINGS    2
 | |
| #define PT_EARLYOUT     4
 | |
| 
 | |
| typedef struct {
 | |
|    fixed_t     x;
 | |
|    fixed_t     y;
 | |
|    fixed_t     dx;
 | |
|    fixed_t     dy;
 | |
| } divline_t;
 | |
| 
 | |
| typedef struct {
 | |
|    fixed_t     frac;           /* along trace line */
 | |
|    boolean     isaline;
 | |
|    union {
 | |
|       mobj_t* thing;
 | |
|       line_t* line;
 | |
|    } d;
 | |
| } intercept_t;
 | |
| 
 | |
| typedef boolean (*traverser_t)(intercept_t *in);
 | |
| 
 | |
| #define CONSTFUNC
 | |
| 
 | |
| fixed_t CONSTFUNC P_AproxDistance (fixed_t dx, fixed_t dy);
 | |
| int     CONSTFUNC P_PointOnLineSide (fixed_t x, fixed_t y, const line_t *line);
 | |
| int     CONSTFUNC P_PointOnDivlineSide (fixed_t x, fixed_t y,
 | |
|                                         const divline_t *line);
 | |
| int     CONSTFUNC P_BoxOnLineSide (const fixed_t *tmbox, const line_t *ld);
 | |
| fixed_t CONSTFUNC P_InterceptVector (const divline_t *v2, const divline_t *v1);
 | |
| 
 | |
| void    P_MakeDivline (const line_t *li, divline_t *dl);
 | |
| void    P_LineOpening (const line_t *linedef);
 | |
| void    P_UnsetThingPosition(mobj_t *thing);
 | |
| void    P_SetThingPosition(mobj_t *thing);
 | |
| boolean P_BlockLinesIterator (int x, int y, boolean func(line_t *));
 | |
| boolean P_BlockThingsIterator(int x, int y, boolean func(mobj_t *));
 | |
| boolean CONSTFUNC ThingIsOnLine(const mobj_t *t, const line_t *l);  /* killough 3/15/98 */
 | |
| boolean P_PathTraverse(fixed_t x1, fixed_t y1, fixed_t x2, fixed_t y2,
 | |
|                        int flags, boolean trav(intercept_t *));
 | |
| 
 | |
| extern fixed_t opentop;
 | |
| extern fixed_t openbottom;
 | |
| extern fixed_t openrange;
 | |
| extern fixed_t lowfloor;
 | |
| extern divline_t trace;
 | |
| 
 | |
| #endif  /* __P_MAPUTL__ */
 |