- binaryangle.h: Create osum() for PlayerHorizon and PlayerAngle structs and use within each struct's interpolatedsum() method.

* Already doubled up by calculating `sum()` again within `interpolatedsum()` and no point changing that out without an `osum()`.
This commit is contained in:
Mitchell Richters 2020-10-18 22:43:42 +11:00
parent cd683e6511
commit ff9c7bf0bb

View file

@ -74,6 +74,11 @@ struct PlayerHorizon
} }
} }
fixedhoriz osum()
{
return ohoriz + ohorizoff;
}
fixedhoriz sum() fixedhoriz sum()
{ {
return horiz + horizoff; return horiz + horizoff;
@ -82,8 +87,8 @@ struct PlayerHorizon
fixedhoriz interpolatedsum(double const smoothratio) fixedhoriz interpolatedsum(double const smoothratio)
{ {
double const ratio = smoothratio * (1. / FRACUNIT); double const ratio = smoothratio * (1. / FRACUNIT);
fixed_t const prev = (ohoriz + ohorizoff).asq16(); fixed_t const prev = osum().asq16();
fixed_t const curr = (horiz + horizoff).asq16(); fixed_t const curr = sum().asq16();
return q16horiz(prev + xs_CRoundToInt(ratio * (curr - prev))); return q16horiz(prev + xs_CRoundToInt(ratio * (curr - prev)));
} }
}; };
@ -157,6 +162,11 @@ struct PlayerAngle
} }
} }
binangle osum()
{
return bamang(oang.asbam() + olook_ang.asbam());
}
binangle sum() binangle sum()
{ {
return bamang(ang.asbam() + look_ang.asbam()); return bamang(ang.asbam() + look_ang.asbam());
@ -166,8 +176,8 @@ struct PlayerAngle
{ {
double const ratio = smoothratio * (1. / FRACUNIT); double const ratio = smoothratio * (1. / FRACUNIT);
uint32_t const dang = UINT32_MAX >> 1; uint32_t const dang = UINT32_MAX >> 1;
int64_t const prev = oang.asbam() + olook_ang.asbam(); int64_t const prev = osum().asbam();
int64_t const curr = ang.asbam() + look_ang.asbam(); int64_t const curr = sum().asbam();
return bamang(prev + xs_CRoundToUInt(ratio * (((curr + dang - prev) & 0xFFFFFFFF) - dang))); return bamang(prev + xs_CRoundToUInt(ratio * (((curr + dang - prev) & 0xFFFFFFFF) - dang)));
} }