1
0
mirror of https://github.com/mt-mods/signs_lib.git synced 2025-04-01 17:50:19 +02:00

Fix out-of-bounds in 'combine' texture modifier

Co-authored-by: tenplus1 <tenplus1@users.noreply.github.com>
This commit is contained in:
Niklp 2024-02-26 16:14:54 +01:00
parent e387808065
commit 1fdff47dc8
No known key found for this signature in database
GPG Key ID: 05D6F5035E66267A
626 changed files with 36 additions and 26 deletions
api.lua
textures
signs_lib_font_16px_00.pngsigns_lib_font_16px_00c0.pngsigns_lib_font_16px_00c4.pngsigns_lib_font_16px_00c6.pngsigns_lib_font_16px_00c7.pngsigns_lib_font_16px_00c8.pngsigns_lib_font_16px_00c9.pngsigns_lib_font_16px_00ca.pngsigns_lib_font_16px_00d3.pngsigns_lib_font_16px_00d4.pngsigns_lib_font_16px_00d6.pngsigns_lib_font_16px_00d9.pngsigns_lib_font_16px_00dc.pngsigns_lib_font_16px_00df.pngsigns_lib_font_16px_00e0.pngsigns_lib_font_16px_00e4.pngsigns_lib_font_16px_00e6.pngsigns_lib_font_16px_00e7.pngsigns_lib_font_16px_00e8.pngsigns_lib_font_16px_00e9.pngsigns_lib_font_16px_00ea.pngsigns_lib_font_16px_00f3.pngsigns_lib_font_16px_00f4.pngsigns_lib_font_16px_00f6.pngsigns_lib_font_16px_00f9.pngsigns_lib_font_16px_00fc.pngsigns_lib_font_16px_0104.pngsigns_lib_font_16px_0105.pngsigns_lib_font_16px_0106.pngsigns_lib_font_16px_0107.pngsigns_lib_font_16px_0118.pngsigns_lib_font_16px_0119.pngsigns_lib_font_16px_0141.pngsigns_lib_font_16px_0142.pngsigns_lib_font_16px_015a.pngsigns_lib_font_16px_015b.pngsigns_lib_font_16px_0179.pngsigns_lib_font_16px_017a.pngsigns_lib_font_16px_017b.pngsigns_lib_font_16px_017c.pngsigns_lib_font_16px_20.pngsigns_lib_font_16px_21.pngsigns_lib_font_16px_22.pngsigns_lib_font_16px_23.pngsigns_lib_font_16px_24.pngsigns_lib_font_16px_25.pngsigns_lib_font_16px_26.pngsigns_lib_font_16px_27.pngsigns_lib_font_16px_28.pngsigns_lib_font_16px_29.pngsigns_lib_font_16px_2a.pngsigns_lib_font_16px_2b.pngsigns_lib_font_16px_2c.pngsigns_lib_font_16px_2d.pngsigns_lib_font_16px_2e.pngsigns_lib_font_16px_2f.pngsigns_lib_font_16px_30.pngsigns_lib_font_16px_31.pngsigns_lib_font_16px_32.pngsigns_lib_font_16px_33.pngsigns_lib_font_16px_34.pngsigns_lib_font_16px_35.pngsigns_lib_font_16px_36.pngsigns_lib_font_16px_37.pngsigns_lib_font_16px_38.pngsigns_lib_font_16px_39.pngsigns_lib_font_16px_3a.pngsigns_lib_font_16px_3b.pngsigns_lib_font_16px_3c.pngsigns_lib_font_16px_3d.pngsigns_lib_font_16px_3e.pngsigns_lib_font_16px_3f.pngsigns_lib_font_16px_40.pngsigns_lib_font_16px_41.pngsigns_lib_font_16px_42.pngsigns_lib_font_16px_43.pngsigns_lib_font_16px_44.pngsigns_lib_font_16px_45.pngsigns_lib_font_16px_46.pngsigns_lib_font_16px_47.pngsigns_lib_font_16px_48.pngsigns_lib_font_16px_49.pngsigns_lib_font_16px_4a.pngsigns_lib_font_16px_4b.pngsigns_lib_font_16px_4c.pngsigns_lib_font_16px_4d.pngsigns_lib_font_16px_4e.pngsigns_lib_font_16px_4f.pngsigns_lib_font_16px_50.pngsigns_lib_font_16px_51.pngsigns_lib_font_16px_52.pngsigns_lib_font_16px_53.pngsigns_lib_font_16px_54.pngsigns_lib_font_16px_55.pngsigns_lib_font_16px_56.pngsigns_lib_font_16px_57.pngsigns_lib_font_16px_58.pngsigns_lib_font_16px_59.pngsigns_lib_font_16px_5a.png

52
api.lua

@ -467,15 +467,6 @@ signs_lib.charwidth_wide32 = build_char_db(32)
local math_max = math.max
local function fill_line(x, y, w, c, font_size, colorbgw)
c = c or "0"
local tex = { }
for xx = 0, math.max(0, w), colorbgw do
table.insert(tex, (":%d,%d=signs_lib_color_"..font_size.."px_%s.png"):format(x + xx, y, c))
end
return table.concat(tex)
end
-- make char texture file name
-- if texture file does not exist use fallback texture instead
local function char_tex(font_name, ch)
@ -511,6 +502,26 @@ local function char_tex_wide(font_name, ch)
end
end
-- sign colour table
local colgrid = {
["0"] = "000000", -- black
["1"] = "000080", -- blue
["2"] = "008000", -- dark green
["3"] = "008080", -- dark cyan
["4"] = "800000", -- red
["5"] = "800080", -- purple
["6"] = "804000", -- brown
["7"] = "808080", -- light grey
["8"] = "404040", -- dark grey
["9"] = "8080ff", -- light blue
["A"] = "80ff80", -- green
["B"] = "80ffff", -- cyan
["C"] = "ff8080", -- skin pink
["D"] = "ff80ff", -- pink
["E"] = "ffff00", -- yellow
["F"] = "ffffff" -- white
}
local function make_line_texture(line, lineno, pos, line_width, line_height, cwidth_tab, font_size, colorbgw, cwidth_tab_wide, force_unicode_font)
local width = 0
local maxw = 0
@ -647,36 +658,25 @@ local function make_line_texture(line, lineno, pos, line_width, line_height, cwi
local xpos = start_xpos
local ypos = (line_height + def.line_spacing)* lineno + def.y_offset
cur_color = nil
for word_i, word in ipairs(words) do
local xoffs = (xpos - start_xpos)
if (xoffs > 0) and ((xoffs + word.w) > maxw) then
table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
xpos = start_xpos
ypos = ypos + line_height + def.line_spacing
lineno = lineno + 1
if lineno >= def.number_of_lines then break end
table.insert(texture, fill_line(xpos, ypos, maxw, cur_color, font_size, colorbgw))
end
for ch_i, ch in ipairs(word.chars) do
if ch.col ~= cur_color then
cur_color = ch.col
table.insert(texture, fill_line(xpos + ch.off, ypos, maxw, cur_color, font_size, colorbgw))
-- colorize character texture
local newtex = ch.tex .. '\\^[colorize\\:#' .. colgrid[ch.col]
table.insert(texture, (":%d,%d=%s"):format(xpos + ch.off, ypos, newtex))
end
table.insert(texture, (":%d,%d=%s"):format(xpos + ch.off, ypos, ch.tex))
end
table.insert(
texture,
(":%d,%d="):format(xpos + word.w, ypos) .. char_tex(font_name, " ")
)
xpos = xpos + word.w + cwidth_tab[" "]
if xpos >= (line_width + cwidth_tab[" "]) then break end
end
table.insert(texture, fill_line(xpos, ypos, maxw, "n", font_size, colorbgw))
table.insert(texture, fill_line(start_xpos, ypos + line_height, maxw, "n", font_size, colorbgw))
return table.concat(texture), lineno
end
@ -721,7 +721,7 @@ function signs_lib.make_sign_texture(lines, pos)
table.insert(texture, linetex)
lineno = ln + 1
end
table.insert(texture, "^[makealpha:0,0,0")
return table.concat(texture, "")
end

Binary file not shown.

Before

(image error) Size: 95 B

After

(image error) Size: 250 B

Binary file not shown.

Before

(image error) Size: 115 B

After

(image error) Size: 277 B

Binary file not shown.

Before

(image error) Size: 117 B

After

(image error) Size: 278 B

Binary file not shown.

Before

(image error) Size: 115 B

After

(image error) Size: 285 B

Binary file not shown.

Before

(image error) Size: 110 B

After

(image error) Size: 276 B

Binary file not shown.

Before

(image error) Size: 106 B

After

(image error) Size: 267 B

Binary file not shown.

Before

(image error) Size: 108 B

After

(image error) Size: 265 B

Binary file not shown.

Before

(image error) Size: 110 B

After

(image error) Size: 267 B

Binary file not shown.

Before

(image error) Size: 113 B

After

(image error) Size: 272 B

Binary file not shown.

Before

(image error) Size: 114 B

After

(image error) Size: 276 B

Binary file not shown.

Before

(image error) Size: 113 B

After

(image error) Size: 277 B

Binary file not shown.

Before

(image error) Size: 105 B

After

(image error) Size: 267 B

Binary file not shown.

Before

(image error) Size: 108 B

After

(image error) Size: 268 B

Binary file not shown.

Before

(image error) Size: 108 B

After

(image error) Size: 275 B

Binary file not shown.

Before

(image error) Size: 107 B

After

(image error) Size: 273 B

Binary file not shown.

Before

(image error) Size: 107 B

After

(image error) Size: 270 B

Binary file not shown.

Before

(image error) Size: 110 B

After

(image error) Size: 280 B

Binary file not shown.

Before

(image error) Size: 108 B

After

(image error) Size: 271 B

Binary file not shown.

Before

(image error) Size: 107 B

After

(image error) Size: 278 B

Binary file not shown.

Before

(image error) Size: 108 B

After

(image error) Size: 276 B

Binary file not shown.

Before

(image error) Size: 116 B

After

(image error) Size: 278 B

Binary file not shown.

Before

(image error) Size: 103 B

After

(image error) Size: 271 B

Binary file not shown.

Before

(image error) Size: 109 B

After

(image error) Size: 274 B

Binary file not shown.

Before

(image error) Size: 104 B

After

(image error) Size: 270 B

Binary file not shown.

Before

(image error) Size: 102 B

After

(image error) Size: 267 B

Binary file not shown.

Before

(image error) Size: 102 B

After

(image error) Size: 260 B

Binary file not shown.

Before

(image error) Size: 116 B

After

(image error) Size: 277 B

Binary file not shown.

Before

(image error) Size: 105 B

After

(image error) Size: 269 B

Binary file not shown.

Before

(image error) Size: 114 B

After

(image error) Size: 273 B

Binary file not shown.

Before

(image error) Size: 106 B

After

(image error) Size: 270 B

Binary file not shown.

Before

(image error) Size: 104 B

After

(image error) Size: 264 B

Binary file not shown.

Before

(image error) Size: 108 B

After

(image error) Size: 272 B

Binary file not shown.

Before

(image error) Size: 104 B

After

(image error) Size: 260 B

Binary file not shown.

Before

(image error) Size: 95 B

After

(image error) Size: 250 B

Binary file not shown.

Before

(image error) Size: 116 B

After

(image error) Size: 279 B

Binary file not shown.

Before

(image error) Size: 108 B

After

(image error) Size: 273 B

Binary file not shown.

Before

(image error) Size: 107 B

After

(image error) Size: 264 B

Binary file not shown.

Before

(image error) Size: 99 B

After

(image error) Size: 269 B

Binary file not shown.

Before

(image error) Size: 106 B

After

(image error) Size: 267 B

Binary file not shown.

Before

(image error) Size: 99 B

After

(image error) Size: 263 B

Binary file not shown.

Before

(image error) Size: 68 B

After

(image error) Size: 221 B

Binary file not shown.

Before

(image error) Size: 90 B

After

(image error) Size: 241 B

Binary file not shown.

Before

(image error) Size: 90 B

After

(image error) Size: 239 B

Binary file not shown.

Before

(image error) Size: 98 B

After

(image error) Size: 262 B

Binary file not shown.

Before

(image error) Size: 107 B

After

(image error) Size: 272 B

Binary file not shown.

Before

(image error) Size: 123 B

After

(image error) Size: 289 B

Binary file not shown.

Before

(image error) Size: 114 B

After

(image error) Size: 284 B

Binary file not shown.

Before

(image error) Size: 88 B

After

(image error) Size: 238 B

Binary file not shown.

Before

(image error) Size: 92 B

After

(image error) Size: 251 B

Binary file not shown.

Before

(image error) Size: 92 B

After

(image error) Size: 253 B

Binary file not shown.

Before

(image error) Size: 98 B

After

(image error) Size: 256 B

Binary file not shown.

Before

(image error) Size: 95 B

After

(image error) Size: 244 B

Binary file not shown.

Before

(image error) Size: 91 B

After

(image error) Size: 243 B

Binary file not shown.

Before

(image error) Size: 89 B

After

(image error) Size: 237 B

Binary file not shown.

Before

(image error) Size: 88 B

After

(image error) Size: 234 B

Binary file not shown.

Before

(image error) Size: 90 B

After

(image error) Size: 251 B

Binary file not shown.

Before

(image error) Size: 96 B

After

(image error) Size: 255 B

Binary file not shown.

Before

(image error) Size: 102 B

After

(image error) Size: 259 B

Binary file not shown.

Before

(image error) Size: 108 B

After

(image error) Size: 273 B

Binary file not shown.

Before

(image error) Size: 109 B

After

(image error) Size: 272 B

Binary file not shown.

Before

(image error) Size: 109 B

After

(image error) Size: 267 B

Binary file not shown.

Before

(image error) Size: 103 B

After

(image error) Size: 263 B

Binary file not shown.

Before

(image error) Size: 104 B

After

(image error) Size: 271 B

Binary file not shown.

Before

(image error) Size: 96 B

After

(image error) Size: 258 B

Binary file not shown.

Before

(image error) Size: 104 B

After

(image error) Size: 270 B

Binary file not shown.

Before

(image error) Size: 103 B

After

(image error) Size: 271 B

Binary file not shown.

Before

(image error) Size: 88 B

After

(image error) Size: 236 B

Binary file not shown.

Before

(image error) Size: 90 B

After

(image error) Size: 247 B

Binary file not shown.

Before

(image error) Size: 101 B

After

(image error) Size: 261 B

Binary file not shown.

Before

(image error) Size: 91 B

After

(image error) Size: 239 B

Binary file not shown.

Before

(image error) Size: 100 B

After

(image error) Size: 265 B

Binary file not shown.

Before

(image error) Size: 101 B

After

(image error) Size: 269 B

Binary file not shown.

Before

(image error) Size: 126 B

After

(image error) Size: 298 B

Binary file not shown.

Before

(image error) Size: 109 B

After

(image error) Size: 270 B

Binary file not shown.

Before

(image error) Size: 104 B

After

(image error) Size: 265 B

Binary file not shown.

Before

(image error) Size: 105 B

After

(image error) Size: 270 B

Binary file not shown.

Before

(image error) Size: 102 B

After

(image error) Size: 267 B

Binary file not shown.

Before

(image error) Size: 99 B

After

(image error) Size: 253 B

Binary file not shown.

Before

(image error) Size: 95 B

After

(image error) Size: 248 B

Binary file not shown.

Before

(image error) Size: 111 B

After

(image error) Size: 274 B

Binary file not shown.

Before

(image error) Size: 96 B

After

(image error) Size: 250 B

Binary file not shown.

Before

(image error) Size: 88 B

After

(image error) Size: 236 B

Binary file not shown.

Before

(image error) Size: 100 B

After

(image error) Size: 258 B

Binary file not shown.

Before

(image error) Size: 114 B

After

(image error) Size: 276 B

Binary file not shown.

Before

(image error) Size: 92 B

After

(image error) Size: 243 B

Binary file not shown.

Before

(image error) Size: 105 B

After

(image error) Size: 273 B

Binary file not shown.

Before

(image error) Size: 111 B

After

(image error) Size: 269 B

Binary file not shown.

Before

(image error) Size: 104 B

After

(image error) Size: 271 B

Binary file not shown.

Before

(image error) Size: 104 B

After

(image error) Size: 260 B

Binary file not shown.

Before

(image error) Size: 110 B

After

(image error) Size: 279 B

Binary file not shown.

Before

(image error) Size: 109 B

After

(image error) Size: 269 B

Binary file not shown.

Before

(image error) Size: 108 B

After

(image error) Size: 276 B

Binary file not shown.

Before

(image error) Size: 95 B

After

(image error) Size: 248 B

Binary file not shown.

Before

(image error) Size: 99 B

After

(image error) Size: 253 B

Binary file not shown.

Before

(image error) Size: 107 B

After

(image error) Size: 264 B

Binary file not shown.

Before

(image error) Size: 109 B

After

(image error) Size: 270 B

Binary file not shown.

Before

(image error) Size: 111 B

After

(image error) Size: 280 B

Binary file not shown.

Before

(image error) Size: 102 B

After

(image error) Size: 264 B

Binary file not shown.

Before

(image error) Size: 100 B

After

(image error) Size: 265 B

Some files were not shown because too many files have changed in this diff Show More