diff options
Diffstat (limited to 'test/loader.cpp')
-rw-r--r-- | test/loader.cpp | 52 |
1 files changed, 42 insertions, 10 deletions
diff --git a/test/loader.cpp b/test/loader.cpp index e3e6921d..01792bd6 100644 --- a/test/loader.cpp +++ b/test/loader.cpp @@ -2,8 +2,10 @@ #include "compat/assert.hpp" #include "loader/loader.hpp" #include "loader/wall-cell.hpp" +#include "loader/anim-cell.hpp" #include "src/ground-atlas.hpp" #include "src/wall-atlas.hpp" +#include "src/anim-atlas.hpp" #include <mg/Texture.h> namespace floormat { @@ -62,24 +64,54 @@ void test_app::test_loader() fm_assert(!A.raw_frame_array().isEmpty()); fm_assert(A.texture().id()); } + fm_assert(loader.ground_atlas("texel")->pass_mode() == pass_mode::blocked); + fm_assert(loader.ground_atlas("metal1")->pass_mode() == pass_mode::pass); + loader.sceneries(); +} +void test_app::test_loader2() +{ for (const auto& x : loader.ground_atlas_list()) { - if (x.name != loader.INVALID) + fm_assert(x.name); + if (x.name == loader.INVALID) + continue; + if (!x.atlas) { - (void)loader.ground_atlas(x.name); - fm_assert(x.atlas); - fm_assert(x.atlas == loader.ground_atlas(x.name)); + auto atlas = loader.ground_atlas(x.name, loader_policy::error); + fm_assert(atlas->name() == x.name); + fm_assert(atlas->texture().id()); + fm_assert(!atlas->pixel_size().isZero()); + fm_assert(Vector2ui{atlas->num_tiles2()}.product()); } - else + } + for (const auto& x : loader.wall_atlas_list()) + { + fm_assert(x.name); + if (x.name == loader.INVALID) + continue; + if (!x.atlas) { - fm_assert(x.atlas); - fm_assert(x.atlas == loader.make_invalid_ground_atlas().atlas); + auto atlas = loader.wall_atlas(x.name, loader_policy::error); + fm_assert(atlas->name() == x.name); + fm_assert(atlas->texture().id()); + fm_assert(!atlas->raw_frame_array().isEmpty()); + fm_assert(atlas->calc_direction(Wall::Direction_::N).wall.count); } } - fm_assert(loader.ground_atlas("texel")->pass_mode() == pass_mode::blocked); - fm_assert(loader.ground_atlas("metal1")->pass_mode() == pass_mode::pass); - loader.sceneries(); + for (const auto& x : loader.anim_atlas_list()) + { + fm_assert(x.name); + if (x.name == loader.INVALID) + continue; + auto atlas_ = loader.anim_atlas(x.name, {}, loader_policy::error); + fm_assert(atlas_); + auto& atlas = *atlas_; + fm_assert(atlas.name() == x.name); + fm_assert(atlas.texture().id()); + fm_assert(atlas.info().nframes > 0); + } + // todo scenery_cell } } // namespace floormat |