From aa327126bf831b325690dc94ebbc171f87faa81c Mon Sep 17 00:00:00 2001 From: Lars Mueller Date: Sat, 2 Jul 2022 17:38:53 +0200 Subject: [PATCH] b3d writing: Round Lua doubles to floats rather than erroring if float (precision) bounds are exceeded --- b3d.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/b3d.lua b/b3d.lua index 6787ae9..1c747b8 100644 --- a/b3d.lua +++ b/b3d.lua @@ -6,6 +6,8 @@ local read_int, read_single = modlib.binary.read_int, modlib.binary.read_single local write_int, write_single = modlib.binary.write_int, modlib.binary.write_single +local fround = modlib.math.fround + -- Set environment local _ENV = {} setfenv(1, _ENV) @@ -346,7 +348,7 @@ local function write_rope(self) end local function float(val) - write_single(byte, val) + write_single(byte, fround(val)) end local function float_array(arr, len)