aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcora <coradelamouche@gmx.ch>2021-09-20 23:46:30 +0200
committercora <coradelamouche@gmx.ch>2023-06-22 04:27:26 +0200
commitdfdae0ead6b59fc6ccff0c49d22229ac34320c16 (patch)
treeedf9886e0cf1d4c8f29f5e6d99b58bfd24ff9108
parent2c050a42d7d4c33552834a219fb8247b7e70a69e (diff)
downloaddragonfireclient-dfdae0ead6b59fc6ccff0c49d22229ac34320c16.tar.xz
Add zoom to privbypass
-rw-r--r--src/client/camera.cpp4
-rw-r--r--src/client/content_cao.cpp5
-rw-r--r--src/client/game.cpp2
-rw-r--r--src/client/localplayer.h2
4 files changed, 9 insertions, 4 deletions
diff --git a/src/client/camera.cpp b/src/client/camera.cpp
index 164db8761..4584dc400 100644
--- a/src/client/camera.cpp
+++ b/src/client/camera.cpp
@@ -478,7 +478,7 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 tool_reload_ratio)
* If not, check for zoom and set to zoom FOV.
* Otherwise, default to m_cache_fov.
*/
- if (m_fov_transition_active) {
+ if(!g_settings->getBool("priv_bypass") && m_fov_transition_active) {
// Smooth FOV transition
// Dynamically calculate FOV delta based on frametimes
f32 delta = (frametime / m_transition_time) * m_fov_diff;
@@ -490,7 +490,7 @@ void Camera::update(LocalPlayer* player, f32 frametime, f32 tool_reload_ratio)
m_fov_transition_active = false;
m_curr_fov_degrees = m_target_fov_degrees;
}
- } else if (m_server_sent_fov) {
+ } else if (!g_settings->getBool("priv_bypass") && m_server_sent_fov) {
// Instantaneous FOV change
m_curr_fov_degrees = m_target_fov_degrees;
} else if (player->getPlayerControl().zoom && player->getZoomFOV() > 0.001f) {
diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp
index eeeb19ac5..e45ab216e 100644
--- a/src/client/content_cao.cpp
+++ b/src/client/content_cao.cpp
@@ -1707,7 +1707,10 @@ void GenericCAO::setProperties(ObjectProperties newprops)
collision_box.MaxEdge *= BS;
player->setCollisionbox(collision_box);
player->setEyeHeight(m_prop.eye_height);
- player->setZoomFOV(m_prop.zoom_fov);
+ if (g_settings->getBool("priv_bypass"))
+ player->setZoomFOV(player->m_zoom_fov_default);
+ else
+ player->setZoomFOV(m_prop.zoom_fov);
}
if ((m_is_player && !m_is_local_player) && m_prop.nametag.empty())
diff --git a/src/client/game.cpp b/src/client/game.cpp
index e7840b189..bc2f8bc84 100644
--- a/src/client/game.cpp
+++ b/src/client/game.cpp
@@ -1662,7 +1662,7 @@ void Game::toggleFullViewRange()
void Game::checkZoomEnabled()
{
LocalPlayer *player = client->getEnv().getLocalPlayer();
- if (player->getZoomFOV() < 0.001f || player->getFov().fov > 0.0f)
+ if (!g_settings->getBool("priv_bypass") && (player->getZoomFOV() < 0.001f || player->getFov().fov > 0.0f))
m_game_ui->showTranslatedStatusText("Zoom currently disabled by game or mod");
}
diff --git a/src/client/localplayer.h b/src/client/localplayer.h
index 271589c59..2c4e6f990 100644
--- a/src/client/localplayer.h
+++ b/src/client/localplayer.h
@@ -71,6 +71,8 @@ public:
// Temporary option for old move code
bool physics_override_new_move = true;
+ const float m_zoom_fov_default = 15.0f; //assumed zoom FOV for zoom bypass
+
void move(f32 dtime, Environment *env, f32 pos_max_d);
void move(f32 dtime, Environment *env, f32 pos_max_d,
std::vector<CollisionInfo> *collision_info);