summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSmallJoker <mk939@ymail.com>2015-04-29 19:28:25 +0200
committerest31 <MTest31@outlook.com>2015-05-01 07:34:51 +0200
commit6626a3f72f66703a161abccab90cffcec31c3932 (patch)
tree80838a69a411c1bff1462b7ed07be007236a4e5b
parent37ca3212eee6d70a54493168014f9254cc6e8f37 (diff)
downloadminetest-6626a3f72f66703a161abccab90cffcec31c3932.tar.gz
minetest-6626a3f72f66703a161abccab90cffcec31c3932.tar.bz2
minetest-6626a3f72f66703a161abccab90cffcec31c3932.zip
Fix several MSVC issues numeric.h
-> Round negative numbers correctly CMakeLists.txt -> Link Json with the static run-time library
-rw-r--r--src/json/CMakeLists.txt5
-rw-r--r--src/unittest/test_utilities.cpp11
-rw-r--r--src/util/numeric.h2
3 files changed, 16 insertions, 2 deletions
diff --git a/src/json/CMakeLists.txt b/src/json/CMakeLists.txt
index 206c6ea9c..de99c7f0c 100644
--- a/src/json/CMakeLists.txt
+++ b/src/json/CMakeLists.txt
@@ -1,4 +1,7 @@
-add_library(jsoncpp jsoncpp.cpp)
+if(MSVC)
+ set(CMAKE_CXX_FLAGS_RELEASE "/MT")
+endif()
+add_library(jsoncpp jsoncpp.cpp)
target_link_libraries(jsoncpp)
diff --git a/src/unittest/test_utilities.cpp b/src/unittest/test_utilities.cpp
index caf4515c8..07108706a 100644
--- a/src/unittest/test_utilities.cpp
+++ b/src/unittest/test_utilities.cpp
@@ -45,6 +45,7 @@ public:
void testWrapRows();
void testIsNumber();
void testIsPowerOfTwo();
+ void testMyround();
};
static TestUtilities g_test_instance;
@@ -67,6 +68,7 @@ void TestUtilities::runTests(IGameDef *gamedef)
TEST(testWrapRows);
TEST(testIsNumber);
TEST(testIsPowerOfTwo);
+ TEST(testMyround);
}
////////////////////////////////////////////////////////////////////////////////
@@ -239,3 +241,12 @@ void TestUtilities::testIsPowerOfTwo()
}
UASSERT(is_power_of_two((u32)-1) == false);
}
+
+void TestUtilities::testMyround()
+{
+ UASSERT(myround(4.6f) == 5);
+ UASSERT(myround(1.2f) == 1);
+ UASSERT(myround(-3.1f) == -3);
+ UASSERT(myround(-6.5f) == -7);
+}
+
diff --git a/src/util/numeric.h b/src/util/numeric.h
index b4b841918..0eba01359 100644
--- a/src/util/numeric.h
+++ b/src/util/numeric.h
@@ -288,7 +288,7 @@ bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir,
*/
inline s32 myround(f32 f)
{
- return floor(f + 0.5);
+ return (s32)(f < 0.f ? (f - 0.5f) : (f + 0.5f));
}
/*