]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - world.c
increased build number to 79
[xonotic/darkplaces.git] / world.c
diff --git a/world.c b/world.c
index 5a8d033a468998570d536377a7415ee361a44bce..a37612bf146b35f387955b2e87db89833e1c8fc4 100644 (file)
--- a/world.c
+++ b/world.c
@@ -378,7 +378,10 @@ loc0:
        if ( node->contents < 0)
        {
                if (ent->num_leafs == MAX_ENT_LEAFS)
+               {
+                       Con_DPrintf("FindTouchedLeafs overflow\n");
                        return;
+               }
 
                leaf = (mleaf_t *)node;
                leafnum = leaf - sv.worldmodel->leafs - 1;
@@ -435,21 +438,28 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
 // set the abs box
 
 // LordHavoc: enabling rotating bmodels
-       if (ent->v.solid == SOLID_BSP && (ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]) )
+       if (ent->v.solid == SOLID_BSP && (ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]))
        {       // expand for rotation
                float           max, v;
                int                     i;
 
+               max = DotProduct(ent->v.mins, ent->v.mins);
+               v = DotProduct(ent->v.maxs, ent->v.maxs);
+               if (max < v)
+                       max = v;
+               max = sqrt(max);
+               /*
                max = 0;
                for (i=0 ; i<3 ; i++)
                {
-                       v =fabs( ent->v.mins[i]);
-                       if (v > max)
+                       v = fabs(ent->v.mins[i]);
+                       if (max < v)
                                max = v;
-                       v =fabs( ent->v.maxs[i]);
-                       if (v > max)
+                       v = fabs(ent->v.maxs[i]);
+                       if (max < v)
                                max = v;
                }
+               */
                for (i=0 ; i<3 ; i++)
                {
                        ent->v.absmin[i] = ent->v.origin[i] - max;
@@ -483,7 +493,7 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
                ent->v.absmax[1] += 1;
                ent->v.absmax[2] += 1;
        }
-       
+
 // link to PVS leafs
        ent->num_leafs = 0;
        if (ent->v.modelindex)
@@ -505,7 +515,7 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
                else
                        break;          // crosses the node
        }
-       
+
 // link it in  
 
        if (ent->v.solid == SOLID_TRIGGER)
@@ -933,8 +943,7 @@ trace_t SV_ClipMoveToEntity (edict_t *ent, vec3_t start, vec3_t mins, vec3_t max
 
 // LordHavoc: enabling rotating bmodels
        // rotate start and end into the models frame of reference
-       if (ent->v.solid == SOLID_BSP && 
-       (ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]) )
+       if (ent->v.solid == SOLID_BSP && (ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]))
        {
                vec3_t  forward, right, up;
                vec3_t  temp;
@@ -957,8 +966,7 @@ trace_t SV_ClipMoveToEntity (edict_t *ent, vec3_t start, vec3_t mins, vec3_t max
 
 // LordHavoc: enabling rotating bmodels
        // rotate endpos back to world frame of reference
-       if (ent->v.solid == SOLID_BSP && 
-       (ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]) )
+       if (ent->v.solid == SOLID_BSP && (ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]))
        {
                vec3_t  a;
                vec3_t  forward, right, up;