Optimize lighting by a tiny bit
authorPerttu Ahola <celeron55@gmail.com>
Sun, 27 Nov 2011 09:52:49 +0000 (11:52 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Tue, 29 Nov 2011 17:13:55 +0000 (19:13 +0200)
src/voxel.cpp

index 6324312440c21ff8e46638bd9828828d70017a4c..bd06be877b67ae4a5de024aa538cb30bb5c63435 100644 (file)
@@ -310,21 +310,21 @@ void VoxelManipulator::unspreadLight(enum LightBank bank, v3s16 p, u8 oldlight,
                        If the neighbor is dimmer than what was specified
                        as oldlight (the light of the previous node)
                */
-               if(n2.getLight(bank, nodemgr) < oldlight)
+               u8 light2 = n2.getLight(bank, nodemgr);
+               if(light2 < oldlight)
                {
                        /*
                                And the neighbor is transparent and it has some light
                        */
-                       if(nodemgr->get(n2).light_propagates && n2.getLight(bank, nodemgr) != 0)
+                       if(nodemgr->get(n2).light_propagates && light2 != 0)
                        {
                                /*
                                        Set light to 0 and add to queue
                                */
 
-                               u8 current_light = n2.getLight(bank, nodemgr);
                                n2.setLight(bank, 0, nodemgr);
                                
-                               unspreadLight(bank, n2pos, current_light, light_sources, nodemgr);
+                               unspreadLight(bank, n2pos, light2, light_sources, nodemgr);
                                
                                /*
                                        Remove from light_sources if it is there
@@ -528,12 +528,14 @@ void VoxelManipulator::spreadLight(enum LightBank bank, v3s16 p,
                        continue;
 
                MapNode &n2 = m_data[n2i];
+
+               u8 light2 = n2.getLight(bank, nodemgr);
                
                /*
                        If the neighbor is brighter than the current node,
                        add to list (it will light up this node on its turn)
                */
-               if(n2.getLight(bank, nodemgr) > undiminish_light(oldlight))
+               if(light2 > undiminish_light(oldlight))
                {
                        spreadLight(bank, n2pos, nodemgr);
                }
@@ -541,7 +543,7 @@ void VoxelManipulator::spreadLight(enum LightBank bank, v3s16 p,
                        If the neighbor is dimmer than how much light this node
                        would spread on it, add to list
                */
-               if(n2.getLight(bank, nodemgr) < newlight)
+               if(light2 < newlight)
                {
                        if(nodemgr->get(n2).light_propagates)
                        {
@@ -633,12 +635,14 @@ void VoxelManipulator::spreadLight(enum LightBank bank,
                                        continue;
 
                                MapNode &n2 = m_data[n2i];
+
+                               u8 light2 = n2.getLight(bank, nodemgr);
                                
                                /*
                                        If the neighbor is brighter than the current node,
                                        add to list (it will light up this node on its turn)
                                */
-                               if(n2.getLight(bank, nodemgr) > undiminish_light(oldlight))
+                               if(light2 > undiminish_light(oldlight))
                                {
                                        lighted_nodes.insert(n2pos, true);
                                }
@@ -646,7 +650,7 @@ void VoxelManipulator::spreadLight(enum LightBank bank,
                                        If the neighbor is dimmer than how much light this node
                                        would spread on it, add to list
                                */
-                               if(n2.getLight(bank, nodemgr) < newlight)
+                               if(light2 < newlight)
                                {
                                        if(nodemgr->get(n2).light_propagates)
                                        {