X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fclient%2Fclientmap.cpp;h=d41b667416ce8eb765b8902763fe8ad11bb4da9b;hb=43ee069dbf0dc805277fcee9f1ac8925da2a4061;hp=8a182b14a5509787ad06a8d5eff7215e7c6b842f;hpb=539f016c1b1a706da2c113435ec60bb39c868f4b;p=dragonfireclient.git diff --git a/src/client/clientmap.cpp b/src/client/clientmap.cpp index 8a182b14a..d41b66741 100644 --- a/src/client/clientmap.cpp +++ b/src/client/clientmap.cpp @@ -63,14 +63,13 @@ ClientMap::ClientMap( MapSector * ClientMap::emergeSector(v2s16 p2d) { // Check that it doesn't exist already - try { - return getSectorNoGenerate(p2d); - } catch(InvalidPositionException &e) { - } + MapSector *sector = getSectorNoGenerate(p2d); - // Create a sector - MapSector *sector = new MapSector(this, p2d, m_gamedef); - m_sectors[p2d] = sector; + // Create it if it does not exist yet + if (!sector) { + sector = new MapSector(this, p2d, m_gamedef); + m_sectors[p2d] = sector; + } return sector; } @@ -145,13 +144,18 @@ void ClientMap::updateDrawList() // No occlusion culling when free_move is on and camera is // inside ground bool occlusion_culling_enabled = true; - if (g_settings->getBool("free_move")) { + if (g_settings->getBool("free_move") && g_settings->getBool("noclip")) { MapNode n = getNode(cam_pos_nodes); if (n.getContent() == CONTENT_IGNORE || m_nodedef->get(n).solidness == 2) occlusion_culling_enabled = false; } + // Uncomment to debug occluded blocks in the wireframe mode + // TODO: Include this as a flag for an extended debugging setting + //if (occlusion_culling_enabled && m_control.show_wireframe) + // occlusion_culling_enabled = porting::getTimeS() & 1; + for (const auto §or_it : m_sectors) { MapSector *sector = sector_it.second; v2s16 sp = sector->getPos(); @@ -584,7 +588,7 @@ void ClientMap::renderPostFx(CameraMode cam_mode) // - 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") && + if(features.solidness == 2 && !((g_settings->getBool("noclip") || g_settings->getBool("freecam")) && m_client->checkLocalPrivilege("noclip")) && cam_mode == CAMERA_MODE_FIRST) {