diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2023-11-28 06:03:18 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2023-11-28 06:03:18 +0100 |
commit | 184a6012dc888ad3b58b60815f369331482edd1b (patch) | |
tree | 5c2503687a683a524a6c3135b5bcd25af1d74562 | |
parent | 16f1261264f2a4d65753fb63471e0a1519377192 (diff) |
a
-rw-r--r-- | blender/concrete-wall1/concrete-wall1.json | 51 | ||||
-rw-r--r-- | blender/concrete-wall1/concrete-wall1.tpl.json | 17 | ||||
-rw-r--r-- | blender/concrete-wall1/n/side/0001.png (renamed from blender/concrete-wall1/side/n/0001.png) | bin | 2302 -> 2302 bytes | |||
-rw-r--r-- | blender/concrete-wall1/n/top/0001.png (renamed from blender/concrete-wall1/top/n/0001.png) | bin | 2145 -> 2145 bytes | |||
-rw-r--r-- | blender/concrete-wall1/n/wall/0001.png (renamed from blender/concrete-wall1/wall/n/0001.png) | bin | 6322 -> 6322 bytes | |||
-rw-r--r-- | blender/concrete-wall1/n/wall/0002.png (renamed from blender/concrete-wall1/wall/n/0002.png) | bin | 7822 -> 7822 bytes | |||
-rw-r--r-- | blender/concrete-wall1/n/wall/0003.png (renamed from blender/concrete-wall1/wall/n/0003.png) | bin | 7512 -> 7512 bytes | |||
-rw-r--r-- | serialize/wall-atlas.cpp | 3 | ||||
-rw-r--r-- | wall-tileset-tool/main.cpp | 22 |
9 files changed, 34 insertions, 59 deletions
diff --git a/blender/concrete-wall1/concrete-wall1.json b/blender/concrete-wall1/concrete-wall1.json deleted file mode 100644 index 196085bd..00000000 --- a/blender/concrete-wall1/concrete-wall1.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "foo", - "depth": 42, - "frames": [ - { - "offset": "0 x 0", - "size": "64 x 192" - }, - { - - "offset": "64 x 0", - "size": "64 x 64" - }, - { - - "offset": "128 x 0", - "size": "64 x 64" - } - ], - "n": { - "wall": { - "offset": 0, - "count": 1 - } - }, - "w": { - "pass-mode": "shoot-through", - "wall": { - "default-tint": false, - "offset": 0, - "count": 1 - }, - "side": { - "pixel-size": "42 x 192", - "default-tint": true - }, - "top": { - "pixel-size": "192 x 42", - "offset": 1, - "count": 2 - }, - "overlay": { - "pixel-size": "42 x 192", - "tint-mult": [ 0.125, 0.25, 0.5, 1 ], - "tint-add": [ 1, 2, 3 ], - "default-tint": false, - "mirrored": true - }, - "corner-L": { "from-rotation": "n" } - } -} diff --git a/blender/concrete-wall1/concrete-wall1.tpl.json b/blender/concrete-wall1/concrete-wall1.tpl.json new file mode 100644 index 00000000..ae29a94e --- /dev/null +++ b/blender/concrete-wall1/concrete-wall1.tpl.json @@ -0,0 +1,17 @@ +{ + "name": "concrete-wall1", + "depth": 20, + "n": { + "pass-mode": "blocked", + "wall": { + "pixel-size": "64 x 192" + }, + "side": { + "pixel-size": "20 x 192" + + }, + "top": { + "pixel-size": "192 x 20" + } + } +} diff --git a/blender/concrete-wall1/side/n/0001.png b/blender/concrete-wall1/n/side/0001.png Binary files differindex 69b349c5..69b349c5 100644 --- a/blender/concrete-wall1/side/n/0001.png +++ b/blender/concrete-wall1/n/side/0001.png diff --git a/blender/concrete-wall1/top/n/0001.png b/blender/concrete-wall1/n/top/0001.png Binary files differindex 495a2e48..495a2e48 100644 --- a/blender/concrete-wall1/top/n/0001.png +++ b/blender/concrete-wall1/n/top/0001.png diff --git a/blender/concrete-wall1/wall/n/0001.png b/blender/concrete-wall1/n/wall/0001.png Binary files differindex 5632b9d5..5632b9d5 100644 --- a/blender/concrete-wall1/wall/n/0001.png +++ b/blender/concrete-wall1/n/wall/0001.png diff --git a/blender/concrete-wall1/wall/n/0002.png b/blender/concrete-wall1/n/wall/0002.png Binary files differindex e6320348..e6320348 100644 --- a/blender/concrete-wall1/wall/n/0002.png +++ b/blender/concrete-wall1/n/wall/0002.png diff --git a/blender/concrete-wall1/wall/n/0003.png b/blender/concrete-wall1/n/wall/0003.png Binary files differindex 4da9d208..4da9d208 100644 --- a/blender/concrete-wall1/wall/n/0003.png +++ b/blender/concrete-wall1/n/wall/0003.png diff --git a/serialize/wall-atlas.cpp b/serialize/wall-atlas.cpp index cbac35d5..cc14499e 100644 --- a/serialize/wall-atlas.cpp +++ b/serialize/wall-atlas.cpp @@ -157,7 +157,8 @@ StringView direction_index_to_name(size_t i) std::vector<Frame> read_all_frames(const json& jroot) { - fm_assert(jroot.contains("frames")); + if (!jroot.contains("frames")) + return {}; std::vector<Frame> frames; const auto& jframes = jroot["frames"]; diff --git a/wall-tileset-tool/main.cpp b/wall-tileset-tool/main.cpp index 8fc907ae..9b07db75 100644 --- a/wall-tileset-tool/main.cpp +++ b/wall-tileset-tool/main.cpp @@ -35,7 +35,7 @@ const Direction& get_direction(const wall_atlas_def& atlas, size_t i) fm_assert(atlas.direction_mask[i]); auto idx = atlas.direction_map[i]; fm_assert(idx); - fm_assert(idx < atlas.direction_array.size()); + fm_assert(idx.val < atlas.direction_array.size()); return atlas.direction_array[idx.val]; } @@ -59,7 +59,12 @@ struct resolution : Vector2i { using Vector2i::Vector2i; }; Debug& operator<<(Debug& dbg, resolution res) { - return dbg << res.x() << colon('x') << res.y() << colon(','); + auto flags = dbg.flags(); + dbg << ""; + dbg.setFlags(flags | Debug::Flag::NoSpace); + dbg << res.x() << "x"_s << res.y(); + dbg.setFlags(flags); + return dbg; } constexpr inline int max_image_dimension = 4096; @@ -94,7 +99,6 @@ bool do_group(state st, size_t i, size_t j, Group& new_group) const auto& old_group = old_dir.group(j); //auto& new_dir = get_direction(new_atlas, (size_t)i); const auto dir_name = wall_atlas::directions[i].name; - std::vector<frame> frames; frames.reserve(64); const auto path = Path::join({ st.opts.input_dir, dir_name, group_name }); const auto expected_size = wall_atlas::expected_size(new_atlas.header.depth, (Group_)j); @@ -130,12 +134,14 @@ bool do_group(state st, size_t i, size_t j, Group& new_group) swap(mat, mat2); } - if (Vector2ui{(unsigned)mat.cols, (unsigned)mat.rows} != expected_size) [[unlikely]] + const auto size = Vector2ui{(unsigned)mat.cols, (unsigned)mat.rows}; + + if (size != expected_size) [[unlikely]] { - ERR << "fatal: wrong image size, expected size" + ERR << "fatal: wrong image size, expected" << resolution{expected_size} << colon(',') - << "actual size" << resolution{} - << "-- file" << filename; + << "actual" << resolution{size} + << "-- file" << filename; return false; } @@ -149,6 +155,8 @@ bool do_group(state st, size_t i, size_t j, Group& new_group) << "for" << quoted(filename); return false; } + + st.frames.push_back({.size = size, .mat = std::move(buf)}); } if (count == 0) |