Instead of screwing by possibly using negative array indicies in find_seg_side() return -1. In ordering segments make this result in unimportant order; Taking in some Asserts which were disabled years ago by me. Let's fix this for real when we get to it
This commit is contained in:
parent
81baeaeaa4
commit
4fdbda1689
|
@ -3,6 +3,7 @@ D1X-Rebirth Changelog
|
|||
20100717
|
||||
--------
|
||||
main/gamesave.c, main/render.c: Removed OGL hack to fix overlapping room in D1 lvl19 and rather move vertex a little. Still a hack but now without messing Depth test
|
||||
main/gameseg.c, main/render.c: Instead of screwing by possibly using negative array indicies in find_seg_side() return -1. In ordering segments make this result in unimportant order; Taking in some Asserts which were disabled years ago by me. Let's fix this for real when we get to it
|
||||
|
||||
20100716
|
||||
--------
|
||||
|
|
|
@ -305,7 +305,7 @@ segmasks get_seg_masks(vms_vector *checkp,int segnum,fix rad,char *calling_file,
|
|||
int vertex_list[6];
|
||||
segment *seg;
|
||||
|
||||
// Assert((segnum <= Highest_segment_index) && (segnum >= 0)); // ZICO - FIXME
|
||||
Assert((segnum <= Highest_segment_index) && (segnum >= 0));
|
||||
|
||||
seg = &Segments[segnum];
|
||||
|
||||
|
|
|
@ -923,7 +923,8 @@ int find_seg_side(segment *seg,short *verts,int notside)
|
|||
}
|
||||
}
|
||||
|
||||
// Assert(vv0!=-1 && vv1!=-1); // ZICO - disabled. will fail sometimes in some 4D levels.
|
||||
if (vv0 == -1 || vv1 != -1)
|
||||
return -1;
|
||||
|
||||
eptr = Edge_to_sides[vv0][vv1];
|
||||
|
||||
|
@ -967,7 +968,9 @@ int find_joining_side_norms(vms_vector *norm0_0,vms_vector *norm0_1,vms_vector *
|
|||
Assert(notside1 != -1);
|
||||
|
||||
edgeside0 = find_seg_side(seg0,edge_verts,notside0);
|
||||
if (edgeside0 == -1) return 0;
|
||||
edgeside1 = find_seg_side(seg1,edge_verts,notside1);
|
||||
if (edgeside1 == -1) return 0;
|
||||
|
||||
//deal with the case where an edge is shared by more than two segments
|
||||
|
||||
|
@ -1040,8 +1043,8 @@ int compare_children(segment *seg,short c0,short c1)
|
|||
|
||||
t = find_joining_side_norms(&norm0_0,&norm0_1,&norm1_0,&norm1_1,&pnt0,&pnt1,seg,c0,c1);
|
||||
|
||||
//if (!t)
|
||||
// return 0;
|
||||
if (!t) // can happen - 4D rooms!
|
||||
return 0;
|
||||
|
||||
vm_vec_sub(&temp,&Viewer_eye,pnt0);
|
||||
d0_0 = vm_vec_dot(&norm0_0,&temp);
|
||||
|
|
Loading…
Reference in a new issue