[2.1.15] Restore backwards compatibility for tan()

DO NOT MERGE THIS INTO THE INTERNAL REPO. This is a temporary 2.1.15 only fix. This commit allows an optional boolean for tan(), which when true will automatically shift angles by ANGLE_90.
This commit is contained in:
wolfy852 2016-05-06 17:48:28 -05:00
parent 604ae7d072
commit 5e50a51386

View file

@ -81,9 +81,15 @@ static int lib_finecosine(lua_State *L)
static int lib_finetangent(lua_State *L)
{
// 2.1.15 ONLY HACK: optional boolean argument, only add ANGLE_90 if true
boolean newtan = lua_optboolean(L, 2);
if (newtan)
// 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));
else
lua_pushfixed(L, FINETANGENT((luaL_checkangle(L, 1)>>ANGLETOFINESHIFT) & 4095));
return 1;
}