Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | pmbaty | 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 |