1 //
2 // Copyright(C) 1993-1996 Id Software, Inc.
3 // Copyright(C) 2005-2014 Simon Howard
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // DESCRIPTION:
16 //	Refresh/render internal state variables (global).
17 //
18 
19 
20 #ifndef __R_STATE__
21 #define __R_STATE__
22 
23 // Need data structure definitions.
24 #include "d_player.h"
25 #include "r_data.h"
26 
27 
28 
29 
30 
31 
32 //
33 // Refresh internal data structures,
34 //  for rendering.
35 //
36 
37 // needed for texture pegging
38 extern fixed_t*		textureheight;
39 
40 // needed for pre rendering (fracs)
41 extern fixed_t*		spritewidth;
42 
43 extern fixed_t*		spriteoffset;
44 extern fixed_t*		spritetopoffset;
45 
46 extern lighttable_t*	colormaps;
47 
48 extern int		viewwidth;
49 extern int		scaledviewwidth;
50 extern int		viewheight;
51 
52 extern int		firstflat;
53 
54 // for global animation
55 extern int*		flattranslation;
56 extern int*		texturetranslation;
57 
58 
59 // Sprite....
60 extern int		firstspritelump;
61 extern int		lastspritelump;
62 extern int		numspritelumps;
63 
64 
65 
66 //
67 // Lookup tables for map data.
68 //
69 extern int		numsprites;
70 extern spritedef_t*	sprites;
71 
72 extern int		numvertexes;
73 extern vertex_t*	vertexes;
74 
75 extern int		numsegs;
76 extern seg_t*		segs;
77 
78 extern int		numsectors;
79 extern sector_t*	sectors;
80 
81 extern int		numsubsectors;
82 extern subsector_t*	subsectors;
83 
84 extern int		numnodes;
85 extern node_t*		nodes;
86 
87 extern int		numlines;
88 extern line_t*		lines;
89 
90 extern int		numsides;
91 extern side_t*		sides;
92 
93 
94 //
95 // POV data.
96 //
97 extern fixed_t		viewx;
98 extern fixed_t		viewy;
99 extern fixed_t		viewz;
100 
101 extern angle_t		viewangle;
102 extern player_t*	viewplayer;
103 
104 
105 // ?
106 extern angle_t		clipangle;
107 
108 extern int		viewangletox[FINEANGLES/2];
109 extern angle_t		xtoviewangle[SCREENWIDTH+1];
110 //extern fixed_t		finetangent[FINEANGLES/2];
111 
112 extern fixed_t		rw_distance;
113 extern angle_t		rw_normalangle;
114 
115 
116 
117 // angle to line origin
118 extern int		rw_angle1;
119 
120 // Segs count?
121 extern int		sscount;
122 
123 extern visplane_t*	floorplane;
124 extern visplane_t*	ceilingplane;
125 
126 
127 #endif
128