| version 1.2 | | version 1.3 |
|---|
| | |
| * New home for find_vector_intersection() | | * New home for find_vector_intersection() |
| * | | * |
| * $Log$ | | * $Log$ |
| | | * Revision 1.3 2000/06/25 08:34:29 sekmu |
| | | * file-line for segfault info |
| | | * |
| * Revision 1.2 2000/01/19 04:48:36 sekmu | | * Revision 1.2 2000/01/19 04:48:36 sekmu |
| * added debug info for illegal side type | | * added debug info for illegal side type |
| * | | * |
| | |
| //Assert(check_point_in_seg(p0,startseg,0).centermask==0); //start point not in seg | | //Assert(check_point_in_seg(p0,startseg,0).centermask==0); //start point not in seg |
| | | |
| // Viewer is not in segment as claimed, so say there is no hit. | | // Viewer is not in segment as claimed, so say there is no hit. |
| if(!(get_seg_masks(fq->p0,fq->startseg,0).centermask==0)) { | | if(!(get_seg_masks(fq->p0,fq->startseg,0,__FILE__,__LINE__).centermask==0)) { |
| | | |
| hit_data->hit_type = HIT_BAD_P0; | | hit_data->hit_type = HIT_BAD_P0; |
| hit_data->hit_pnt = *fq->p0; | | hit_data->hit_pnt = *fq->p0; |
| | |
| | | |
| 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,&hit_data->n_segs,-2); | | 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,&hit_data->n_segs,-2); |
| //!!hit_seg = find_point_seg(&hit_pnt,fq->startseg); | | //!!hit_seg = find_point_seg(&hit_pnt,fq->startseg); |
| if (hit_seg2!=-1 && !get_seg_masks(&hit_pnt,hit_seg2,0).centermask) | | if (hit_seg2!=-1 && !get_seg_masks(&hit_pnt,hit_seg2,0,__FILE__,__LINE__).centermask) |
| hit_seg = hit_seg2; | | hit_seg = hit_seg2; |
| else | | else |
| hit_seg = find_point_seg(&hit_pnt,fq->startseg); | | hit_seg = find_point_seg(&hit_pnt,fq->startseg); |
| | | |
| //MATT: TAKE OUT THIS HACK AND FIX THE BUGS! | | //MATT: TAKE OUT THIS HACK AND FIX THE BUGS! |
| if (hit_type == HIT_WALL && hit_seg==-1) | | if (hit_type == HIT_WALL && hit_seg==-1) |
| if (fvi_hit_seg2!=-1 && get_seg_masks(&hit_pnt,fvi_hit_seg2,0).centermask==0) | | if (fvi_hit_seg2!=-1 && get_seg_masks(&hit_pnt,fvi_hit_seg2,0,__FILE__,__LINE__).centermask==0) |
| hit_seg = fvi_hit_seg2; | | hit_seg = fvi_hit_seg2; |
| | | |
| if (hit_seg == -1) { | | if (hit_seg == -1) { |
| | |
| hit_data->hit_object = fvi_hit_object; //looks at global | | hit_data->hit_object = fvi_hit_object; //looks at global |
| hit_data->hit_wallnorm = wall_norm; //looks at global | | hit_data->hit_wallnorm = wall_norm; //looks at global |
| | | |
| // if(hit_seg!=-1 && get_seg_masks(&hit_data->hit_pnt,hit_data->hit_seg,0).centermask!=0) | | // if(hit_seg!=-1 && get_seg_masks(&hit_data->hit_pnt,hit_data->hit_seg,0,__FILE__,__LINE__).centermask!=0) |
| // Int3(); | | // Int3(); |
| | | |
| return hit_type; | | return hit_type; |
| | |
| | | |
| //now, check segment walls | | //now, check segment walls |
| | | |
| startmask = get_seg_masks(p0,startseg,rad).facemask; | | startmask = get_seg_masks(p0,startseg,rad,__FILE__,__LINE__).facemask; |
| | | |
| masks = get_seg_masks(p1,startseg,rad); //on back of which faces? | | masks = get_seg_masks(p1,startseg,rad,__FILE__,__LINE__); //on back of which faces? |
| endmask = masks.facemask; | | endmask = masks.facemask; |
| //@@sidemask = masks.sidemask; | | //@@sidemask = masks.sidemask; |
| centermask = masks.centermask; | | centermask = masks.centermask; |
| | |
| #endif | | #endif |
| | | |
| | | |
| if (get_seg_masks(&hit_point,startseg,rad).centermask==0) | | if (get_seg_masks(&hit_point,startseg,rad,__FILE__,__LINE__).centermask==0) |
| hit_seg = startseg; //hit in this segment | | hit_seg = startseg; //hit in this segment |
| else | | else |
| fvi_hit_seg2 = startseg; | | fvi_hit_seg2 = startseg; |
| | |
| | | |
| segs_visited[n_segs_visited++] = segnum; | | segs_visited[n_segs_visited++] = segnum; |
| | | |
| facemask = get_seg_masks(pnt,segnum,rad).facemask; | | facemask = get_seg_masks(pnt,segnum,rad,__FILE__,__LINE__).facemask; |
| | | |
| seg = &Segments[segnum]; | | seg = &Segments[segnum]; |
| | | |