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-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  18. */
  19.  
  20. /*
  21.  *
  22.  * Globals for editor.
  23.  *
  24.  */
  25.  
  26.  
  27. #include <stdlib.h>
  28. #include "inferno.h"
  29. #include "segment.h"
  30. #include "object.h"
  31. #include "editor.h"
  32. #include "editor/esegment.h"
  33.  
  34. // Global pointer to current vertices, right now always Vertices.  Set in create_new_mine.
  35. imsegptridx_t Cursegp = segment_none;        // Pointer to current segment in mine.
  36. imsegptridx_t Markedsegp = segment_none;     // Marked segment, used in conjunction with *Cursegp to form joints.
  37. int Curside;             // Side index in 0..MAX_SIDES_PER_SEGMENT of active side.
  38. int Curedge;             // Current edge on current side, in 0..3
  39. int Curvert;             // Current vertex on current side, in 0..3
  40. int AttachSide = WFRONT; // Side on segment to attach.
  41. int Markedside;          // Marked side on Markedsegp.
  42.  
  43. int Draw_all_segments;   // Set to 1 means draw_world draws all segments in Segments, else draw only connected segments
  44.  
  45. selected_segment_array_t Selected_segs; // List of segment numbers currently selected
  46.  
  47. warning_segment_array_t Warning_segs; // List of segment numbers currently selected
  48.  
  49. found_segment_array_t Found_segs; // List of warning-worthy segments
  50.  
  51. int Show_axes_flag = 0; // 0 = don't show, !0 = do show coordinate axes in *Cursegp orientation
  52.  
  53. // Variables global to this editor.c and the k?????.c files.
  54. uint        Update_flags = UF_ALL;  //force total redraw
  55. int         Funky_chase_mode = 0;
  56. vms_angvec  Seg_orientation = {0,0,0};
  57. int         mine_changed = 0;
  58. int         ModeFlag;
  59. editor_view *current_view;
  60.  
  61. int         SegSizeMode = 1; // Mode = 0/1 = not/is legal to move bound vertices,
  62.  
  63. //the view for the different windows.
  64. editor_view LargeView = {0,1, NULL, i2f(100),IDENTITY_MATRIX,f1_0};
  65. #if ORTHO_VIEWS
  66. editor_view TopView   = {1,1, NULL, i2f(100),{{f1_0,0,0},{0,0,-f1_0},{0,f1_0,0}},f1_0};
  67. editor_view FrontView = {2,1, NULL, i2f(100),{{f1_0,0,0},{0,f1_0,0},{0,0,f1_0}},f1_0};
  68. editor_view RightView = {3,1, NULL, i2f(100),{{0,0,f1_0},{0,f1_0,0},{f1_0,0,0}},f1_0};
  69. #endif
  70.  
  71.  
  72. std::array<editor_view *, ORTHO_VIEWS ? 4 : 1> Views = {{&LargeView,
  73. #if ORTHO_VIEWS
  74.         &TopView,&FrontView,&RightView
  75. #endif
  76.         }};
  77.  
  78. int     Lock_view_to_cursegp = 1;               // !0 means whenever cursegp changes, view it
  79.  
  80. int     Num_tilings = 1;                                        // Number of tilings per wall
  81.  
  82. objnum_t Cur_object_index = object_none;
  83.  
  84. // The current object type and id
  85. short Cur_object_type = 4;      // OBJ_PLAYER
  86. short Cur_object_id = 0;
  87.  
  88. //      !0 if a degenerate segment has been found.
  89. int     Degenerate_segment_found=0;
  90.  
  91.