From 636773487a17a1eb4b06b0c79d1cf4a161492280 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20C?= Date: Sat, 26 Jun 2021 11:49:26 +0200 Subject: [PATCH] Optimized load.lua by avoiding multi-argument packing --- load.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/load.lua b/load.lua index f7ad294..a6d94e5 100644 --- a/load.lua +++ b/load.lua @@ -6,19 +6,20 @@ function mapgen_rivers.load_map(filename, bytes, signed, size) if #data < bytes*size then data = minetest.decompress(data) end + local sbyte = string.byte local map = {} for i=1, size do - local i0, i1 = (i-1)*bytes+1, i*bytes + local i0 = (i-1)*bytes+1 local elements = {data:byte(i0, i1)} - local n = elements[1] + local n = sbyte(data, i0) if signed and n >= 128 then n = n - 256 end - for j=2, bytes do - n = n*256 + elements[j] + for j=1, bytes-1 do + n = n*256 + sbyte(data, i0+j) end map[i] = n