mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-01 03:21:41 +00:00
Merge branch 'fix_esm3_exterior_cell_ref_id' into 'master'
Use lexicographical comparison in ESM3ExteriorCellRefId::operator< (#7316) Closes #7316 See merge request OpenMW/openmw!2909
This commit is contained in:
commit
edfc6b78c8
@ -212,6 +212,14 @@ namespace ESM
|
||||
EXPECT_NE(hash(a), hash(b));
|
||||
}
|
||||
|
||||
TEST(ESMRefIdTest, esm3ExteriorCellHasLexicographicalOrder)
|
||||
{
|
||||
const RefId a = RefId::esm3ExteriorCell(0, 0);
|
||||
const RefId b = RefId::esm3ExteriorCell(1, 0);
|
||||
EXPECT_LT(a, b);
|
||||
EXPECT_TRUE(!(b < a));
|
||||
}
|
||||
|
||||
struct ESMRefIdToStringTest : TestWithParam<std::pair<RefId, std::string>>
|
||||
{
|
||||
};
|
||||
|
@ -28,9 +28,14 @@ namespace ESM
|
||||
int32_t getX() const { return mX; }
|
||||
int32_t getY() const { return mY; }
|
||||
|
||||
constexpr bool operator==(ESM3ExteriorCellRefId rhs) const noexcept { return mX == rhs.mX && mY == rhs.mY; }
|
||||
friend inline constexpr auto tie(const ESM3ExteriorCellRefId& value) noexcept
|
||||
{
|
||||
return std::tie(value.mX, value.mY);
|
||||
}
|
||||
|
||||
constexpr bool operator<(ESM3ExteriorCellRefId rhs) const noexcept { return mX < rhs.mX && mY < rhs.mY; }
|
||||
constexpr bool operator==(ESM3ExteriorCellRefId rhs) const noexcept { return tie(*this) == tie(rhs); }
|
||||
|
||||
constexpr bool operator<(ESM3ExteriorCellRefId rhs) const noexcept { return tie(*this) < tie(rhs); }
|
||||
|
||||
friend std::ostream& operator<<(std::ostream& stream, ESM3ExteriorCellRefId value);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user