Fix up lib_finetangent so tan() returns values starting from "0" in Lua (finetangent itself hasn't been touched)

Also fixed how the function went out of the array's bounds for ANGLE_180 and above (or negative angles)
This commit is contained in:
Monster Iestyn 2015-10-10 21:21:16 +01:00
parent a0df3cec7b
commit d4f2d24921
1 changed files with 3 additions and 1 deletions

View File

@ -77,7 +77,9 @@ static int lib_finecosine(lua_State *L)
static int lib_finetangent(lua_State *L)
{
lua_pushfixed(L, FINETANGENT((luaL_checkangle(L, 1)>>ANGLETOFINESHIFT) & FINEMASK));
// HACK: add ANGLE_90 to make tan() in Lua start at 0 like it should
// use & 4095 instead of & FINEMASK (8191), so it doesn't go out of the array's bounds
lua_pushfixed(L, FINETANGENT(((luaL_checkangle(L, 1)+ANGLE_90)>>ANGLETOFINESHIFT) & 4095));
return 1;
}