Return get_side_verts by value
This commit is contained in:
parent
2af91c9a3a
commit
51b6fb1c95
|
@ -67,6 +67,11 @@ struct side_vertnum_list_t : array<int, 4> {};
|
||||||
|
|
||||||
// Fill in array with four absolute point numbers for a given side
|
// Fill in array with four absolute point numbers for a given side
|
||||||
void get_side_verts(side_vertnum_list_t &vertlist,vcsegptr_t segnum,int sidenum);
|
void get_side_verts(side_vertnum_list_t &vertlist,vcsegptr_t segnum,int sidenum);
|
||||||
|
static inline side_vertnum_list_t get_side_verts(vcsegptr_t segnum,int sidenum)
|
||||||
|
{
|
||||||
|
side_vertnum_list_t r;
|
||||||
|
return get_side_verts(r, segnum, sidenum), r;
|
||||||
|
}
|
||||||
|
|
||||||
struct vertex_array_list_t : array<int, 6> {};
|
struct vertex_array_list_t : array<int, 6> {};
|
||||||
|
|
||||||
|
|
|
@ -1319,8 +1319,7 @@ static void add_segment_edges(automap *am, const vcsegptridx_t seg)
|
||||||
color = am->wall_revealed_color;
|
color = am->wall_revealed_color;
|
||||||
Here:
|
Here:
|
||||||
#endif
|
#endif
|
||||||
side_vertnum_list_t vertex_list;
|
const auto vertex_list = get_side_verts(segnum,sn);
|
||||||
get_side_verts(vertex_list,segnum,sn);
|
|
||||||
add_one_edge( am, vertex_list[0], vertex_list[1], color, sn, segnum, hidden_flag, 0, no_fade );
|
add_one_edge( am, vertex_list[0], vertex_list[1], color, sn, segnum, hidden_flag, 0, no_fade );
|
||||||
add_one_edge( am, vertex_list[1], vertex_list[2], color, sn, segnum, hidden_flag, 0, no_fade );
|
add_one_edge( am, vertex_list[1], vertex_list[2], color, sn, segnum, hidden_flag, 0, no_fade );
|
||||||
add_one_edge( am, vertex_list[2], vertex_list[3], color, sn, segnum, hidden_flag, 0, no_fade );
|
add_one_edge( am, vertex_list[2], vertex_list[3], color, sn, segnum, hidden_flag, 0, no_fade );
|
||||||
|
@ -1344,8 +1343,7 @@ static void add_unknown_segment_edges(automap *am, const vcsegptridx_t seg)
|
||||||
for (sn=0;sn<MAX_SIDES_PER_SEGMENT;sn++) {
|
for (sn=0;sn<MAX_SIDES_PER_SEGMENT;sn++) {
|
||||||
// Only add edges that have no children
|
// Only add edges that have no children
|
||||||
if (seg->children[sn] == segment_none) {
|
if (seg->children[sn] == segment_none) {
|
||||||
side_vertnum_list_t vertex_list;
|
const auto vertex_list = get_side_verts(segnum,sn);
|
||||||
get_side_verts(vertex_list,segnum,sn);
|
|
||||||
|
|
||||||
add_one_unknown_edge( am, vertex_list[0], vertex_list[1] );
|
add_one_unknown_edge( am, vertex_list[0], vertex_list[1] );
|
||||||
add_one_unknown_edge( am, vertex_list[1], vertex_list[2] );
|
add_one_unknown_edge( am, vertex_list[1], vertex_list[2] );
|
||||||
|
|
|
@ -1318,8 +1318,7 @@ void do_exploding_wall_frame()
|
||||||
|
|
||||||
//calc expl position
|
//calc expl position
|
||||||
|
|
||||||
side_vertnum_list_t vertnum_list;
|
const auto vertnum_list = get_side_verts(seg,sidenum);
|
||||||
get_side_verts(vertnum_list,seg,sidenum);
|
|
||||||
|
|
||||||
const auto &v0 = Vertices[vertnum_list[0]];
|
const auto &v0 = Vertices[vertnum_list[0]];
|
||||||
const auto &v1 = Vertices[vertnum_list[1]];
|
const auto &v1 = Vertices[vertnum_list[1]];
|
||||||
|
|
|
@ -427,7 +427,7 @@ static inline void check_render_face(index_sequence<N...>, segnum_t segnum, int
|
||||||
}
|
}
|
||||||
|
|
||||||
template <std::size_t N0, std::size_t N1, std::size_t N2, std::size_t N3>
|
template <std::size_t N0, std::size_t N1, std::size_t N2, std::size_t N3>
|
||||||
static inline void check_render_face(index_sequence<N0, N1, N2, N3> is, segnum_t segnum, int sidenum, unsigned facenum, array<int, 4> &vp, int tmap1, int tmap2, const array<uvl, 4> &uvlp, WALL_IS_DOORWAY_result_t wid_flags)
|
static inline void check_render_face(index_sequence<N0, N1, N2, N3> is, segnum_t segnum, int sidenum, unsigned facenum, const array<int, 4> &vp, int tmap1, int tmap2, const array<uvl, 4> &uvlp, WALL_IS_DOORWAY_result_t wid_flags)
|
||||||
{
|
{
|
||||||
check_render_face(is, segnum, sidenum, facenum, vp, tmap1, tmap2, uvlp, wid_flags, 4);
|
check_render_face(is, segnum, sidenum, facenum, vp, tmap1, tmap2, uvlp, wid_flags, 4);
|
||||||
}
|
}
|
||||||
|
@ -436,7 +436,7 @@ static inline void check_render_face(index_sequence<N0, N1, N2, N3> is, segnum_t
|
||||||
* are default constructed, gcc zero initializes all members.
|
* are default constructed, gcc zero initializes all members.
|
||||||
*/
|
*/
|
||||||
template <std::size_t N0, std::size_t N1, std::size_t N2>
|
template <std::size_t N0, std::size_t N1, std::size_t N2>
|
||||||
static inline void check_render_face(index_sequence<N0, N1, N2> is, segnum_t segnum, int sidenum, unsigned facenum, array<int, 4> &vp, int tmap1, int tmap2, const array<uvl, 4> &uvlp, WALL_IS_DOORWAY_result_t wid_flags)
|
static inline void check_render_face(index_sequence<N0, N1, N2> is, segnum_t segnum, int sidenum, unsigned facenum, const array<int, 4> &vp, int tmap1, int tmap2, const array<uvl, 4> &uvlp, WALL_IS_DOORWAY_result_t wid_flags)
|
||||||
{
|
{
|
||||||
check_render_face(index_sequence<N0, N1, N2, 3>(), segnum, sidenum, facenum, vp, tmap1, tmap2, uvlp, wid_flags, 3);
|
check_render_face(index_sequence<N0, N1, N2, 3>(), segnum, sidenum, facenum, vp, tmap1, tmap2, uvlp, wid_flags, 3);
|
||||||
}
|
}
|
||||||
|
@ -460,8 +460,7 @@ static void render_side(const vcsegptridx_t segp, int sidenum)
|
||||||
|
|
||||||
normals[0] = segp->sides[sidenum].normals[0];
|
normals[0] = segp->sides[sidenum].normals[0];
|
||||||
normals[1] = segp->sides[sidenum].normals[1];
|
normals[1] = segp->sides[sidenum].normals[1];
|
||||||
side_vertnum_list_t vertnum_list;
|
const auto vertnum_list = get_side_verts(segp,sidenum);
|
||||||
get_side_verts(vertnum_list,segp,sidenum);
|
|
||||||
|
|
||||||
// Regardless of whether this side is comprised of a single quad, or two triangles, we need to know one normal, so
|
// Regardless of whether this side is comprised of a single quad, or two triangles, we need to know one normal, so
|
||||||
// deal with it, get the dot product.
|
// deal with it, get the dot product.
|
||||||
|
|
Loading…
Reference in a new issue