Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
298 serge 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
//-----------------------------------------------------------------------------