Merge branch 'fixedmul-c-fix' into 'master'

Correct C FixedMul() off-by-one errors

See merge request STJr/SRB2!245
This commit is contained in:
Monster Iestyn 2018-06-03 15:14:06 -04:00
commit 650e0eafce
1 changed files with 3 additions and 1 deletions

View File

@ -33,7 +33,9 @@
*/
fixed_t FixedMul(fixed_t a, fixed_t b)
{
return (fixed_t)((((INT64)a * b) ) / FRACUNIT);
// Need to cast to unsigned before shifting to avoid undefined behaviour
// for negative integers
return (fixed_t)(((UINT64)((INT64)a * b)) >> FRACBITS);
}
#endif //__USE_C_FIXEDMUL__