1 /* Emacs style mode select   -*- C++ -*-
2  *-----------------------------------------------------------------------------
3  *
4  *
5  *  PrBoom: a Doom port merged with LxDoom and LSDLDoom
6  *  based on BOOM, a modified and improved DOOM engine
7  *  Copyright (C) 1999 by
8  *  id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman
9  *  Copyright (C) 1999-2000 by
10  *  Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze
11  *  Copyright 2005, 2006 by
12  *  Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko
13  *
14  *  This program is free software; you can redistribute it and/or
15  *  modify it under the terms of the GNU General Public License
16  *  as published by the Free Software Foundation; either version 2
17  *  of the License, or (at your option) any later version.
18  *
19  *  This program is distributed in the hope that it will be useful,
20  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
21  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  *  GNU General Public License for more details.
23  *
24  *  You should have received a copy of the GNU General Public License
25  *  along with this program; if not, write to the Free Software
26  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
27  *  02111-1307, USA.
28  *
29  * DESCRIPTION:
30  *      Rendering of moving objects, sprites.
31  *
32  *-----------------------------------------------------------------------------*/
33 
34 #ifndef __R_THINGS__
35 #define __R_THINGS__
36 
37 #ifdef __GNUG__
38 #pragma interface
39 #endif
40 
41 #include "r_draw.h"
42 
43 /* Constant arrays used for psprite clipping and initializing clipping. */
44 
45 extern int negonearray[MAX_SCREENWIDTH];       /* killough 2/8/98: */ // dropoff overflow
46 extern int screenheightarray[MAX_SCREENWIDTH]; /* change to MAX_*  */ // dropoff overflow
47 
48 /* Vars for R_DrawMaskedColumn */
49 
50 extern int     *mfloorclip;    // dropoff overflow
51 extern int     *mceilingclip;  // dropoff overflow
52 extern fixed_t spryscale;
53 extern fixed_t sprtopscreen;
54 extern fixed_t pspritescale;
55 extern fixed_t pspriteiscale;
56 /* proff 11/06/98: Added for high-res */
57 extern fixed_t pspriteyscale;
58 
59 void R_DrawMaskedColumn(const rpatch_t *patch,
60                         R_DrawColumn_f colfunc,
61                         draw_column_vars_t *dcvars,
62                         const rcolumn_t *column,
63                         const rcolumn_t *prevcolumn,
64                         const rcolumn_t *nextcolumn);
65 void R_SortVisSprites(void);
66 void R_AddSprites(subsector_t* subsec, int lightlevel);
67 void R_DrawPlayerSprites(void);
68 void R_InitSprites(const char * const * namelist);
69 void R_ClearSprites(void);
70 void R_DrawMasked(void);
71 
72 #endif
73