2
0
mirror of https://github.com/rehlds/rehlds.git synced 2025-03-13 05:50:20 +03:00

Fixed optimization-dependent model bounds computation in R_GetStudioBounds (actually in R_StudioCalcBonePosition) (related to #239)

This commit is contained in:
WPMGPRoSToTeMa 2016-09-09 00:55:07 +03:00
parent f18dbc8ce1
commit 8ac264f133

View File

@ -434,11 +434,19 @@ void R_StudioCalcBonePosition(int frame, float s, mstudiobone_t *pbone, mstudioa
// and there's more data in the span
if (panimvalue->num.valid > k + 1)
{
#ifdef REHLDS_FIXES
pos[j] += ((long double)panimvalue[k + 1].value * (1.0f - s) + s * (long double)panimvalue[k + 2].value) * pbone->scale[j];
#else // REHLDS_FIXES
pos[j] += (panimvalue[k + 1].value * (1.0f - s) + s * panimvalue[k + 2].value) * pbone->scale[j];
#endif // REHLDS_FIXES
}
else
{
#ifdef REHLDS_FIXES
pos[j] += (long double)panimvalue[k + 1].value * pbone->scale[j];
#else // REHLDS_FIXES
pos[j] += panimvalue[k + 1].value * pbone->scale[j];
#endif // REHLDS_FIXES
}
}
else
@ -446,11 +454,19 @@ void R_StudioCalcBonePosition(int frame, float s, mstudiobone_t *pbone, mstudioa
// are we at the end of the repeating values section and there's another section with data?
if (panimvalue->num.total <= k + 1)
{
#ifdef REHLDS_FIXES
pos[j] += ((long double)panimvalue[panimvalue->num.valid].value * (1.0f - s) + s * (long double)panimvalue[panimvalue->num.valid + 2].value) * pbone->scale[j];
#else // REHLDS_FIXES
pos[j] += (panimvalue[panimvalue->num.valid].value * (1.0f - s) + s * panimvalue[panimvalue->num.valid + 2].value) * pbone->scale[j];
#endif // REHLDS_FIXES
}
else
{
#ifdef REHLDS_FIXES
pos[j] += (long double)panimvalue[panimvalue->num.valid].value * pbone->scale[j];
#else // REHLDS_FIXES
pos[j] += panimvalue[panimvalue->num.valid].value * pbone->scale[j];
#endif // REHLDS_FIXES
}
}
}