Pass fvi_sub ints by &

This commit is contained in:
Kp 2014-11-21 03:11:11 +00:00
parent a17cf6f808
commit 0da289fca8

View file

@ -612,7 +612,7 @@ int fvi_hit_side_seg;// what seg the hitside is in
vms_vector wall_norm; //ptr to surface normal of hit wall
segnum_t fvi_hit_seg2; // what segment the hit point is in
static int fvi_sub(vms_vector &intp,segnum_t *ints,const vms_vector &p0,const vcsegptridx_t startseg,const vms_vector &p1,fix rad,objnum_t thisobjnum,const objnum_t *ignore_obj_list,int flags,fvi_info::segment_array_t &seglist,segnum_t entry_seg, fvi_segments_visited_t &visited);
static int fvi_sub(vms_vector &intp,segnum_t &ints,const vms_vector &p0,const vcsegptridx_t startseg,const vms_vector &p1,fix rad,objnum_t thisobjnum,const objnum_t *ignore_obj_list,int flags,fvi_info::segment_array_t &seglist,segnum_t entry_seg, fvi_segments_visited_t &visited);
//What the hell is fvi_hit_seg for???
@ -674,7 +674,7 @@ int find_vector_intersection(fvi_query *fq,fvi_info *hit_data)
hit_seg2 = fvi_hit_seg2 = segment_none;
hit_type = fvi_sub(hit_pnt,&hit_seg2,*fq->p0,fq->startseg,*fq->p1,fq->rad,fq->thisobjnum,fq->ignore_obj_list,fq->flags,hit_data->seglist,segment_exit,visited);
hit_type = fvi_sub(hit_pnt,hit_seg2,*fq->p0,fq->startseg,*fq->p1,fq->rad,fq->thisobjnum,fq->ignore_obj_list,fq->flags,hit_data->seglist,segment_exit,visited);
segnum_t hit_seg;
if (hit_seg2 != segment_none && !get_seg_masks(hit_pnt, hit_seg2, 0, __FILE__, __LINE__).centermask)
hit_seg = hit_seg2;
@ -694,7 +694,7 @@ int find_vector_intersection(fvi_query *fq,fvi_info *hit_data)
//because of code that deal with object with non-zero radius has
//problems, try using zero radius and see if we hit a wall
new_hit_type = fvi_sub(new_hit_pnt,&new_hit_seg2,*fq->p0,fq->startseg,*fq->p1,0,fq->thisobjnum,fq->ignore_obj_list,fq->flags,hit_data->seglist,segment_exit,visited);
new_hit_type = fvi_sub(new_hit_pnt,new_hit_seg2,*fq->p0,fq->startseg,*fq->p1,0,fq->thisobjnum,fq->ignore_obj_list,fq->flags,hit_data->seglist,segment_exit,visited);
(void)new_hit_type; // FIXME! This should become hit_type, right?
if (new_hit_seg2 != segment_none) {
@ -787,7 +787,7 @@ static void append_segments(fvi_info::segment_array_t &dst, const fvi_info::segm
std::copy(src.begin(), src.begin() + count, std::back_inserter(dst));
}
static int fvi_sub(vms_vector &intp,segnum_t *ints,const vms_vector &p0,const vcsegptridx_t startseg,const vms_vector &p1,fix rad,objnum_t thisobjnum,const objnum_t *ignore_obj_list,int flags,fvi_info::segment_array_t &seglist,segnum_t entry_seg, fvi_segments_visited_t &visited)
static int fvi_sub(vms_vector &intp,segnum_t &ints,const vms_vector &p0,const vcsegptridx_t startseg,const vms_vector &p1,fix rad,objnum_t thisobjnum,const objnum_t *ignore_obj_list,int flags,fvi_info::segment_array_t &seglist,segnum_t entry_seg, fvi_segments_visited_t &visited)
{
int startmask,endmask; //mask of faces
//@@int sidemask; //mask of sides - can be on back of face but not side
@ -950,7 +950,7 @@ static int fvi_sub(vms_vector &intp,segnum_t *ints,const vms_vector &p0,const vc
goto quit_looking; //we've looked a long time, so give up
fvi_info::segment_array_t temp_seglist;
sub_hit_type = fvi_sub(sub_hit_point,&sub_hit_seg,p0,newsegnum,p1,rad,thisobjnum,ignore_obj_list,flags,temp_seglist,startseg,visited);
sub_hit_type = fvi_sub(sub_hit_point,sub_hit_seg,p0,newsegnum,p1,rad,thisobjnum,ignore_obj_list,flags,temp_seglist,startseg,visited);
if (sub_hit_type != HIT_NONE) {
@ -1024,7 +1024,7 @@ quit_looking:
if (hit_type == HIT_NONE) { //didn't hit anything, return end point
intp = p1;
*ints = hit_none_seg;
ints = hit_none_seg;
//MATT: MUST FIX THIS!!!!
//Assert(!centermask);
@ -1042,11 +1042,11 @@ quit_looking:
intp = closest_hit_point;
if (hit_seg==segment_none)
if (fvi_hit_seg2 != segment_none)
*ints = fvi_hit_seg2;
ints = fvi_hit_seg2;
else
*ints = hit_none_seg;
ints = hit_none_seg;
else
*ints = hit_seg;
ints = hit_seg;
}
Assert(!(hit_type==HIT_OBJECT && fvi_hit_object==object_none));