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
This commit is contained in:
@@ -388,9 +388,10 @@ bool cWSSAnvil::SetChunkData(const cChunkCoords & a_Chunk, const AString & a_Dat
|
||||
cWSSAnvil::cMCAFile * cWSSAnvil::LoadMCAFile(const cChunkCoords & a_Chunk)
|
||||
{
|
||||
// ASSUME m_CS is locked
|
||||
ASSERT(m_CS.IsLocked());
|
||||
|
||||
const int RegionX = (int)(floorf((float)a_Chunk.m_ChunkX / 32.0f));
|
||||
const int RegionZ = (int)(floorf((float)a_Chunk.m_ChunkZ / 32.0f));
|
||||
const int RegionX = FAST_FLOOR_DIV(a_Chunk.m_ChunkX, 32);
|
||||
const int RegionZ = FAST_FLOOR_DIV(a_Chunk.m_ChunkZ, 32);
|
||||
|
||||
// Is it already cached?
|
||||
for (cMCAFiles::iterator itr = m_Files.begin(); itr != m_Files.end(); ++itr)
|
||||
|
||||
Reference in New Issue
Block a user