summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/global-coords.cpp6
-rw-r--r--src/global-coords.hpp9
2 files changed, 7 insertions, 8 deletions
diff --git a/src/global-coords.cpp b/src/global-coords.cpp
index 7df70fe0..87a2c79c 100644
--- a/src/global-coords.cpp
+++ b/src/global-coords.cpp
@@ -11,9 +11,9 @@ static_assert(std::is_same_v<decltype(chunk_coords::x), decltype(chunk_coords::y
static_assert(TILE_MAX_DIM == (1 << 4));
-static_assert(global_coords{(int)TILE_MAX_DIM-1, (int)TILE_MAX_DIM-1}.chunk() == global_coords{}.chunk());
-static_assert(global_coords{(int)TILE_MAX_DIM-1, (int)TILE_MAX_DIM}.chunk() != global_coords{}.chunk());
-static_assert(global_coords{(1u + (1<<15)) << 4 | 3, (2u + (1<<15)) << 4 | 4} == global_coords{{1, 2}, {3, 4}, -8});
+static_assert(global_coords{(int)TILE_MAX_DIM-1, (int)TILE_MAX_DIM-1, 0}.chunk() == global_coords{}.chunk());
+static_assert(global_coords{(int)TILE_MAX_DIM-1, (int)TILE_MAX_DIM, 0}.chunk() == chunk_coords{0, 1});
+static_assert(global_coords{(1u + (1<<15)) << 4 | 3, (2u + (1<<15)) << 4 | 4, nullptr} == global_coords{{1, 2}, {3, 4}, -8});
static_assert(global_coords{-123, 456, 1}.z() == 1);
static_assert(global_coords{-123, 511, 5}.chunk() == chunk_coords{-8, 31});
diff --git a/src/global-coords.hpp b/src/global-coords.hpp
index 3e9ac983..1bf79e4a 100644
--- a/src/global-coords.hpp
+++ b/src/global-coords.hpp
@@ -31,7 +31,6 @@ struct chunk_coords_ final {
int16_t x = 0, y = 0;
int8_t z = 0;
- explicit constexpr operator chunk_coords() const noexcept { return {x, y}; }
constexpr chunk_coords_() noexcept = default;
constexpr chunk_coords_(int16_t x, int16_t y, int8_t z) noexcept : x{x}, y{y}, z{z} {}
constexpr chunk_coords_(chunk_coords c, int8_t z) noexcept : x{c.x}, y{c.y}, z{z} {}
@@ -55,8 +54,8 @@ struct global_coords final {
},
y{ uint32_t((c.y + s0::value) << 4) | (xy.y & 0x0f) }
{}
- constexpr global_coords(uint32_t x, uint32_t y) noexcept : x{x}, y{y} {}
- constexpr global_coords(int32_t x, int32_t y, int8_t z = 0) noexcept :
+ constexpr global_coords(uint32_t x, uint32_t y, std::nullptr_t) noexcept : x{x}, y{y} {}
+ constexpr global_coords(int32_t x, int32_t y, int8_t z) noexcept :
x{uint32_t(x + (s0::value<<4)) | uint32_t(((z + z0::value) & 0x0f) << 20)},
y{uint32_t(y + (s0::value<<4))}
{}
@@ -106,7 +105,7 @@ constexpr Vector3i global_coords::to_signed3() const noexcept
constexpr global_coords global_coords::operator+(Vector2i vec) const noexcept
{
- return { uint32_t((int64_t)x+vec[0]), uint32_t((int64_t)y+vec[1]) };
+ return { uint32_t((int64_t)x+vec[0]), uint32_t((int64_t)y+vec[1]), nullptr };
}
constexpr global_coords& global_coords::operator+=(Vector2i vec) noexcept
@@ -118,7 +117,7 @@ constexpr global_coords& global_coords::operator+=(Vector2i vec) noexcept
constexpr global_coords global_coords::operator-(Vector2i vec) const noexcept
{
- return { uint32_t((int64_t)x-vec[0]), uint32_t((int64_t)y-vec[1]) };
+ return { uint32_t((int64_t)x-vec[0]), uint32_t((int64_t)y-vec[1]), nullptr };
}
constexpr global_coords& global_coords::operator-=(Vector2i vec) noexcept