diff options
author | Mattes D <github@xoft.cz> | 2014-12-24 08:38:37 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-12-24 08:38:37 +0100 |
commit | 63de5f8a555e3bd4b9309792e3a9c0dcb9e8f4b6 (patch) | |
tree | 14af9578125c075eae3b57a7e56f25be605cc1a3 | |
parent | gcc compilation fix. (diff) | |
download | cuberite-63de5f8a555e3bd4b9309792e3a9c0dcb9e8f4b6.tar cuberite-63de5f8a555e3bd4b9309792e3a9c0dcb9e8f4b6.tar.gz cuberite-63de5f8a555e3bd4b9309792e3a9c0dcb9e8f4b6.tar.bz2 cuberite-63de5f8a555e3bd4b9309792e3a9c0dcb9e8f4b6.tar.lz cuberite-63de5f8a555e3bd4b9309792e3a9c0dcb9e8f4b6.tar.xz cuberite-63de5f8a555e3bd4b9309792e3a9c0dcb9e8f4b6.tar.zst cuberite-63de5f8a555e3bd4b9309792e3a9c0dcb9e8f4b6.zip |
-rw-r--r-- | src/ChunkDef.h | 10 | ||||
-rw-r--r-- | src/Entities/Player.cpp | 2 |
2 files changed, 4 insertions, 8 deletions
diff --git a/src/ChunkDef.h b/src/ChunkDef.h index 959841ecc..2bfa2949c 100644 --- a/src/ChunkDef.h +++ b/src/ChunkDef.h @@ -399,21 +399,17 @@ public: typedef std::list<cChunkCoords> cChunkCoordsList; typedef std::vector<cChunkCoords> cChunkCoordsVector; -namespace std -{ - /** A simple hash function for chunk coords, we assume that chunk coords won't use more than 16 bits, so the hash is almost an identity. Used for std::unordered_map<cChunkCoords, ...> */ -template<> struct hash<cChunkCoords> +class cChunkCoordsHash { - size_t operator ()(const cChunkCoords & a_Coords) +public: + size_t operator () (const cChunkCoords & a_Coords) const { return (static_cast<size_t>(a_Coords.m_ChunkX) << 16) ^ static_cast<size_t>(a_Coords.m_ChunkZ); } }; -} // namespace std - diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp index 7bdd1c6f7..1d5cc6554 100644 --- a/src/Entities/Player.cpp +++ b/src/Entities/Player.cpp @@ -2206,7 +2206,7 @@ void cPlayer::SendBlocksAround(int a_BlockX, int a_BlockY, int a_BlockZ, int a_R } // Divide the block changes by their respective chunks: - std::unordered_map<cChunkCoords, sSetBlockVector> Changes; + std::unordered_map<cChunkCoords, sSetBlockVector, cChunkCoordsHash> Changes; for (const auto & blk: blks) { Changes[cChunkCoords(blk.m_ChunkX, blk.m_ChunkZ)].push_back(blk); |