Skip to content

Commit

Permalink
refactor: remove rvref of std::function
Browse files Browse the repository at this point in the history
  • Loading branch information
OEOTYAN committed Nov 23, 2023
1 parent 33e7d7c commit 50d3193
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 10 deletions.
8 changes: 7 additions & 1 deletion src/mc/network/packet/ResourcePacksInfoPacket.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,13 @@ class ResourcePacksInfoPacket : public ::Packet {
// symbol:
// ??0ResourcePacksInfoPacket@@QEAA@_NAEAV?$vector@UPackInfoData@@V?$allocator@UPackInfoData@@@std@@@std@@10$$QEAV?$vector@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@V?$allocator@U?$pair@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V12@@std@@@2@@2@@Z
MCAPI
ResourcePacksInfoPacket(bool, std::vector<struct PackInfoData>&, std::vector<struct PackInfoData>&, bool, std::vector<std::pair<std::string, std::string>>&&);
ResourcePacksInfoPacket(
bool resourcePackRequired,
std::vector<struct PackInfoData>& behaviorPacks,
std::vector<struct PackInfoData>& resourcePacks,
bool forceServerPacksEnabled,
std::vector<std::pair<std::string, std::string>>&& cdnUrls
);

// NOLINTEND
};
28 changes: 19 additions & 9 deletions src/mc/world/level/levelgen/structure/BoundingBox.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,26 @@ class BoundingBox : public CommutativeGroup<BoundingBox, BlockPos, BlockPos> {
constexpr BoundingBox& operator=(class BoundingBox const& k) noexcept = default;
[[nodiscard]] constexpr BoundingBox(BlockPos const& min, BlockPos const& max) noexcept : min(min), max(max){};

constexpr void forEachBlockInBox(std::function<void(BlockPos const&)>&& todo) const {
constexpr void forEachPos(std::function<void(BlockPos const&)> const& todo) const {
for (int dy = min.y; dy <= max.y; ++dy)
for (int dx = min.x; dx <= max.x; ++dx)
for (int dz = min.z; dz <= max.z; ++dz) { todo(BlockPos{dx, dy, dz}); }
for (int dz = min.z; dz <= max.z; ++dz) {
todo(BlockPos{dx, dy, dz});
}
}

constexpr bool forEachBlockInBox(std::function<bool(BlockPos const&)>&& todo) const {
constexpr bool forEachPos(std::function<bool(BlockPos const&)> const& todo) const {
for (int dy = min.y; dy <= max.y; ++dy)
for (int dx = min.x; dx <= max.x; ++dx)
for (int dz = min.z; dz <= max.z; ++dz) {
if (!todo(BlockPos{dx, dy, dz})) { return false; }
if (!todo(BlockPos{dx, dy, dz})) {
return false;
}
}
return true;
}

constexpr void forEachBlockInBox(std::function<void(BlockPos const&, size_t)>&& todo) const {
constexpr void forEachPos(std::function<void(BlockPos const&, size_t)> const& todo) const {
size_t i = 0;
for (int dy = min.y; dy <= max.y; ++dy)
for (int dx = min.x; dx <= max.x; ++dx)
Expand All @@ -47,12 +51,14 @@ class BoundingBox : public CommutativeGroup<BoundingBox, BlockPos, BlockPos> {
}
}

constexpr bool forEachBlockInBox(std::function<bool(BlockPos const&, size_t)>&& todo) const {
constexpr bool forEachPos(std::function<bool(BlockPos const&, size_t)> const& todo) const {
size_t i = 0;
for (int dy = min.y; dy <= max.y; ++dy)
for (int dx = min.x; dx <= max.x; ++dx)
for (int dz = min.z; dz <= max.z; ++dz) {
if (!todo(BlockPos{dx, dy, dz}, i)) { return false; }
if (!todo(BlockPos{dx, dy, dz}, i)) {
return false;
}
i++;
}
return true;
Expand All @@ -70,13 +76,17 @@ class BoundingBox : public CommutativeGroup<BoundingBox, BlockPos, BlockPos> {

template <typename T>
[[nodiscard]] constexpr T& get(size_t index) noexcept {
if (index == 1) { return (T&)z; }
if (index == 1) {
return (T&)z;
}
return (T&)x;
}

template <typename T>
[[nodiscard]] constexpr T const& get(size_t index) const noexcept {
if (index == 1) { return (T)z; }
if (index == 1) {
return (T)z;
}
return (T)x;
}

Expand Down

0 comments on commit 50d3193

Please sign in to comment.