Move Highest_segment_index into Segments
This commit is contained in:
parent
b2a7195643
commit
e765fd74fc
|
@ -49,7 +49,6 @@ struct segmasks
|
|||
struct segment_depth_array_t : public array<ubyte, MAX_SEGMENTS> {};
|
||||
|
||||
extern int Highest_vertex_index; // Highest index in Vertices and Vertex_active, an efficiency hack
|
||||
extern unsigned Highest_segment_index; // Highest index in Segments, an efficiency hack
|
||||
extern int Doing_lighting_hack_flag;
|
||||
|
||||
extern void compute_center_point_on_side(vms_vector *vp,segment *sp,int side);
|
||||
|
|
|
@ -179,14 +179,36 @@ struct group
|
|||
}
|
||||
};
|
||||
|
||||
struct segment_array_t : public array<segment, MAX_SEGMENTS>
|
||||
{
|
||||
unsigned highest;
|
||||
#define Highest_segment_index Segments.highest
|
||||
typedef array<segment, MAX_SEGMENTS> array_t;
|
||||
template <typename T>
|
||||
typename tt::enable_if<tt::is_integral<T>::value, reference>::type operator[](T n)
|
||||
{
|
||||
return array_t::operator[](n);
|
||||
}
|
||||
template <typename T>
|
||||
typename tt::enable_if<tt::is_integral<T>::value, const_reference>::type operator[](T n) const
|
||||
{
|
||||
return array_t::operator[](n);
|
||||
}
|
||||
template <typename T>
|
||||
typename tt::enable_if<!tt::is_integral<T>::value, reference>::type operator[](T) const = delete;
|
||||
segment_array_t() = default;
|
||||
segment_array_t(const segment_array_t &) = delete;
|
||||
segment_array_t &operator=(const segment_array_t &) = delete;
|
||||
};
|
||||
|
||||
// Globals from mglobal.c
|
||||
#define Segment2s Segments
|
||||
extern vms_vector Vertices[MAX_VERTICES];
|
||||
extern array<segment, MAX_SEGMENTS> Segments;
|
||||
extern segment_array_t Segments;
|
||||
extern int Num_segments;
|
||||
extern int Num_vertices;
|
||||
|
||||
static inline long operator-(const segment *s, const array<segment, MAX_SEGMENTS>& S)
|
||||
static inline long operator-(const segment *s, const segment_array_t &S)
|
||||
{
|
||||
return s - (&*S.begin());
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ int d_tick_count = 0; // increments every 50ms
|
|||
int d_tick_step = 0; // true once every 50ms
|
||||
|
||||
// This is the global mine which create_new_mine returns.
|
||||
array<segment, MAX_SEGMENTS> Segments;
|
||||
segment_array_t Segments;
|
||||
//lsegment Lsegments[MAX_SEGMENTS];
|
||||
|
||||
// Number of vertices in current mine (ie, Vertices, pointed to by Vp)
|
||||
|
@ -52,7 +52,6 @@ int Num_vertices = 0;
|
|||
int Num_segments = 0;
|
||||
|
||||
int Highest_vertex_index=0;
|
||||
unsigned Highest_segment_index;
|
||||
|
||||
// Translate table to get opposite side of a face on a segment.
|
||||
const char Side_opposite[MAX_SIDES_PER_SEGMENT] = {WRIGHT, WBOTTOM, WLEFT, WTOP, WFRONT, WBACK};
|
||||
|
|
Loading…
Reference in a new issue