Skip to content

Commit 5b59159

Browse files
authored
Optimize TraceBleed to skip unnecessary TraceLine calls (#1106)
* Optimize TraceBleed to skip unnecessary TraceLine calls * Condition mistake
1 parent 9ba95ba commit 5b59159

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

regamedll/dlls/cbase.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1539,6 +1539,11 @@ void CBaseEntity::TraceBleed(float flDamage, Vector vecDir, TraceResult *ptr, in
15391539

15401540
for (i = 0; i < cCount; i++)
15411541
{
1542+
#ifdef REGAMEDLL_FIXES
1543+
// early flip-coin, don't waste trace resources
1544+
if (RANDOM_LONG(0, 2) != 0)
1545+
continue;
1546+
#endif
15421547
// trace in the opposite direction the shot came from (the direction the shot is going)
15431548
vecTraceDir = vecDir * -1.0f;
15441549

@@ -1549,7 +1554,9 @@ void CBaseEntity::TraceBleed(float flDamage, Vector vecDir, TraceResult *ptr, in
15491554
UTIL_TraceLine(ptr->vecEndPos, ptr->vecEndPos + vecTraceDir * -172.0f, ignore_monsters, ENT(pev), &Bloodtr);
15501555
if (Bloodtr.flFraction != 1.0f)
15511556
{
1557+
#ifndef REGAMEDLL_FIXES
15521558
if (!RANDOM_LONG(0, 2))
1559+
#endif
15531560
{
15541561
UTIL_BloodDecalTrace(&Bloodtr, BloodColor());
15551562
}

0 commit comments

Comments
 (0)