2014-03-15 16:59:03 +00:00
|
|
|
// SONIC ROBO BLAST 2
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
|
|
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
2018-11-25 12:35:38 +00:00
|
|
|
// Copyright (C) 1999-2018 by Sonic Team Junior.
|
2014-03-15 16:59:03 +00:00
|
|
|
//
|
|
|
|
// This program is free software distributed under the
|
|
|
|
// terms of the GNU General Public License, version 2.
|
|
|
|
// See the 'LICENSE' file for more details.
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
/// \file r_bsp.h
|
|
|
|
/// \brief Refresh module, BSP traversal and handling
|
|
|
|
|
|
|
|
#ifndef __R_BSP__
|
|
|
|
#define __R_BSP__
|
|
|
|
|
|
|
|
#ifdef __GNUG__
|
|
|
|
#pragma interface
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern seg_t *curline;
|
|
|
|
extern side_t *sidedef;
|
|
|
|
extern line_t *linedef;
|
|
|
|
extern sector_t *frontsector;
|
|
|
|
extern sector_t *backsector;
|
2016-07-06 04:09:17 +00:00
|
|
|
extern boolean portalline; // is curline a portal seg?
|
2014-03-15 16:59:03 +00:00
|
|
|
|
|
|
|
// drawsegs are allocated on the fly... see r_segs.c
|
|
|
|
|
|
|
|
extern INT32 checkcoord[12][4];
|
|
|
|
|
|
|
|
extern drawseg_t *drawsegs;
|
|
|
|
extern drawseg_t *ds_p;
|
|
|
|
extern INT32 doorclosed;
|
|
|
|
|
|
|
|
// BSP?
|
|
|
|
void R_ClearClipSegs(void);
|
2014-11-12 00:55:07 +00:00
|
|
|
void R_PortalClearClipSegs(INT32 start, INT32 end);
|
2014-03-15 16:59:03 +00:00
|
|
|
void R_ClearDrawSegs(void);
|
2019-04-18 07:08:11 +00:00
|
|
|
void R_RenderBSPNode(INT32 bspnum);
|
2014-11-12 00:55:07 +00:00
|
|
|
void R_AddPortal(INT32 line1, INT32 line2, INT32 x1, INT32 x2);
|
2014-03-15 16:59:03 +00:00
|
|
|
|
2019-06-14 10:18:44 +00:00
|
|
|
// determines when a given sector shouldn't abide by the encoremap's palette.
|
|
|
|
// no longer a static since this is used for encore in hw_main.c as well now:
|
|
|
|
boolean R_NoEncore(sector_t *sector, boolean ceiling);
|
|
|
|
|
2014-03-15 16:59:03 +00:00
|
|
|
#ifdef POLYOBJECTS
|
|
|
|
void R_SortPolyObjects(subsector_t *sub);
|
|
|
|
|
|
|
|
extern size_t numpolys; // number of polyobjects in current subsector
|
|
|
|
extern size_t num_po_ptrs; // number of polyobject pointers allocated
|
|
|
|
extern polyobj_t **po_ptrs; // temp ptr array to sort polyobject pointers
|
|
|
|
#endif
|
|
|
|
|
|
|
|
sector_t *R_FakeFlat(sector_t *sec, sector_t *tempsec, INT32 *floorlightlevel,
|
|
|
|
INT32 *ceilinglightlevel, boolean back);
|
2017-01-10 20:07:02 +00:00
|
|
|
boolean R_IsEmptyLine(seg_t *line, sector_t *front, sector_t *back);
|
2014-03-15 16:59:03 +00:00
|
|
|
|
|
|
|
INT32 R_GetPlaneLight(sector_t *sector, fixed_t planeheight, boolean underside);
|
|
|
|
void R_Prep3DFloors(sector_t *sector);
|
|
|
|
#endif
|