summaryrefslogtreecommitdiff
path: root/src/camera.cpp
diff options
context:
space:
mode:
authorEsteban I. Ruiz Moreno <exio4.com@gmail.com>2013-03-31 00:30:32 -0300
committerest31 <MTest31@outlook.com>2016-08-10 12:18:25 +0200
commit2c31b79235dd83de753fce5890c5797e149048b8 (patch)
tree86dac00e356f00d89a48bde28b3b052214e8168c /src/camera.cpp
parentc013c73f338b1c2227662458ebc650883f83271c (diff)
downloadminetest-2c31b79235dd83de753fce5890c5797e149048b8.tar.gz
minetest-2c31b79235dd83de753fce5890c5797e149048b8.tar.bz2
minetest-2c31b79235dd83de753fce5890c5797e149048b8.zip
Add zoom, tweakable with zoom_fov, default key: Z (like optifine)
Diffstat (limited to 'src/camera.cpp')
-rw-r--r--src/camera.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/camera.cpp b/src/camera.cpp
index 6893b8cbf..e1d6dd910 100644
--- a/src/camera.cpp
+++ b/src/camera.cpp
@@ -103,6 +103,7 @@ Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control,
m_cache_fall_bobbing_amount = g_settings->getFloat("fall_bobbing_amount");
m_cache_view_bobbing_amount = g_settings->getFloat("view_bobbing_amount");
m_cache_fov = g_settings->getFloat("fov");
+ m_cache_zoom_fov = g_settings->getFloat("zoom_fov");
m_cache_view_bobbing = g_settings->getBool("view_bobbing");
m_nametags.clear();
}
@@ -387,8 +388,13 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 busytime,
if (m_camera_mode == CAMERA_MODE_THIRD_FRONT)
m_camera_position = my_cp;
- // Get FOV setting
- f32 fov_degrees = m_cache_fov;
+ // Get FOV
+ f32 fov_degrees;
+ if (player->getPlayerControl().zoom) {
+ fov_degrees = m_cache_zoom_fov;
+ } else {
+ fov_degrees = m_cache_fov;
+ }
fov_degrees = MYMAX(fov_degrees, 10.0);
fov_degrees = MYMIN(fov_degrees, 170.0);