[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32219] trunk/blender/source/blender/ blenkernel/intern/smoke.c: Fix #23540: smoke preview shading only used point lamps, now it uses other

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Sep 30 22:19:54 CEST 2010


Revision: 32219
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32219
Author:   blendix
Date:     2010-09-30 22:19:54 +0200 (Thu, 30 Sep 2010)

Log Message:
-----------
Fix #23540: smoke preview shading only used point lamps, now it uses other
lamps to if no point lamp is available.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/smoke.c

Modified: trunk/blender/source/blender/blenkernel/intern/smoke.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/smoke.c	2010-09-30 18:35:54 UTC (rev 32218)
+++ trunk/blender/source/blender/blenkernel/intern/smoke.c	2010-09-30 20:19:54 UTC (rev 32219)
@@ -800,20 +800,25 @@
 static int get_lamp(Scene *scene, float *light)
 {	
 	Base *base_tmp = NULL;	
-	for(base_tmp = scene->base.first; base_tmp; base_tmp= base_tmp->next) 	
-	{		
-		if(base_tmp->object->type == OB_LAMP) 		
-		{			
-			Lamp *la = (Lamp *)base_tmp->object->data;	
+	int found_lamp = 0;
 
-			if(la->type == LA_LOCAL)			
-			{				
-				VECCOPY(light, base_tmp->object->obmat[3]);				
-				return 1;			
-			}		
-		}	
-	}	
-	return 0;
+	// try to find a lamp, preferably local
+	for(base_tmp = scene->base.first; base_tmp; base_tmp= base_tmp->next) {
+		if(base_tmp->object->type == OB_LAMP) {
+			Lamp *la = base_tmp->object->data;
+
+			if(la->type == LA_LOCAL) {
+				copy_v3_v3(light, base_tmp->object->obmat[3]);
+				return 1;
+			}
+			else if(!found_lamp) {
+				copy_v3_v3(light, base_tmp->object->obmat[3]);
+				found_lamp = 1;
+			}
+		}
+	}
+
+	return found_lamp;
 }
 
 static void smoke_calc_domain(Scene *scene, Object *ob, SmokeModifierData *smd)





More information about the Bf-blender-cvs mailing list