diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2018-03-14 13:47:35 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2018-03-14 13:47:35 +0300 |
commit | 59aa8d22efa2c7a1dff23211a1f63e2d5bdd0783 (patch) | |
tree | 750eff20644d5cd4e2a09629d20a84fae5a999e5 /source/blender/makesrna/intern/rna_access.c | |
parent | d430d12123d88780480e1523340af7a0cddacf96 (diff) |
Cleanup: use flags instead of collection of bools to get RNA override status.
Diffstat (limited to 'source/blender/makesrna/intern/rna_access.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_access.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 0f47a461cda..ab293af6212 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -7678,29 +7678,30 @@ IDOverrideStaticPropertyOperation *RNA_property_override_property_operation_get( return BKE_override_static_property_operation_get(op, operation, NULL, NULL, index, index, strict, r_strict, r_created); } -void RNA_property_override_status( - PointerRNA *ptr, PropertyRNA *prop, const int index, - bool *r_overridable, bool *r_overridden, bool *r_mandatory, bool *r_locked) +int RNA_property_override_status(PointerRNA *ptr, PropertyRNA *prop, const int index) { -#define SET_RET(_name, _val) if (_name != NULL) *_name = (_val) - - SET_RET(r_overridable, false); - SET_RET(r_overridden, false); - SET_RET(r_mandatory, false); - SET_RET(r_locked, false); + int override_status = 0; if (!ptr || !prop || !ptr->id.data || !((ID *)ptr->id.data)->override_static) { - return; + return override_status; } - SET_RET(r_overridable, (prop->flag & PROP_OVERRIDABLE_STATIC) && (prop->flag & PROP_EDITABLE)); + if ((prop->flag & PROP_OVERRIDABLE_STATIC) && (prop->flag & PROP_EDITABLE)) { + override_status |= RNA_OVERRIDE_STATUS_OVERRIDABLE; + } - if (r_overridden || r_mandatory || r_locked) { - IDOverrideStaticPropertyOperation *opop = RNA_property_override_property_operation_find(ptr, prop, index, false, NULL); - SET_RET(r_overridden, opop != NULL); - SET_RET(r_mandatory, (opop->flag & IDOVERRIDESTATIC_FLAG_MANDATORY) != 0); - SET_RET(r_locked, (opop->flag & IDOVERRIDESTATIC_FLAG_LOCKED) != 0); + IDOverrideStaticPropertyOperation *opop = RNA_property_override_property_operation_find(ptr, prop, index, false, NULL); + if (opop != NULL) { + override_status |= RNA_OVERRIDE_STATUS_OVERRIDDEN; + if (opop->flag & IDOVERRIDESTATIC_FLAG_MANDATORY) { + override_status |= RNA_OVERRIDE_STATUS_MANDATORY; + } + if (opop->flag & IDOVERRIDESTATIC_FLAG_LOCKED) { + override_status |= RNA_OVERRIDE_STATUS_LOCKED; + } } + + return override_status; } |