diff --git a/engine/common/pm_surface.c b/engine/common/pm_surface.c index 5ae4b2d1..06c8f0e7 100644 --- a/engine/common/pm_surface.c +++ b/engine/common/pm_surface.c @@ -112,7 +112,6 @@ msurface_t *PM_RecursiveSurfCheck( model_t *mod, mnode_t *node, vec3_t p1, vec3_ int i, side; msurface_t *surf; vec3_t mid; - mnode_t *children[2]; int numsurfaces, firstsurface; loc0: @@ -122,17 +121,15 @@ loc0: t1 = PlaneDiff( p1, node->plane ); t2 = PlaneDiff( p2, node->plane ); - node_children( children, node, mod ); - if( t1 >= -FRAC_EPSILON && t2 >= -FRAC_EPSILON ) { - node = children[0]; + node = node_child( node, 0, mod ); goto loc0; } if( t1 < FRAC_EPSILON && t2 < FRAC_EPSILON ) { - node = children[1]; + node = node_child( node, 1, mod ); goto loc0; } @@ -142,7 +139,7 @@ loc0: VectorLerp( p1, frac, p2, mid ); - if(( surf = PM_RecursiveSurfCheck( mod, children[side], p1, mid )) != NULL ) + if(( surf = PM_RecursiveSurfCheck( mod, node_child( node, side, mod ), p1, mid )) != NULL ) return surf; // walk through real faces @@ -179,7 +176,7 @@ loc0: return NULL; // through the fence } - return PM_RecursiveSurfCheck( mod, children[side^1], mid, p2 ); + return PM_RecursiveSurfCheck( mod, node_child( node, side^1, mod ), mid, p2 ); } /* @@ -234,7 +231,6 @@ static int PM_TestLine_r( model_t *mod, mnode_t *node, vec_t p1f, vec_t p2f, con float frac, midf; int i, r, side; vec3_t mid; - mnode_t *children[2]; int numsurfaces, firstsurface; loc0: @@ -252,17 +248,15 @@ loc0: front = PlaneDiff( start, node->plane ); back = PlaneDiff( stop, node->plane ); - node_children( children, node, mod ); - if( front >= -FRAC_EPSILON && back >= -FRAC_EPSILON ) { - node = children[0]; + node = node_child( node, 0, mod ); goto loc0; } if( front < FRAC_EPSILON && back < FRAC_EPSILON ) { - node = children[1]; + node = node_child( node, 1, mod ); goto loc0; } @@ -273,7 +267,7 @@ loc0: VectorLerp( start, frac, stop, mid ); midf = p1f + ( p2f - p1f ) * frac; - r = PM_TestLine_r( mod, children[side], p1f, midf, start, mid, trace ); + r = PM_TestLine_r( mod, node_child( node, side, mod ), p1f, midf, start, mid, trace ); if( r != CONTENTS_EMPTY ) { @@ -322,7 +316,7 @@ loc0: return contents; } - return PM_TestLine_r( mod, children[!side], midf, p2f, mid, stop, trace ); + return PM_TestLine_r( mod, node_child( node, !side, mod ), midf, p2f, mid, stop, trace ); } int PM_TestLineExt( playermove_t *pmove, physent_t *ents, int numents, const vec3_t start, const vec3_t end, int flags ) diff --git a/engine/server/sv_world.c b/engine/server/sv_world.c index c8f8397e..b2e984e4 100644 --- a/engine/server/sv_world.c +++ b/engine/server/sv_world.c @@ -1518,7 +1518,6 @@ static qboolean SV_RecursiveLightPoint( model_t *model, mnode_t *node, const vec float front, back, frac; int i, side; vec3_t mid; - mnode_t *children[2]; int numsurfaces, firstsurface; // didn't hit anything @@ -1529,18 +1528,16 @@ static qboolean SV_RecursiveLightPoint( model_t *model, mnode_t *node, const vec front = PlaneDiff( start, node->plane ); back = PlaneDiff( end, node->plane ); - node_children( children, node, model ); - side = front < 0.0f; if(( back < 0.0f ) == side ) - return SV_RecursiveLightPoint( model, children[side], start, end, point_color ); + return SV_RecursiveLightPoint( model, node_child( node, side, model ), start, end, point_color ); frac = front / ( front - back ); VectorLerp( start, frac, end, mid ); // co down front side - if( SV_RecursiveLightPoint( model, children[side], start, mid, point_color )) + if( SV_RecursiveLightPoint( model, node_child( node, side, model ), start, mid, point_color )) return true; // hit something if(( back < 0.0f ) == side ) @@ -1602,7 +1599,7 @@ static qboolean SV_RecursiveLightPoint( model_t *model, mnode_t *node, const vec } // go down back side - return SV_RecursiveLightPoint( model, children[!side], mid, end, point_color ); + return SV_RecursiveLightPoint( model, node_child( node, !side, model ), mid, end, point_color ); } /*