summaryrefslogtreecommitdiffhomepage
path: root/test/loader.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2024-02-11 08:32:10 +0100
committerStanislaw Halik <sthalik@misaki.pl>2024-02-11 08:49:53 +0100
commit017cb08bf33608f1ceb8d59800a8d1d2f9d5d455 (patch)
tree8918ad2e036d8dc79b7b2cbdce858a9617551aea /test/loader.cpp
parentb2be7d57642197c0f65d2645c767c4f868ababb1 (diff)
loader: allow adding atlases to the list without parsing them
Diffstat (limited to 'test/loader.cpp')
-rw-r--r--test/loader.cpp52
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