]> git.lizzy.rs Git - plan9front.git/blob - sys/src/games/doom/r_main.h
bring games/swar from 1ed sources.
[plan9front.git] / sys / src / games / doom / r_main.h
1 // Emacs style mode select   -*- C++ -*- 
2 //-----------------------------------------------------------------------------
3 //
4 // $Id:$
5 //
6 // Copyright (C) 1993-1996 by id Software, Inc.
7 //
8 // This source is available for distribution and/or modification
9 // only under the terms of the DOOM Source Code License as
10 // published by id Software. All rights reserved.
11 //
12 // The source is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
15 // for more details.
16 //
17 // DESCRIPTION:
18 //      System specific interface stuff.
19 //
20 //-----------------------------------------------------------------------------
21
22
23 #ifndef __R_MAIN__
24 #define __R_MAIN__
25
26 #include "d_player.h"
27 #include "r_data.h"
28
29
30 #ifdef __GNUG__
31 #pragma interface
32 #endif
33
34
35 //
36 // POV related.
37 //
38 extern fixed_t          viewcos;
39 extern fixed_t          viewsin;
40
41 extern int              viewwidth;
42 extern int              viewheight;
43 extern int              viewwindowx;
44 extern int              viewwindowy;
45
46
47
48 extern int              centerx;
49 extern int              centery;
50
51 extern fixed_t          centerxfrac;
52 extern fixed_t          centeryfrac;
53 extern fixed_t          projection;
54
55 extern int              validcount;
56
57 extern int              linecount;
58 extern int              loopcount;
59
60
61 //
62 // Lighting LUT.
63 // Used for z-depth cuing per column/row,
64 //  and other lighting effects (sector ambient, flash).
65 //
66
67 // Lighting constants.
68 // Now why not 32 levels here?
69 #define LIGHTLEVELS             16
70 #define LIGHTSEGSHIFT            4
71
72 #define MAXLIGHTSCALE           48
73 #define LIGHTSCALESHIFT         12
74 #define MAXLIGHTZ              128
75 #define LIGHTZSHIFT             20
76
77 extern lighttable_t*    scalelight[LIGHTLEVELS][MAXLIGHTSCALE];
78 extern lighttable_t*    scalelightfixed[MAXLIGHTSCALE];
79 extern lighttable_t*    zlight[LIGHTLEVELS][MAXLIGHTZ];
80
81 extern int              extralight;
82 extern lighttable_t*    fixedcolormap;
83
84
85 // Number of diminishing brightness levels.
86 // There a 0-31, i.e. 32 LUT in the COLORMAP lump.
87 #define NUMCOLORMAPS            32
88
89
90 // Blocky/low detail mode.
91 //B remove this?
92 //  0 = high, 1 = low
93 extern  int             detailshift;    
94
95
96 //
97 // Function pointers to switch refresh/drawing functions.
98 // Used to select shadow mode etc.
99 //
100 extern void             (*colfunc) (void);
101 extern void             (*basecolfunc) (void);
102 extern void             (*fuzzcolfunc) (void);
103 // No shadow effects on floors.
104 extern void             (*spanfunc) (void);
105
106
107 //
108 // Utility functions.
109 int
110 R_PointOnSide
111 ( fixed_t       x,
112   fixed_t       y,
113   node_t*       node );
114
115 int
116 R_PointOnSegSide
117 ( fixed_t       x,
118   fixed_t       y,
119   seg_t*        line );
120
121 angle_t
122 R_PointToAngle
123 ( fixed_t       x,
124   fixed_t       y );
125
126 angle_t
127 R_PointToAngle2
128 ( fixed_t       x1,
129   fixed_t       y1,
130   fixed_t       x2,
131   fixed_t       y2 );
132
133 fixed_t
134 R_PointToDist
135 ( fixed_t       x,
136   fixed_t       y );
137
138
139 fixed_t R_ScaleFromGlobalAngle (angle_t visangle);
140
141 subsector_t*
142 R_PointInSubsector
143 ( fixed_t       x,
144   fixed_t       y );
145
146 void
147 R_AddPointToBox
148 ( int           x,
149   int           y,
150   fixed_t*      box );
151
152
153
154 //
155 // REFRESH - the actual rendering functions.
156 //
157
158 // Called by G_Drawer.
159 void R_RenderPlayerView (player_t *player);
160
161 // Called by startup code.
162 void R_Init (void);
163
164 // Called by M_Responder.
165 void R_SetViewSize (int blocks, int detail);
166
167 #endif
168 //-----------------------------------------------------------------------------
169 //
170 // $Log:$
171 //
172 //-----------------------------------------------------------------------------