1 /*
2  * This file is part of the DXX-Rebirth project <https://www.dxx-rebirth.com/>.
3  * It is copyright by its individual contributors, as recorded in the
4  * project's Git history.  See COPYING.txt at the top level for license
5  * terms and a link to the Git history.
6  */
7 #pragma once
8 
9 #include "dxxsconf.h"
10 
11 #include "segment.h"
12 #include "editor/editor.h"
13 #include <array>
14 
15 #if defined(DXX_BUILD_DESCENT_I) || defined(DXX_BUILD_DESCENT_II)
16 extern imsegptridx_t Cursegp;				// Pointer to current segment in the mine, the one to which things happen.
17 
18 #define	New_segment	(Segments.back())
19 
20 extern	int		Curside;					// Side index in 0..MAX_SIDES_PER_SEGMENT of active side.
21 extern	int		Curedge;					//	Current edge on current side, in 0..3
22 extern	int		Curvert;					//	Current vertex on current side, in 0..3
23 extern	int		AttachSide;				//	Side on segment to attach
24 extern	int		Draw_all_segments;	// Set to 1 means draw_world draws all segments in Segments, else draw only connected segments
25 extern imsegptridx_t Markedsegp;			// Marked segment, used in conjunction with *Cursegp to form joints.
26 extern std::array<segment *, MAX_GROUPS+1> Groupsegp;
27 #endif
28 extern	int		Markedside;				// Marked side on Markedsegp.
29 
30 // The extra group in the following arrays is used for group rotation.
31 extern std::array<group, MAX_GROUPS+1> GroupList;
32 extern std::array<int, MAX_GROUPS+1> Groupside;
33 extern	int 		current_group;
34 extern unsigned num_groups;
35 extern	int		Current_group;
36 
37 struct found_segment_array_t : public count_segment_array_t {};
38 
39 extern found_segment_array_t Found_segs;			// List of segment numbers "found" under cursor click
40 
41 struct selected_segment_array_t : public count_segment_array_t {};
42 
43 extern selected_segment_array_t Selected_segs;		// List of segment numbers currently selected
44 
45 struct warning_segment_array_t : public count_segment_array_t {};
46 
47 extern warning_segment_array_t Warning_segs;		// List of warning-worthy segments
48