aboutsummaryrefslogtreecommitdiff
path: root/src/client/clientmap.cpp
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2022-05-21 20:29:44 +0200
committersfan5 <sfan5@live.de>2022-06-03 21:48:52 +0200
commit575caa8015fe420ce5e709d6c137036dfc0262ef (patch)
treee3ea30432afdcf9adaeb6868da03afdc12ad4c9a /src/client/clientmap.cpp
parent5f3af7d18b528e502e2cf09e0f46cc892df98dd4 (diff)
downloaddragonfireclient-575caa8015fe420ce5e709d6c137036dfc0262ef.tar.xz
Properly keep noclip state in Game and ClientMap
Diffstat (limited to 'src/client/clientmap.cpp')
-rw-r--r--src/client/clientmap.cpp24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp
index 98e3f40d3..38ba1daad 100644
--- a/src/client/clientmap.cpp
+++ b/src/client/clientmap.cpp
@@ -219,13 +219,11 @@ void ClientMap::updateDrawList()
// Number of blocks occlusion culled
u32 blocks_occlusion_culled = 0;
- // No occlusion culling when free_move is on and camera is
- // inside ground
+ // No occlusion culling when free_move is on and camera is inside ground
bool occlusion_culling_enabled = true;
- if (g_settings->getBool("free_move") && g_settings->getBool("noclip")) {
+ if (m_control.allow_noclip) {
MapNode n = getNode(cam_pos_nodes);
- if (n.getContent() == CONTENT_IGNORE ||
- m_nodedef->get(n).solidness == 2)
+ if (n.getContent() == CONTENT_IGNORE || m_nodedef->get(n).solidness == 2)
occlusion_culling_enabled = false;
}
@@ -678,19 +676,17 @@ void ClientMap::renderPostFx(CameraMode cam_mode)
MapNode n = getNode(floatToInt(m_camera_position, BS));
- // - If the player is in a solid node, make everything black.
- // - If the player is in liquid, draw a semi-transparent overlay.
- // - Do not if player is in third person mode
const ContentFeatures& features = m_nodedef->get(n);
video::SColor post_effect_color = features.post_effect_color;
- if(features.solidness == 2 && !(g_settings->getBool("noclip") &&
- m_client->checkLocalPrivilege("noclip")) &&
- cam_mode == CAMERA_MODE_FIRST)
- {
+
+ // If the camera is in a solid node, make everything black.
+ // (first person mode only)
+ if (features.solidness == 2 && cam_mode == CAMERA_MODE_FIRST &&
+ !m_control.allow_noclip) {
post_effect_color = video::SColor(255, 0, 0, 0);
}
- if (post_effect_color.getAlpha() != 0)
- {
+
+ if (post_effect_color.getAlpha() != 0) {
// Draw a full-screen rectangle
video::IVideoDriver* driver = SceneManager->getVideoDriver();
v2u32 ss = driver->getScreenSize();