Also test source pitch is positive and clarify error (resolves #1474)

According to the OpenAL 1.1 specification AL_PITCH, values must be in the range (0.0f, any]. Though I guess any does not include infinity.
This commit is contained in:
Bart van Strien
2019-03-09 15:24:02 +01:00
parent 5b2b328624
commit 00e7d640c7
+4 -3
View File
@@ -71,10 +71,11 @@ int w_Source_setPitch(lua_State *L)
{
Source *t = luax_checksource(L, 1);
float p = (float)luaL_checknumber(L, 2);
if (p != p)
return luaL_error(L, "Pitch cannot be NaN.");
if (p > std::numeric_limits<lua_Number>::max() ||
p < std::numeric_limits<lua_Number>::min() ||
p != p)
return luaL_error(L, "Pitch has to be finite and not NaN.");
p <= 0.0f)
return luaL_error(L, "Pitch has to be non-zero, positive, finite number.");
t->setPitch(p);
return 0;
}