]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/mapblock.cpp
Turn off verbose info message introduced accidentally with ae9b1aa
[dragonfireclient.git] / src / mapblock.cpp
index f52a5ee3fabdf488cd65e84f38a24e5bebf378a2..88f04e0bb56a0b14f14edf43839a694786279a5a 100644 (file)
@@ -71,7 +71,7 @@ MapBlock::MapBlock(Map *parent, v3s16 pos, IGameDef *gamedef, bool dummy):
                m_pos_relative(pos * MAP_BLOCKSIZE),
                m_gamedef(gamedef)
 {
-       if(dummy == false)
+       if (!dummy)
                reallocate();
 }
 
@@ -89,24 +89,22 @@ MapBlock::~MapBlock()
 
 bool MapBlock::isValidPositionParent(v3s16 p)
 {
-       if(isValidPosition(p))
-       {
+       if (isValidPosition(p)) {
                return true;
        }
-       else{
-               return m_parent->isValidPosition(getPosRelative() + p);
-       }
+
+       return m_parent->isValidPosition(getPosRelative() + p);
 }
 
 MapNode MapBlock::getNodeParent(v3s16 p, bool *is_valid_position)
 {
-       if (isValidPosition(p) == false)
+       if (!isValidPosition(p))
                return m_parent->getNodeNoEx(getPosRelative() + p, is_valid_position);
 
        if (!data) {
                if (is_valid_position)
                        *is_valid_position = false;
-               return MapNode(CONTENT_IGNORE);
+               return {CONTENT_IGNORE};
        }
        if (is_valid_position)
                *is_valid_position = true;
@@ -201,8 +199,7 @@ bool MapBlock::propagateSunlight(std::set<v3s16> & light_sources,
                                else
                                {
                                        MapNode n = getNodeNoEx(v3s16(x, MAP_BLOCKSIZE-1, z));
-                                       if(m_gamedef->ndef()->get(n).sunlight_propagates == false)
-                                       {
+                                       if (!m_gamedef->ndef()->get(n).sunlight_propagates) {
                                                no_sunlight = true;
                                        }
                                }
@@ -253,9 +250,7 @@ bool MapBlock::propagateSunlight(std::set<v3s16> & light_sources,
                                else if(current_light == LIGHT_SUN && nodemgr->get(n).sunlight_propagates)
                                {
                                        // Do nothing: Sunlight is continued
-                               }
-                               else if(nodemgr->get(n).light_propagates == false)
-                               {
+                               } else if (!nodemgr->get(n).light_propagates) {
                                        // A solid object is on the way.
                                        stopped_to_solid_object = true;
 
@@ -308,10 +303,10 @@ bool MapBlock::propagateSunlight(std::set<v3s16> & light_sources,
                                        if(nodemgr->get(n).light_propagates)
                                        {
                                                if(n.getLight(LIGHTBANK_DAY, nodemgr) == LIGHT_SUN
-                                                               && sunlight_should_go_down == false)
+                                                               && !sunlight_should_go_down)
                                                        block_below_is_valid = false;
                                                else if(n.getLight(LIGHTBANK_DAY, nodemgr) != LIGHT_SUN
-                                                               && sunlight_should_go_down == true)
+                                                               && sunlight_should_go_down)
                                                        block_below_is_valid = false;
                                        }
                                }
@@ -366,12 +361,19 @@ void MapBlock::actuallyUpdateDayNightDiff()
        /*
                Check if any lighting value differs
        */
+
+       MapNode previous_n(CONTENT_IGNORE);
        for (u32 i = 0; i < nodecount; i++) {
-               MapNode &n = data[i];
+               MapNode n = data[i];
+
+               // If node is identical to previous node, don't verify if it differs
+               if (n == previous_n)
+                       continue;
 
                differs = !n.isLightDayNightEq(nodemgr);
                if (differs)
                        break;
+               previous_n = n;
        }
 
        /*
@@ -416,12 +418,11 @@ s16 MapBlock::getGroundLevel(v2s16 p2d)
                for(; y>=0; y--)
                {
                        MapNode n = getNodeRef(p2d.X, y, p2d.Y);
-                       if(m_gamedef->ndef()->get(n).walkable)
-                       {
+                       if (m_gamedef->ndef()->get(n).walkable) {
                                if(y == MAP_BLOCKSIZE-1)
                                        return -2;
-                               else
-                                       return y;
+
+                               return y;
                        }
                }
                return -1;
@@ -474,11 +475,9 @@ static void getBlockNodeIdMapping(NameIdMapping *nimap, MapNode *nodes,
                // Update the MapNode
                nodes[i].setContent(id);
        }
-       for(std::set<content_t>::const_iterator
-                       i = unknown_contents.begin();
-                       i != unknown_contents.end(); ++i){
-               errorstream<<"getBlockNodeIdMapping(): IGNORING ERROR: "
-                               <<"Name for node id "<<(*i)<<" not known"<<std::endl;
+       for (u16 unknown_content : unknown_contents) {
+               errorstream << "getBlockNodeIdMapping(): IGNORING ERROR: "
+                               << "Name for node id " << unknown_content << " not known" << std::endl;
        }
 }
 // Correct ids in the block to match nodedef based on names.
@@ -495,7 +494,7 @@ static void correctBlockNodeIds(const NameIdMapping *nimap, MapNode *nodes,
        std::unordered_set<content_t> unnamed_contents;
        std::unordered_set<std::string> unallocatable_contents;
 
-       bool previous_was_found = false;
+       bool previous_exists = false;
        content_t previous_local_id = CONTENT_IGNORE;
        content_t previous_global_id = CONTENT_IGNORE;
 
@@ -505,7 +504,7 @@ static void correctBlockNodeIds(const NameIdMapping *nimap, MapNode *nodes,
                // apply directly previous resolved id
                // This permits to massively improve loading performance when nodes are similar
                // example: default:air, default:stone are massively present
-               if (previous_was_found && local_id == previous_local_id) {
+               if (previous_exists && local_id == previous_local_id) {
                        nodes[i].setContent(previous_global_id);
                        continue;
                }
@@ -513,7 +512,7 @@ static void correctBlockNodeIds(const NameIdMapping *nimap, MapNode *nodes,
                std::string name;
                if (!nimap->getName(local_id, name)) {
                        unnamed_contents.insert(local_id);
-                       previous_was_found = false;
+                       previous_exists = false;
                        continue;
                }
 
@@ -522,7 +521,7 @@ static void correctBlockNodeIds(const NameIdMapping *nimap, MapNode *nodes,
                        global_id = gamedef->allocateUnknownNodeId(name);
                        if (global_id == CONTENT_IGNORE) {
                                unallocatable_contents.insert(name);
-                               previous_was_found = false;
+                               previous_exists = false;
                                continue;
                        }
                }
@@ -531,7 +530,7 @@ static void correctBlockNodeIds(const NameIdMapping *nimap, MapNode *nodes,
                // Save previous node local_id & global_id result
                previous_local_id = local_id;
                previous_global_id = global_id;
-               previous_was_found = true;
+               previous_exists = true;
        }
 
        for (const content_t c: unnamed_contents) {
@@ -562,7 +561,7 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk)
                flags |= 0x01;
        if(getDayNightDiff())
                flags |= 0x02;
-       if(m_generated == false)
+       if (!m_generated)
                flags |= 0x08;
        writeU8(os, flags);
        if (version >= 27) {
@@ -658,13 +657,13 @@ void MapBlock::deSerialize(std::istream &is, u8 version, bool disk)
        }
 
        u8 flags = readU8(is);
-       is_underground = (flags & 0x01) ? true : false;
-       m_day_night_differs = (flags & 0x02) ? true : false;
+       is_underground = (flags & 0x01) != 0;
+       m_day_night_differs = (flags & 0x02) != 0;
        if (version < 27)
                m_lighting_complete = 0xFFFF;
        else
                m_lighting_complete = readU16(is);
-       m_generated = (flags & 0x08) ? false : true;
+       m_generated = (flags & 0x08) == 0;
 
        /*
                Bulk node data
@@ -838,10 +837,10 @@ void MapBlock::deSerialize_pre22(std::istream &is, u8 version, bool disk)
        } else { // All other versions (10 to 21)
                u8 flags;
                is.read((char*)&flags, 1);
-               is_underground = (flags & 0x01) ? true : false;
-               m_day_night_differs = (flags & 0x02) ? true : false;
+               is_underground = (flags & 0x01) != 0;
+               m_day_night_differs = (flags & 0x02) != 0;
                if(version >= 18)
-                       m_generated = (flags & 0x08) ? false : true;
+                       m_generated = (flags & 0x08) == 0;
 
                // Uncompress data
                std::ostringstream os(std::ios_base::binary);