1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Improve MetaDataRef:{get,set}_float precision (#13130)

This commit is contained in:
Jude Melton-Houghton 2023-01-12 15:40:34 -05:00 committed by GitHub
parent 5f2925c59c
commit 3992a13f24
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 3 deletions

View file

@ -177,7 +177,9 @@ int MetaDataRef::l_get_float(lua_State *L)
std::string str_;
const std::string &str = meta->getString(name, &str_);
lua_pushnumber(L, stof(str));
// Convert with Lua, as is done in set_float.
lua_pushlstring(L, str.data(), str.size());
lua_pushnumber(L, lua_tonumber(L, -1));
return 1;
}
@ -188,8 +190,9 @@ int MetaDataRef::l_set_float(lua_State *L)
MetaDataRef *ref = checkAnyMetadata(L, 1);
std::string name = luaL_checkstring(L, 2);
float a = readParam<float>(L, 3);
std::string str = ftos(a);
luaL_checknumber(L, 3);
// Convert number to string with Lua as it gives good precision.
std::string str = readParam<std::string>(L, 3);
IMetadata *meta = ref->getmeta(true);
if (meta != NULL && meta->setString(name, str))