[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19269] branches/blender2.5/blender/source /blender/makesrna/intern/rna_access.c: RNA:
Martin Poirier
theeth at yahoo.com
Thu Mar 12 16:28:01 CET 2009
Revision: 19269
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19269
Author: theeth
Date: 2009-03-12 16:28:00 +0100 (Thu, 12 Mar 2009)
Log Message:
-----------
RNA:
* boolean/int/float_set_array now works for non-array
properties as well, just setting the value with the first
element of the array.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c 2009-03-12 09:15:49 UTC (rev 19268)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_access.c 2009-03-12 15:28:00 UTC (rev 19269)
@@ -615,8 +615,14 @@
BooleanPropertyRNA *bprop= (BooleanPropertyRNA*)prop;
IDProperty *idprop;
- if((idprop=rna_idproperty_check(&prop, ptr)))
- memcpy(IDP_Array(idprop), values, sizeof(int)*idprop->len);
+ if((idprop=rna_idproperty_check(&prop, ptr))) {
+ if(prop->arraylength == 0)
+ IDP_Int(idprop)= values[0];
+ else
+ memcpy(IDP_Array(idprop), values, sizeof(int)*idprop->len);
+ }
+ else if(prop->arraylength == 0)
+ RNA_property_boolean_set(ptr, prop, values[0]);
else if(bprop->setarray)
bprop->setarray(ptr, values);
else if(!(prop->flag & PROP_NOT_EDITABLE)) {
@@ -712,8 +718,14 @@
IntPropertyRNA *iprop= (IntPropertyRNA*)prop;
IDProperty *idprop;
- if((idprop=rna_idproperty_check(&prop, ptr)))
- memcpy(IDP_Array(idprop), values, sizeof(int)*idprop->len);
+ if((idprop=rna_idproperty_check(&prop, ptr))) {
+ if(prop->arraylength == 0)
+ IDP_Int(idprop)= values[0];
+ else
+ memcpy(IDP_Array(idprop), values, sizeof(int)*idprop->len);\
+ }
+ else if(prop->arraylength == 0)
+ RNA_property_int_set(ptr, prop, values[0]);
else if(iprop->setarray)
iprop->setarray(ptr, values);
else if(!(prop->flag & PROP_NOT_EDITABLE)) {
@@ -826,7 +838,9 @@
int i;
if((idprop=rna_idproperty_check(&prop, ptr))) {
- if(idprop->subtype == IDP_FLOAT) {
+ if(prop->arraylength == 0)
+ IDP_Double(idprop)= values[0];
+ else if(idprop->subtype == IDP_FLOAT) {
memcpy(IDP_Array(idprop), values, sizeof(float)*idprop->len);
}
else {
@@ -834,6 +848,8 @@
((double*)IDP_Array(idprop))[i]= values[i];
}
}
+ else if(prop->arraylength == 0)
+ RNA_property_float_set(ptr, prop, values[0]);
else if(fprop->setarray) {
fprop->setarray(ptr, values);
}
More information about the Bf-blender-cvs
mailing list