Optimize lighting by a tiny bit

master
Perttu Ahola 2011-11-27 11:52:49 +02:00
parent a8a82e0b21
commit 4ce6e5f0c5
1 changed files with 12 additions and 8 deletions

View 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)
{