]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/util/numeric.cpp
Keep mapblocks in memory if they're in range (#10714)
[dragonfireclient.git] / src / util / numeric.cpp
index 1af3f66be8df9f096737e8a4809cf497688e905c..99e4cfb5ce24d5804b4342058aa6bd8fecca272a 100644 (file)
@@ -106,10 +106,6 @@ u64 murmur_hash_64_ua(const void *key, int len, unsigned int seed)
 bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir,
                f32 camera_fov, f32 range, f32 *distance_ptr)
 {
-       // Maximum radius of a block.  The magic number is
-       // sqrt(3.0) / 2.0 in literal form.
-       static constexpr const f32 block_max_radius = 0.866025403784f * MAP_BLOCKSIZE * BS;
-
        v3s16 blockpos_nodes = blockpos_b * MAP_BLOCKSIZE;
 
        // Block center position
@@ -123,7 +119,7 @@ bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir,
        v3f blockpos_relative = blockpos - camera_pos;
 
        // Total distance
-       f32 d = MYMAX(0, blockpos_relative.getLength() - block_max_radius);
+       f32 d = MYMAX(0, blockpos_relative.getLength() - BLOCK_MAX_RADIUS);
 
        if (distance_ptr)
                *distance_ptr = d;
@@ -141,7 +137,7 @@ bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir,
        // such that a block that has any portion visible with the
        // current camera position will have the center visible at the
        // adjusted postion
-       f32 adjdist = block_max_radius / cos((M_PI - camera_fov) / 2);
+       f32 adjdist = BLOCK_MAX_RADIUS / cos((M_PI - camera_fov) / 2);
 
        // Block position relative to adjusted camera
        v3f blockpos_adj = blockpos - (camera_pos - camera_dir * adjdist);