#pragma once #include "compat/defs.hpp" #include "compat/assert.hpp" #include "tile-defs.hpp" #include #include #include #include namespace Magnum::Examples { struct tile_atlas; struct tile_image final { std::shared_ptr atlas; std::uint8_t variant = 0xff; explicit operator bool() const noexcept { return !!atlas; } }; struct tile final { enum class pass_mode : std::uint8_t { pass_blocked, pass_ok, pass_shoot_through, }; using enum pass_mode; tile_image ground_image, wall_north, wall_west; pass_mode passability = pass_shoot_through; constexpr tile() = default; DECLARE_DEPRECATED_COPY_OPERATOR(tile); }; } //namespace Magnum::Examples