Subversion Repositories Games.Descent

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * Portions of this file are copyright Rebirth contributors and licensed as
  3.  * described in COPYING.txt.
  4.  * Portions of this file are copyright Parallax Software and licensed
  5.  * according to the Parallax license below.
  6.  * See COPYING.txt for license details.
  7.  
  8. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  9. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  10. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  11. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  12. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  13. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  14. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  15. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  16. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
  17. COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  18. */
  19.  
  20. /*
  21.  *
  22.  * Header for endlevel.c
  23.  *
  24.  */
  25.  
  26. #pragma once
  27.  
  28. #ifdef __cplusplus
  29. #include <array>
  30. #include "vecmat.h"
  31. #include "fwd-segment.h"
  32. #include "gr.h"
  33. #include "fwd-window.h"
  34.  
  35. namespace dcx {
  36.  
  37. struct d_unique_endlevel_state
  38. {
  39.         using starfield_type = std::array<vms_vector, 500>;
  40.         starfield_type stars;
  41. };
  42.  
  43. }
  44.  
  45. extern int Endlevel_sequence;
  46. #ifdef dsx
  47. namespace dsx {
  48. window_event_result do_endlevel_frame();
  49. }
  50. #endif
  51. window_event_result stop_endlevel_sequence();
  52. #ifdef dsx
  53. namespace dsx {
  54. window_event_result start_endlevel_sequence();
  55. }
  56. #endif
  57. void render_endlevel_frame(grs_canvas &, fix eye_offset);
  58.  
  59. void draw_exit_model(grs_canvas &);
  60. void free_endlevel_data();
  61.  
  62. extern grs_bitmap *terrain_bitmap;  //*satellite_bitmap,*station_bitmap,
  63.  
  64. //@@extern vms_vector mine_exit_point;
  65. //@@extern object external_explosion;
  66. //@@extern int ext_expl_playing;
  67.  
  68. //called for each level to load & setup the exit sequence
  69. #ifdef dsx
  70. namespace dsx {
  71. void load_endlevel_data(int level_num);
  72.  
  73. }
  74. #endif
  75. extern unsigned exit_modelnum, destroyed_exit_modelnum;
  76. extern vms_matrix surface_orient;
  77.  
  78. #endif
  79.