StretchMark 98% matching

This commit is contained in:
Dethrace Labs 2025-09-19 11:19:29 +12:00 committed by Dethrace Engineering Department
parent 3651325cdc
commit 2977ee40cc
1 changed files with 9 additions and 6 deletions

View File

@ -227,7 +227,7 @@ void SkidSection(tCar_spec* pCar, int pWheel_num, br_vector3* pPos, int pMateria
br_material* material;
if (BrVector3Dot(&pCar->prev_nor[pWheel_num], &pCar->nor[pWheel_num]) < 0.99699998f
|| (float)fabs(BrVector3Dot(&pCar->nor[pWheel_num], pPos) - BrVector3Dot(&pCar->prev_skid_pos[pWheel_num], &pCar->nor[pWheel_num])) > 0.01f) {
|| BR_ABS(BrVector3Dot(&pCar->nor[pWheel_num], pPos) - BrVector3Dot(&pCar->prev_skid_pos[pWheel_num], &pCar->nor[pWheel_num])) > 0.01f) {
pCar->old_skidding &= ~(1 << pWheel_num);
pCar->old_skid[pWheel_num] = -1;
return;
@ -267,11 +267,14 @@ void StretchMark(tSkid* pMark, br_vector3* pFrom, br_vector3* pTo, br_scalar pTe
BrVector3Sub(&temp, pTo, pFrom);
len = BrVector3Length(&temp);
rows[2].v[0] = pMark->normal.v[2] * temp.v[1] - pMark->normal.v[1] * temp.v[2];
rows[2].v[1] = pMark->normal.v[0] * temp.v[2] - pMark->normal.v[2] * temp.v[0];
rows[2].v[2] = pMark->normal.v[1] * temp.v[0] - pMark->normal.v[0] * temp.v[1];
if (len > BR_SCALAR_EPSILON) {
if (len < BR_SCALAR_EPSILON) {
rows[2].v[0] = pMark->normal.v[2] * temp.v[1] - pMark->normal.v[1] * temp.v[2];
rows[2].v[1] = pMark->normal.v[0] * temp.v[2] - pMark->normal.v[2] * temp.v[0];
rows[2].v[2] = pMark->normal.v[1] * temp.v[0] - pMark->normal.v[0] * temp.v[1];
} else {
rows[2].v[0] = pMark->normal.v[2] * temp.v[1] - pMark->normal.v[1] * temp.v[2];
rows[2].v[1] = pMark->normal.v[0] * temp.v[2] - pMark->normal.v[2] * temp.v[0];
rows[2].v[2] = pMark->normal.v[1] * temp.v[0] - pMark->normal.v[0] * temp.v[1];
rows[2].v[0] = 0.05f / len * rows[2].v[0];
rows[2].v[1] = 0.05f / len * rows[2].v[1];
rows[2].v[2] = 0.05f / len * rows[2].v[2];