[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19681] trunk/blender/source: PropertyActuator toggle option didnt run when the Value field was empty.
Campbell Barton
ideasman42 at gmail.com
Sun Apr 12 18:10:43 CEST 2009
Revision: 19681
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19681
Author: campbellbarton
Date: 2009-04-12 18:10:43 +0200 (Sun, 12 Apr 2009)
Log Message:
-----------
PropertyActuator toggle option didnt run when the Value field was empty.
Modified Paths:
--------------
trunk/blender/source/blender/src/buttons_logic.c
trunk/blender/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
Modified: trunk/blender/source/blender/src/buttons_logic.c
===================================================================
--- trunk/blender/source/blender/src/buttons_logic.c 2009-04-12 14:22:51 UTC (rev 19680)
+++ trunk/blender/source/blender/src/buttons_logic.c 2009-04-12 16:10:43 UTC (rev 19681)
@@ -1970,7 +1970,7 @@
pa= act->data;
- str= "Type%t|Assign%x0|Add %x1|Copy %x2|Toggle%x3";
+ str= "Type%t|Assign%x0|Add %x1|Copy %x2|Toggle (bool/int/float/timer)%x3";
uiDefButI(block, MENU, B_REDR, str, xco+30,yco-24,width-60, 19, &pa->type, 0, 31, 0, 0, "Type");
uiDefBut(block, TEX, 1, "Prop: ", xco+30,yco-44,width-60, 19, pa->name, 0, 31, 0, 0, "Property name");
Modified: trunk/blender/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_PropertyActuator.cpp 2009-04-12 14:22:51 UTC (rev 19680)
+++ trunk/blender/source/gameengine/GameLogic/SCA_PropertyActuator.cpp 2009-04-12 16:10:43 UTC (rev 19681)
@@ -77,11 +77,25 @@
CParser parser;
parser.SetContext( propowner->AddRef());
- CExpression* userexpr = parser.ProcessText(m_exprtxt);
- if (userexpr)
+ CExpression* userexpr= NULL;
+
+ if (m_type==KX_ACT_PROP_TOGGLE)
{
-
-
+ /* dont use */
+ CValue* newval;
+ CValue* oldprop = propowner->GetProperty(m_propname);
+ if (oldprop)
+ {
+ newval = new CBoolValue((oldprop->GetNumber()==0.0) ? true:false);
+ oldprop->SetValue(newval);
+ } else
+ { /* as not been assigned, evaluate as false, so assign true */
+ newval = new CBoolValue(true);
+ propowner->SetProperty(m_propname,newval);
+ }
+ newval->Release();
+ }
+ else if (userexpr = parser.ProcessText(m_exprtxt)) {
switch (m_type)
{
@@ -135,23 +149,7 @@
}
break;
}
- case KX_ACT_PROP_TOGGLE:
- {
-
- CValue* newval;
- CValue* oldprop = propowner->GetProperty(m_propname);
- if (oldprop)
- {
- newval = new CBoolValue((oldprop->GetNumber()==0.0) ? true:false);
- oldprop->SetValue(newval);
- } else
- { /* as not been assigned, evaluate as false, so assign true */
- newval = new CBoolValue(true);
- propowner->SetProperty(m_propname,newval);
- }
- newval->Release();
- break;
- }
+ /* case KX_ACT_PROP_TOGGLE: */ /* accounted for above, no need for userexpr */
default:
{
More information about the Bf-blender-cvs
mailing list