1 // SONIC ROBO BLAST 2
2 //-----------------------------------------------------------------------------
3 // Copyright (C) 1993-1996 by id Software, Inc.
4 // Copyright (C) 1998-2000 by DooM Legacy Team.
5 // Copyright (C) 1999-2020 by Sonic Team Junior.
6 //
7 // This program is free software distributed under the
8 // terms of the GNU General Public License, version 2.
9 // See the 'LICENSE' file for more details.
10 //-----------------------------------------------------------------------------
11 /// \file  r_state.h
12 /// \brief Refresh/render internal state variables (global)
13 
14 #ifndef __R_STATE__
15 #define __R_STATE__
16 
17 // Need data structure definitions.
18 #include "d_player.h"
19 #include "r_data.h"
20 
21 #ifdef __GNUG__
22 #pragma interface
23 #endif
24 
25 //
26 // Refresh internal data structures, for rendering.
27 //
28 
29 // needed for pre rendering (fracs)
30 typedef struct
31 {
32 	fixed_t width;
33 	fixed_t offset;
34 	fixed_t topoffset;
35 	fixed_t height;
36 } sprcache_t;
37 
38 extern sprcache_t *spritecachedinfo;
39 
40 extern lighttable_t *colormaps;
41 extern lighttable_t *fadecolormap;
42 
43 // Boom colormaps.
44 extern extracolormap_t *extra_colormaps;
45 
46 // for global animation
47 extern INT32 *texturetranslation;
48 
49 // Sprites
50 extern size_t numspritelumps, max_spritelumps;
51 
52 //
53 // Lookup tables for map data.
54 //
55 extern boolean udmf;
56 
57 extern size_t numsprites;
58 extern spritedef_t *sprites;
59 
60 extern size_t numvertexes;
61 extern vertex_t *vertexes;
62 
63 extern size_t numsegs;
64 extern seg_t *segs;
65 
66 extern size_t numsectors;
67 extern sector_t *sectors;
68 extern sector_t *spawnsectors;
69 
70 extern size_t numsubsectors;
71 extern subsector_t *subsectors;
72 
73 extern size_t numnodes;
74 extern node_t *nodes;
75 
76 extern size_t numlines;
77 extern line_t *lines;
78 extern line_t *spawnlines;
79 
80 extern size_t numsides;
81 extern side_t *sides;
82 extern side_t *spawnsides;
83 
84 //
85 // POV data.
86 //
87 extern fixed_t viewx, viewy, viewz;
88 extern angle_t viewangle, aimingangle;
89 extern sector_t *viewsector;
90 extern player_t *viewplayer;
91 extern mobj_t *r_viewmobj;
92 
93 extern consvar_t cv_allowmlook;
94 extern consvar_t cv_maxportals;
95 
96 extern angle_t clipangle;
97 extern angle_t doubleclipangle;
98 
99 extern INT32 viewangletox[FINEANGLES/2];
100 extern angle_t xtoviewangle[MAXVIDWIDTH+1];
101 
102 extern fixed_t rw_distance;
103 extern angle_t rw_normalangle;
104 
105 // angle to line origin
106 extern angle_t rw_angle1;
107 
108 #endif
109