Fix load_textures overwriting tile_size with nil for variable-size atlases

When an atlas declares tile_size_px = null (variable-size tiles), the
load_textures call was overwriting the map's tile_size with nil, causing
an arithmetic error in draw_layer on the first render frame.

Guard the tile_size update so it only applies when tile_size_px is
non-nil; maps using variable-size atlases keep their tile_size from
the stub default (32) set at load time.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Axel Meyer
2026-05-21 23:28:33 +02:00
parent 99d00bd115
commit e5a350fcb2

View File

@@ -687,8 +687,10 @@ function M.load_textures(asset_aliases)
} }
end end
-- Update m.tile_size from first atlas (assume uniform; first atlas wins) -- Update m.tile_size from first atlas only when the atlas declares a uniform
if m.atlases[1] then -- tile size. Variable-size atlases (tile_size_px = null) keep the tile_size
-- that was set by the stub or tilemap JSON at load time (typically 32).
if m.atlases[1] and m.atlases[1].tile_size_px ~= nil then
m.tile_size = m.atlases[1].tile_size_px m.tile_size = m.atlases[1].tile_size_px
end end
end end