mirror of
https://github.com/ZDoom/gzdoom-last-svn.git
synced 2025-05-30 17:00:48 +00:00
Removed unneeded includes of r_local.h. Removed more r_ header dependencies from the rest of the code. took all includes of farchive.h out of headers. This file will have to be included explicitly in each source file that needs it. Changed AlterWeaponSprite so that it doesn't take a full vissprite as parameter. FCoverageBuffer is only used in r_things.cpp, so its declaration does not need to be in a global header that's included everywhere. git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1223 b0f79afe-0144-0410-b225-9a4edf0717df
97 lines
2.8 KiB
C++
97 lines
2.8 KiB
C++
// Emacs style mode select -*- C++ -*-
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
// $Id:$
|
|
//
|
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
|
//
|
|
// This source is available for distribution and/or modification
|
|
// only under the terms of the DOOM Source Code License as
|
|
// published by id Software. All rights reserved.
|
|
//
|
|
// The source is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
|
|
// for more details.
|
|
//
|
|
// DESCRIPTION:
|
|
// Refresh module, BSP traversal and handling.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
#ifndef __R_BSP__
|
|
#define __R_BSP__
|
|
|
|
#include "tarray.h"
|
|
#include <stddef.h>
|
|
|
|
enum
|
|
{
|
|
FAKED_Center,
|
|
FAKED_BelowFloor,
|
|
FAKED_AboveCeiling
|
|
};
|
|
|
|
|
|
struct drawseg_t
|
|
{
|
|
seg_t* curline;
|
|
fixed_t light, lightstep;
|
|
fixed_t iscale, iscalestep;
|
|
short x1, x2; // Same as sx1 and sx2, but clipped to the drawseg
|
|
short sx1, sx2; // left, right of parent seg on screen
|
|
fixed_t sz1, sz2; // z for left, right of parent seg on screen
|
|
fixed_t siz1, siz2; // 1/z for left, right of parent seg on screen
|
|
fixed_t cx, cy, cdx, cdy;
|
|
fixed_t yrepeat;
|
|
BYTE silhouette; // 0=none, 1=bottom, 2=top, 3=both
|
|
BYTE bFogBoundary;
|
|
BYTE bFakeBoundary; // for fake walls
|
|
int shade;
|
|
// Pointers to lists for sprite clipping,
|
|
// all three adjusted so [x1] is first value.
|
|
ptrdiff_t sprtopclip; // type short
|
|
ptrdiff_t sprbottomclip; // type short
|
|
ptrdiff_t maskedtexturecol; // type short
|
|
ptrdiff_t swall; // type fixed_t
|
|
int fake; // ident fake drawseg, don't draw and clip sprites
|
|
// backups
|
|
ptrdiff_t bkup; // sprtopclip backup, for mid and fake textures
|
|
float WallUoverZorg, WallUoverZstep, WallInvZorg, WallInvZstep, WallDepthScale, WallDepthOrg;
|
|
};
|
|
|
|
|
|
extern seg_t* curline;
|
|
extern side_t* sidedef;
|
|
extern line_t* linedef;
|
|
extern sector_t* frontsector;
|
|
extern sector_t* backsector;
|
|
|
|
extern drawseg_t *drawsegs;
|
|
extern drawseg_t *firstdrawseg;
|
|
extern drawseg_t* ds_p;
|
|
|
|
extern TArray<size_t> InterestingDrawsegs; // drawsegs that have something drawn on them
|
|
extern size_t FirstInterestingDrawseg;
|
|
|
|
extern int WindowLeft, WindowRight;
|
|
extern WORD MirrorFlags;
|
|
extern seg_t* ActiveWallMirror;
|
|
|
|
extern TArray<size_t> WallMirrors;
|
|
|
|
typedef void (*drawfunc_t) (int start, int stop);
|
|
|
|
EXTERN_CVAR (Bool, r_drawflat) // [RH] Don't texture segs?
|
|
|
|
// BSP?
|
|
void R_ClearClipSegs (short left, short right);
|
|
void R_ClearDrawSegs ();
|
|
void R_RenderBSPNode (void *node);
|
|
|
|
// killough 4/13/98: fake floors/ceilings for deep water / fake ceilings:
|
|
sector_t *R_FakeFlat(sector_t *, sector_t *, int *, int *, bool);
|
|
|
|
|
|
#endif
|