[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16107] branches/fluidcontrol/source/ blender: Bugfix for a) Fluid ipos gone after save-load b) changing viscosity causes fluidsim to be reversed [both reported by broken ] (at least 3 known bugs left)

Daniel Genrich daniel.genrich at gmx.net
Thu Aug 14 11:19:43 CEST 2008


Revision: 16107
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16107
Author:   genscher
Date:     2008-08-14 11:19:41 +0200 (Thu, 14 Aug 2008)

Log Message:
-----------
Bugfix for a) Fluid ipos gone after save-load b) changing viscosity causes fluidsim to be reversed [both reported by broken] (at least 3 known bugs left)

Modified Paths:
--------------
    branches/fluidcontrol/source/blender/blenkernel/intern/fluidsim.c
    branches/fluidcontrol/source/blender/blenloader/intern/readfile.c
    branches/fluidcontrol/source/blender/makesdna/DNA_object_fluidsim.h
    branches/fluidcontrol/source/blender/src/buttons_object.c

Modified: branches/fluidcontrol/source/blender/blenkernel/intern/fluidsim.c
===================================================================
--- branches/fluidcontrol/source/blender/blenkernel/intern/fluidsim.c	2008-08-14 09:18:57 UTC (rev 16106)
+++ branches/fluidcontrol/source/blender/blenkernel/intern/fluidsim.c	2008-08-14 09:19:41 UTC (rev 16107)
@@ -181,7 +181,7 @@
 	// clmd->sim_parms->timescale= timescale;
 	
 	// support reversing of baked fluid frames here
-	if((fss->show_advancedoptions & OB_FLUIDSIM_REVERSE) && (fss->lastgoodframe >= 0))
+	if((fss->flag & OB_FLUIDSIM_REVERSE) && (fss->lastgoodframe >= 0))
 	{
 		framenr = fss->lastgoodframe - framenr + 1;
 		CLAMP(framenr, 1, fss->lastgoodframe);

Modified: branches/fluidcontrol/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/fluidcontrol/source/blender/blenloader/intern/readfile.c	2008-08-14 09:18:57 UTC (rev 16106)
+++ branches/fluidcontrol/source/blender/blenloader/intern/readfile.c	2008-08-14 09:19:41 UTC (rev 16107)
@@ -3045,6 +3045,13 @@
 				act= act->next;
 			}
 			
+			{
+				FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);
+				
+				if(fluidmd && fluidmd->fss) 
+					fluidmd->fss->ipo = newlibadr_us(fd, ob->id.lib, fluidmd->fss->ipo);
+			}
+			
 			/* texture field */
 			if(ob->pd)
 				if(ob->pd->tex)
@@ -3121,7 +3128,6 @@
 			FluidsimModifierData *fluidmd = (FluidsimModifierData*) md;
 			
 			fluidmd->fss= newdataadr(fd, fluidmd->fss);
-			fluidmd->fss->ipo = newlibadr_us(fd, lb, fluidmd->fss->ipo);
 		}
 		else if (md->type==eModifierType_Collision) {
 			
@@ -7794,6 +7800,7 @@
 				MEM_freeN(ob->fluidsimSettings);
 				
 				fluidmd->fss->lastgoodframe = INT_MAX;
+				fluidmd->fss->flag = 0;
 			}
 		}
 	}

Modified: branches/fluidcontrol/source/blender/makesdna/DNA_object_fluidsim.h
===================================================================
--- branches/fluidcontrol/source/blender/makesdna/DNA_object_fluidsim.h	2008-08-14 09:18:57 UTC (rev 16106)
+++ branches/fluidcontrol/source/blender/makesdna/DNA_object_fluidsim.h	2008-08-14 09:19:41 UTC (rev 16107)
@@ -159,7 +159,7 @@
 #define OB_FSPART_FLOAT   (1<<4)
 
 // new fluid bit flags for fss->flags - dg
-#define OB_FLUIDSIM_REVERSE 1
+#define OB_FLUIDSIM_REVERSE (1 << 0)
 
 #ifdef __cplusplus
 }

Modified: branches/fluidcontrol/source/blender/src/buttons_object.c
===================================================================
--- branches/fluidcontrol/source/blender/src/buttons_object.c	2008-08-14 09:18:57 UTC (rev 16106)
+++ branches/fluidcontrol/source/blender/src/buttons_object.c	2008-08-14 09:19:41 UTC (rev 16107)
@@ -2407,7 +2407,7 @@
 	case B_FLUIDSIM_CHANGETYPE:
 	{
 		FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);
-		fluidmd->fss->show_advancedoptions &= ~OB_FLUIDSIM_REVERSE; // clear flag
+		fluidmd->fss->flag &= ~OB_FLUIDSIM_REVERSE; // clear flag
 		if(ob && ob->particlesystem.first && fluidmd->fss->type!=OB_FLUIDSIM_PARTICLE){
 			ParticleSystem *psys;
 			for(psys=ob->particlesystem.first; psys; psys=psys->next) {
@@ -5185,7 +5185,7 @@
 				yline -= 1*separateHeight;
 		
 				uiBlockBeginAlign ( block );
-				uiDefButBitS ( block, TOG, OB_FLUIDSIM_REVERSE, REDRAWBUTSOBJECT, "Reverse",     0, yline,50,objHeight, &fss->flag, 0, 0, 0, 0, "Reverse fluidsim frames" );
+				uiDefButBitI ( block, TOG, OB_FLUIDSIM_REVERSE, REDRAWBUTSOBJECT, "Reverse",     0, yline,50,objHeight, &fss->flag, 0, 0, 0, 0, "Reverse fluidsim frames" );
 				uiDefBut ( block, LABEL,   0, "",  50,yline,25,objHeight, NULL, 0.0, 0, 0, 0, "" );
 				uiDefIconBut ( block, BUT, B_FLUIDSIM_SELDIR, ICON_FILESEL,  75, yline,  20, objHeight,                   0, 0, 0, 0, 0,  "Select Directory (and/or filename prefix) to store baked fluid simulation files in" );
 				uiDefBut ( block, TEX,     B_BAKE_CACHE_CHANGE,"",	      95, yline, 205, objHeight, fss->surfdataPath, 0.0,79.0, 0, 0,  "Enter Directory (and/or filename prefix) to store baked fluid simulation files in" );
@@ -5342,7 +5342,7 @@
 		
 			yline -= lineHeight;
 			uiDefButF ( block, NUM, B_DIFF, "Quality:", 0, yline,150,20, &fss->cpsQuality, 5.0, 100.0,   10,0, "Specifies the quality which is used for object sampling (higher = better but slower)." );
-			uiDefButBitS ( block, TOG, OB_FLUIDSIM_REVERSE, REDRAWBUTSOBJECT, "Reverse",     150, yline,150,20, &fss->flag, 0, 0, 0, 0, "Reverse control object movement." );
+			uiDefButBitI ( block, TOG, OB_FLUIDSIM_REVERSE, REDRAWBUTSOBJECT, "Reverse",     150, yline,150,20, &fss->flag, 0, 0, 0, 0, "Reverse control object movement." );
 		}
 		else
 		{





More information about the Bf-blender-cvs mailing list