- 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:
parent
7b42093dc9
commit
6d0ef7a9da
18 changed files with 58 additions and 46 deletions
|
|
@ -1473,9 +1473,9 @@ void FParser::SF_SetCamera(void)
|
|||
else
|
||||
{
|
||||
fixed_t pitch = fixedvalue(t_argv[3]);
|
||||
if(pitch < -50*FRACUNIT) pitch = -50*FRACUNIT;
|
||||
if(pitch > 50*FRACUNIT) pitch = 50*FRACUNIT;
|
||||
newcamera->pitch=(angle_t)((pitch/65536.0f)*(ANGLE_45/45.0f)*(20.0f/32.0f));
|
||||
if (pitch < -50 * FRACUNIT) pitch = -50 * FRACUNIT;
|
||||
if (pitch > 50 * FRACUNIT) pitch = 50 * FRACUNIT;
|
||||
newcamera->pitch = xs_CRoundToUInt((pitch / 65536.0f)*(ANGLE_45 / 45.0f)*(20.0f / 32.0f));
|
||||
}
|
||||
player->camera=newcamera;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue