43
43
{CONT_LOGIC_XNOR, "LOGIC_XNOR", 0, "Xnor", "Logic Xnor"},
44
44
{CONT_EXPRESSION, "EXPRESSION", 0, "Expression", ""},
45
45
{CONT_PYTHON, "PYTHON", 0, "Python", ""},
46
{0, NULL, 0, NULL, NULL}};
46
{0, NULL, 0, NULL, NULL}
50
51
#include "BKE_sca.h"
51
52
#include "DNA_actuator_types.h"
53
static struct StructRNA* rna_Controller_refine(struct PointerRNA *ptr)
54
static StructRNA *rna_Controller_refine(struct PointerRNA *ptr)
55
bController *controller = (bController*)ptr->data;
56
bController *controller = (bController *)ptr->data;
57
58
switch (controller->type) {
59
return &RNA_AndController;
61
return &RNA_OrController;
63
return &RNA_NandController;
65
return &RNA_NorController;
67
return &RNA_XorController;
69
return &RNA_XnorController;
71
return &RNA_ExpressionController;
73
return &RNA_PythonController;
75
return &RNA_Controller;
60
return &RNA_AndController;
62
return &RNA_OrController;
64
return &RNA_NandController;
66
return &RNA_NorController;
68
return &RNA_XorController;
70
return &RNA_XnorController;
72
return &RNA_ExpressionController;
74
return &RNA_PythonController;
76
return &RNA_Controller;
79
void rna_Constroller_name_set(PointerRNA *ptr, const char *value)
80
static void rna_Constroller_name_set(PointerRNA *ptr, const char *value)
81
82
bController *cont = (bController *)ptr->data;
116
117
bController *cont = (bController *)ptr->data;
119
for (bit = 0; bit<32; bit++) {
120
if (cont->state_mask & (1<<bit))
120
for (bit = 0; bit < 32; bit++) {
121
if (cont->state_mask & (1 << bit))
150
151
bController *cont = (bController *)ptr->data;
153
memset(values, 0, sizeof(int)*OB_MAX_STATES);
154
for (i = 0; i<OB_MAX_STATES; i++)
155
values[i] = (cont->state_mask & (1<<i));
154
memset(values, 0, sizeof(int) * OB_MAX_STATES);
155
for (i = 0; i < OB_MAX_STATES; i++)
156
values[i] = (cont->state_mask & (1 << i));
158
159
static void rna_Controller_state_set(PointerRNA *ptr, const int *values)
171
172
/* only works for one state at once */
175
for (i = 0; i<OB_MAX_STATES; i++) {
176
if (values[i]) cont->state_mask |= (1<<i);
177
else cont->state_mask &= ~(1<<i);
176
for (i = 0; i < OB_MAX_STATES; i++) {
177
if (values[i]) cont->state_mask |= (1 << i);
178
else cont->state_mask &= ~(1 << i);
189
190
static EnumPropertyItem python_controller_modes[] = {
190
191
{CONT_PY_SCRIPT, "SCRIPT", 0, "Script", ""},
191
192
{CONT_PY_MODULE, "MODULE", 0, "Module", ""},
192
{0, NULL, 0, NULL, NULL}};
193
{0, NULL, 0, NULL, NULL}
195
197
srna = RNA_def_struct(brna, "Controller", NULL);
240
242
/* array of OB_MAX_STATES */
241
/*prop= RNA_def_property(srna, "states", PROP_BOOLEAN, PROP_LAYER_MEMBER); */
243
/*prop = RNA_def_property(srna, "states", PROP_BOOLEAN, PROP_LAYER_MEMBER); */
242
244
/*RNA_def_property_array(prop, OB_MAX_STATES); */
243
245
/*RNA_def_property_clear_flag(prop, PROP_EDITABLE); */
244
246
/*RNA_def_property_ui_text(prop, "", "Set Controller state index (1 to 30)"); */
265
267
RNA_def_property_update(prop, NC_LOGIC, NULL);
267
269
/* Python Controller */
268
srna = RNA_def_struct(brna, "PythonController", "Controller" );
270
srna = RNA_def_struct(brna, "PythonController", "Controller");
269
271
RNA_def_struct_sdna_from(srna, "bPythonCont", "data");
270
272
RNA_def_struct_ui_text(srna, "Python Controller", "Controller executing a python script");