Skip to content

Commit

Permalink
Reduce GCAlloc
Browse files Browse the repository at this point in the history
  • Loading branch information
takahiro0327 authored and ManlyMarco committed Aug 26, 2024
1 parent 02caead commit 3e1dab8
Showing 1 changed file with 29 additions and 10 deletions.
39 changes: 29 additions & 10 deletions Core_BetterPenetration/Tools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -179,21 +179,40 @@ internal static void RemoveCollidersFromCoordinate(ChaControl character)

foreach (var dynamicBone in dynamicBones)
{
if (dynamicBone == null || dynamicBone.name == null || dynamicBone.m_Colliders == null)
if (!dynamicBone)
continue;

bool bpBone = dynamicBone.name.Contains("Vagina") || dynamicBone.name.Contains("Belly") || dynamicBone.name.Contains("Ana");
for (int collider = dynamicBone.m_Colliders.Count - 1; collider >= 0; collider--)
{
if (dynamicBone.m_Colliders[collider] == null || dynamicBone.m_Colliders[collider].name == null)
continue;
var dbName = dynamicBone.name;
var dbColliders = dynamicBone.m_Colliders;

if (dbName == null || dbColliders == null || dbColliders.Count <= 0)
continue;

bool bpCollider = dynamicBone.m_Colliders[collider].name.Contains("cm_J_vdan") || dynamicBone.m_Colliders[collider].name.Contains("cm_J_dan");
if (bpBone == bpCollider)
continue;
bool bpBone = dbName.Contains("Vagina") || dbName.Contains("Belly") || dbName.Contains("Ana");
int last = 0;

dynamicBone.m_Colliders.RemoveAt(collider);
for (int collider = 0; collider < dbColliders.Count; ++collider)
{
if (dbColliders[collider])
{
var colliderName = dbColliders[collider].name;

if (colliderName != null)
{
bool bpCollider = colliderName.Contains("cm_J_vdan") || colliderName.Contains("cm_J_dan");

if (bpBone != bpCollider)
continue; //remove collider
}
}

//keep collider
if (last != collider)
dbColliders[last] = dbColliders[collider];
++last;
}

dbColliders.RemoveRange(last, dbColliders.Count - last);
}
}
}
Expand Down

0 comments on commit 3e1dab8

Please sign in to comment.