diff options
author | archshift <admin@archshift.com> | 2014-09-04 01:51:38 +0200 |
---|---|---|
committer | archshift <admin@archshift.com> | 2014-10-09 23:57:57 +0200 |
commit | 76b37acb421bf10e094182b2e9be111eb29c46f1 (patch) | |
tree | e35345c1278193765e3d170e928c44e3a469930a | |
parent | Use static casts instead of C casts, add floor-cast functions (diff) | |
download | cuberite-76b37acb421bf10e094182b2e9be111eb29c46f1.tar cuberite-76b37acb421bf10e094182b2e9be111eb29c46f1.tar.gz cuberite-76b37acb421bf10e094182b2e9be111eb29c46f1.tar.bz2 cuberite-76b37acb421bf10e094182b2e9be111eb29c46f1.tar.lz cuberite-76b37acb421bf10e094182b2e9be111eb29c46f1.tar.xz cuberite-76b37acb421bf10e094182b2e9be111eb29c46f1.tar.zst cuberite-76b37acb421bf10e094182b2e9be111eb29c46f1.zip |
-rw-r--r-- | src/Entities/Entity.h | 6 | ||||
-rw-r--r-- | src/Globals.h | 26 | ||||
-rw-r--r-- | src/Vector3.h | 6 |
3 files changed, 12 insertions, 26 deletions
diff --git a/src/Entities/Entity.h b/src/Entities/Entity.h index 0a03eb3f2..f0577aba2 100644 --- a/src/Entities/Entity.h +++ b/src/Entities/Entity.h @@ -27,9 +27,9 @@ return super::GetClass(); \ } -#define POSX_TOINT FloorD(GetPosX()) -#define POSY_TOINT FloorD(GetPosY()) -#define POSZ_TOINT FloorD(GetPosZ()) +#define POSX_TOINT FloorC(GetPosX()) +#define POSY_TOINT FloorC(GetPosY()) +#define POSZ_TOINT FloorC(GetPosZ()) #define POS_TOINT Vector3i(POSXTOINT, POSYTOINT, POSZTOINT) #define GET_AND_VERIFY_CURRENT_CHUNK(ChunkVarName, X, Z) cChunk * ChunkVarName = a_Chunk.GetNeighborChunk(X, Z); if ((ChunkVarName == NULL) || !ChunkVarName->IsValid()) { return; } diff --git a/src/Globals.h b/src/Globals.h index 8bf7a0f0c..9959d92a9 100644 --- a/src/Globals.h +++ b/src/Globals.h @@ -400,34 +400,20 @@ T Clamp(T a_Value, T a_Min, T a_Max) -/** Floors a_Value, then casts it to C (an int by default) */ -template <typename C = int> -C FloorD(double a_Value) +/** Floors a value, then casts it to C (an int by default) */ +template <typename C = int, typename T> +typename std::enable_if<std::is_arithmetic<T>::value, C>::type FloorC(T a_Value) { return static_cast<C>(std::floor(a_Value)); } -/** Floors a_Value, then casts it to C (an int by default) */ -template <typename C = int> -C FloorF(double a_Value) -{ - return static_cast<C>(std::floorf(a_Value)); -} - -/** Ciels a_Value, then casts it to C (an int by default) */ -template <typename C = int> -C CeilD(double a_Value) +/** Ceils a value, then casts it to C (an int by default) */ +template <typename C = int, typename T> +typename std::enable_if<std::is_arithmetic<T>::value, C>::type CeilC(T a_Value) { return static_cast<C>(std::ceil(a_Value)); } -/** Ciels a_Value, then casts it to C (an int by default) */ -template <typename C = int> -C CeilF(double a_Value) -{ - return static_cast<C>(std::ceilf(a_Value)); -} - diff --git a/src/Vector3.h b/src/Vector3.h index 782b0d1c9..937c8fdfa 100644 --- a/src/Vector3.h +++ b/src/Vector3.h @@ -137,9 +137,9 @@ public: inline Vector3<int> Floor(void) const { return Vector3<int>( - static_cast<int>(floor(x)), - static_cast<int>(floor(y)), - static_cast<int>(floor(z)) + FloorC(x), + FloorC(y), + FloorC(z) ); } |