From 71cd0199fda68a84c5f9a5252bf63e69712b177b Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Wed, 27 Feb 2013 10:01:20 +0000 Subject: Made FAST_FLOOR_DIV work correctly, replaced all floorf() divisions with it. Still not perfect - chunk and region calculations can be made into a single CPU instruction - SAR - but not all compilers are known to support that (">>" operator on signed datatypes needs to perform arithmetic shift, C/C++ standard makes it implementation-specific; MSVC and GCC do what we need, LLVM unknown) git-svn-id: http://mc-server.googlecode.com/svn/trunk@1224 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/ClientHandle.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/ClientHandle.cpp') diff --git a/source/ClientHandle.cpp b/source/ClientHandle.cpp index 3bf46420e..e2a57d79e 100644 --- a/source/ClientHandle.cpp +++ b/source/ClientHandle.cpp @@ -276,8 +276,8 @@ void cClientHandle::StreamChunks(void) ASSERT(m_Player != NULL); - int ChunkPosX = FAST_FLOOR_DIV(m_Player->GetPosX(), cChunkDef::Width); - int ChunkPosZ = FAST_FLOOR_DIV(m_Player->GetPosZ(), cChunkDef::Width); + int ChunkPosX = FAST_FLOOR_DIV((int)m_Player->GetPosX(), cChunkDef::Width); + int ChunkPosZ = FAST_FLOOR_DIV((int)m_Player->GetPosZ(), cChunkDef::Width); if ((ChunkPosX == m_LastStreamedChunkX) && (ChunkPosZ == m_LastStreamedChunkZ)) { // Already streamed for this position -- cgit v1.2.3