// Emacs style mode select -*- C++ -*- //----------------------------------------------------------------------------- // // $Id:$ // // Copyright (C) 1993-1996 by id Software, Inc. // // 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. // // DESCRIPTION: // Refresh/render internal state variables (global). // //----------------------------------------------------------------------------- #ifndef __R_STATE_H__ #define __R_STATE_H__ // Need data structure definitions. #include "d_player.h" #include "r_data.h" #define WALLFRACBITS 4 #define WALLFRACUNIT (1<> (FArchive &arc, sector_t *&sec) { WORD ofs; arc >> ofs; if (ofs == 0xffff) sec = NULL; else sec = sectors + ofs; return arc; } inline FArchive &operator<< (FArchive &arc, line_t *line) { if (line) return arc << (WORD)(line - lines); else return arc << (WORD)0xffff; } inline FArchive &operator>> (FArchive &arc, line_t *&line) { WORD ofs; arc >> ofs; if (ofs == 0xffff) line = NULL; else line = lines + ofs; return arc; } // // POV data. // extern fixed_t viewx; extern fixed_t viewy; extern fixed_t viewz; extern angle_t viewangle; extern AActor* camera; // [RH] camera instead of viewplayer extern angle_t clipangle; extern int viewangletox[FINEANGLES/2]; extern angle_t *xtoviewangle; //extern fixed_t finetangent[FINEANGLES/2]; extern fixed_t rw_distance; extern angle_t rw_normalangle; // angle to line origin extern int rw_angle1; extern visplane_t* floorplane; extern visplane_t* ceilingplane; #endif // __R_STATE_H__