- added conversion macros to convert floating point angles to angle_t, using xs_Float.h, and replaced all occurences in the code with them (let's hope I found everything.)

Converting a floating point value that is out of range for a signed integer will result in 0x80000000 with SSE math, which is used exclusively for this purpose on modern Visual C++ compilers, so this cannot be used anywhere.
On ARM there's problems with float to unsigned int conversions.

xs_Float does not depend on these
This commit is contained in:
Christoph Oelckers 2016-02-08 12:10:53 +01:00
commit 6d0ef7a9da
18 changed files with 58 additions and 46 deletions

View file

@ -392,7 +392,7 @@ static void parseSector(FScanner &sc)
{
sc.CheckString("=");
sc.MustGetFloat();
sec.planexform[sector_t::floor].angle = angle_t(sc.Float * ANGLE_90 / 90.);
sec.planexform[sector_t::floor].angle = FLOAT2ANGLE(sc.Float);
}
else if (sc.Compare("flooroffsetx"))
{
@ -416,7 +416,7 @@ static void parseSector(FScanner &sc)
{
sc.CheckString("=");
sc.MustGetFloat();
sec.planexform[sector_t::ceiling].angle = angle_t(sc.Float * ANGLE_90 / 90.);
sec.planexform[sector_t::ceiling].angle = FLOAT2ANGLE(sc.Float);
}
else if (sc.Compare("ceilingoffsetx"))
{