*/
cvar_t sv_useareanodes = {CVAR_NOTIFY, "sv_useareanodes", "1"};
+cvar_t sv_polygoncollisions = {CVAR_NOTIFY, "sv_polygoncollisions", "0"};
void SV_World_Init(void)
{
Cvar_RegisterVariable(&sv_useareanodes);
+ Cvar_RegisterVariable(&sv_polygoncollisions);
Collision_Init ();
}
link_t solid_edicts;
} areanode_t;
-#define AREA_DEPTH 4
-#define AREA_NODES 32
+#define AREA_DEPTH 10
+#define AREA_NODES (1 << (AREA_DEPTH + 1))
static areanode_t sv_areanodes[AREA_NODES];
static int sv_numareanodes;
Host_Error ("SV_ClipMoveToEntity: SOLID_BSP without MOVETYPE_PUSH");
}
- Collision_ClipTrace(&trace, ent, model, ent->v->origin, ent->v->angles, ent->v->mins, ent->v->maxs, start, mins, maxs, end);
+ if (sv_polygoncollisions.integer && (mins[0] != maxs[0] || mins[1] != maxs[1] || mins[2] != maxs[2]))
+ Collision_PolygonClipTrace(&trace, ent, model, ent->v->origin, ent->v->angles, ent->v->mins, ent->v->maxs, start, mins, maxs, end);
+ else
+ Collision_ClipTrace(&trace, ent, model, ent->v->origin, ent->v->angles, ent->v->mins, ent->v->maxs, start, mins, maxs, end);
return trace;
}