From 4ce6e5f0c51d9fe96ee13c55dcb0e015e9122f1c Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Sun, 27 Nov 2011 11:52:49 +0200
Subject: [PATCH] Optimize lighting by a tiny bit

---
 src/voxel.cpp | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/voxel.cpp b/src/voxel.cpp
index 632431244..bd06be877 100644
--- a/src/voxel.cpp
+++ b/src/voxel.cpp
@@ -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)
 					{
-- 
GitLab