home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !FALCON / !BONUS / GAMES / ENGINES / BM214A.ZIP / BM214A / ORIGINAL.SRC / VIEW.HPP < prev   
C/C++ Source or Header  |  1994-12-23  |  3KB  |  99 lines

  1. /********************************************************************
  2.  FILENAME: VIEW.HPP
  3.  AUTHOR  : JAKE HILL
  4.  DATE    : 12/1/94
  5.  
  6.  Copyright (c) 1994 by Jake Hill:
  7.  If you use any part of this code in your own project, please credit
  8.  me in your documentation and source code.  Thanks.
  9. ********************************************************************/
  10.  
  11. #ifndef VIEW_HPP
  12. #define VIEW_HPP
  13.  
  14. #include "DOOM.H"
  15.  
  16. class View
  17. {
  18.    private:
  19.  
  20. // Each array is dynamically allocated based on info in the WAD file.
  21.       seg             *Seg_Array;
  22.       side            *Side_Array;
  23.       line            *Line_Array;
  24.       node            *Node_Array;
  25.       node           **PNode_Array;
  26.       sector          *Sector_Array;
  27.       vertex          *Vertex_Array;
  28.       ssector         *SSector_Array;
  29.       blockmap        *Blockmap_Array;
  30.       blockmap_header *Blockmap_Header;
  31.  
  32. // A temp variable - probably a better way of doing this.
  33.       wall     Wall;
  34.  
  35. // Player's X,Y location and Height.
  36.       short Px,Py,Ph;
  37. // The angle the player is facing.
  38.       unsigned short Pangle;
  39. // The angle made by the left side of the player's view cone.
  40.       unsigned short LeftAngle;
  41.  
  42. // The sine & cosine of the angle the player is facing.
  43.       long CosPangle, SinPangle;
  44.  
  45. // The node number of the Root Node in the BSP.
  46.       short MaxNode;
  47. // The height of the floor and ceiling currently being drawn.
  48.       short floor_ht, ceiling_ht;
  49.  
  50.    public:
  51.  
  52. // Constructor & Destructor.
  53. // Located in the file VIEW.CPP
  54.       View(void);
  55.      ~View(void);
  56.  
  57. // These functions do all of the rendering.
  58. // They are all found in the file VIEW.CPP.
  59.       void DrawView(void);
  60.       void DrawNode(short);
  61.       void DrawSSector(short);
  62.  
  63.       void LoadSeg(short);
  64.       inline void DrawSegs(void);
  65.       void AddWall(short,short,short,short,short, short);
  66.  
  67.       void AddFloorUp(short,short,short);
  68.       void AddFloorDown(short,short,short);
  69.       void EndFloorUp(short,short,short);
  70.       void EndFloorDown(short,short,short);
  71.  
  72.  
  73. // Utility functions.
  74. // These functions are located in the file VIEW_UT.CPP.
  75.       char OnRight(short);
  76.       char OnRight(short,short);
  77.       char  LeftSideInCone(short);
  78.       char  RightSideInCone(short);
  79.  
  80.       void SetView(short,short,short,unsigned short);
  81.       void GetView(short*,short*,short*,unsigned short*);
  82.       void Close(void);
  83.  
  84. // Wad File Access functions.
  85. // These functions are located in the file VIEW_IO.CPP.
  86.       void OpenWad(char*, long);
  87.       void LoadThings( Directory_Entry*, int);
  88.       void LoadSegs( Directory_Entry*, int);
  89.       void LoadSides( Directory_Entry*, int);
  90.       void LoadLines( Directory_Entry*, int);
  91.       void LoadNodes( Directory_Entry*, int);
  92.       void LoadSectors( Directory_Entry*, int);
  93.       void LoadVertexes( Directory_Entry*, int);
  94.       void LoadSSectors( Directory_Entry*, int);
  95.       void LoadBlockmap( Directory_Entry*, int);
  96. };
  97.  
  98. #endif
  99.