128 lines
3.2 KiB
C
Executable File
128 lines
3.2 KiB
C
Executable File
/*
|
|
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
#ifndef _rt_draw_public
|
|
#define _rt_draw_public
|
|
|
|
//***************************************************************************
|
|
//
|
|
// RT_DRAW.C - Draw-o-rama
|
|
//
|
|
//***************************************************************************
|
|
|
|
|
|
#define MAXVISIBLE 256
|
|
|
|
extern int whereami;
|
|
|
|
extern byte * shadingtable; // Shading table for DrawPost
|
|
|
|
typedef struct
|
|
{
|
|
int viewheight;
|
|
int viewx;
|
|
int shapenum;
|
|
int altshapenum;
|
|
int shapesize;
|
|
int x1,x2,h1,h2;
|
|
int texturestart;
|
|
int textureend;
|
|
byte * colormap;
|
|
|
|
} visobj_t;
|
|
|
|
|
|
extern word tilemap[MAPSIZE][MAPSIZE]; // wall values only
|
|
extern byte spotvis[MAPSIZE][MAPSIZE];
|
|
|
|
extern int tics;
|
|
extern int wstart;
|
|
extern int fandc;
|
|
|
|
//
|
|
// math tables
|
|
//
|
|
extern short tantable[FINEANGLES];
|
|
extern fixed sintable[FINEANGLES+FINEANGLEQUAD+1];
|
|
extern fixed *costable;
|
|
|
|
//
|
|
// refresh variables
|
|
//
|
|
|
|
extern fixed viewx,viewy; // the focal point
|
|
extern int viewangle;
|
|
extern fixed viewsin,viewcos;
|
|
|
|
//
|
|
// ray tracing variables
|
|
//
|
|
|
|
extern visobj_t vislist[MAXVISIBLE];
|
|
extern visobj_t *visptr,*visstep,*farthest;
|
|
|
|
extern long xintercept,yintercept;
|
|
extern byte mapseen[MAPSIZE][MAPSIZE];
|
|
extern unsigned long * lights;
|
|
|
|
extern int hp_startfrac;
|
|
extern int hp_srcstep;
|
|
extern int levelheight;
|
|
extern int maxheight;
|
|
extern int nominalheight;
|
|
|
|
extern int actortime;
|
|
extern int drawtime;
|
|
extern int c_startx;
|
|
extern int c_starty;
|
|
|
|
extern const int dirangle8[9];
|
|
extern const int dirangle16[16];
|
|
extern int firstcoloffset;
|
|
|
|
//=========================== macros =============================
|
|
|
|
#define LightSourceAt(x,y) (*(lights+((x)<<7)+(y)))
|
|
#define SetLight(x,y,level) (LightSourceAt((x),(y))|=(unsigned long)(level))
|
|
|
|
//=========================== functions =============================
|
|
|
|
void BuildTables (void);
|
|
void CalcTics (void);
|
|
void ThreeDRefresh (void);
|
|
void FlipPage ( void );
|
|
void TurnShakeOff( void );
|
|
void AdaptDetail ( void );
|
|
int CalcHeight (void);
|
|
void DoLoadGameSequence( void );
|
|
void RotateBuffer (int startangle, int endangle, int startscale, int endscale, int time);
|
|
void ApogeeTitle (void);
|
|
void DopefishTitle (void);
|
|
void RotationFun (void);
|
|
void GetRainBoundingBox (int * xmin, int * xmax, int * ymin, int * ymax);
|
|
void StartupScreenSaver ( void );
|
|
void ShutdownScreenSaver ( void );
|
|
void UpdateScreenSaver ( void );
|
|
void DoEndCinematic ( void );
|
|
void DoCreditScreen ( void );
|
|
void DoMicroStoryScreen ( void );
|
|
void DoInBetweenCinematic (int yoffset, int lump, int delay, char * string );
|
|
|
|
#endif
|