diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-01-05 10:34:14 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-01-05 10:34:14 +0400 |
commit | 890c97ca40024ae32edbc3c5af6db0ee257a942d (patch) | |
tree | 634b385fd292652bbc480631b98dfc69a4339c4a /source/gameengine/Converter/KX_ConvertProperties.cpp | |
parent | cda279b5250091a89ab5edb1717ca3cf54c42ca3 (diff) |
more edits to r43145,
- remove redundant check in new prop operator which is covered by operators poll func.
- use get_ob_property to get the object prop in BL_ConvertTextProperty() rather then looping for it.
Diffstat (limited to 'source/gameengine/Converter/KX_ConvertProperties.cpp')
-rw-r--r-- | source/gameengine/Converter/KX_ConvertProperties.cpp | 118 |
1 files changed, 55 insertions, 63 deletions
diff --git a/source/gameengine/Converter/KX_ConvertProperties.cpp b/source/gameengine/Converter/KX_ConvertProperties.cpp index 03d9be0d909..8eea39c4956 100644 --- a/source/gameengine/Converter/KX_ConvertProperties.cpp +++ b/source/gameengine/Converter/KX_ConvertProperties.cpp @@ -56,6 +56,9 @@ #include "BLI_winstuff.h" #endif +extern "C" { + #include "BKE_property.h" +} /* prototype */ void BL_ConvertTextProperty(Object* object, KX_FontObject* fontobj,SCA_TimeEventManager* timemgr,SCA_IScene* scene, bool isInActiveLayer); @@ -174,79 +177,68 @@ void BL_ConvertTextProperty(Object* object, KX_FontObject* fontobj,SCA_TimeEvent { CValue* tprop = fontobj->GetProperty("Text"); if(!tprop) return; + bProperty* prop = get_ob_property(object, "Text"); + if(!prop) return; Curve *curve = static_cast<Curve *>(object->data); STR_String str = curve->str; + CValue* propval = NULL; - bProperty* prop = (bProperty*)object->prop.first; - CValue* propval; - - while(prop) - { - if (strcmp(prop->name, "Text")!=0) { - prop = prop->next; - continue; + switch(prop->type) { + case GPROP_BOOL: + { + int value = atoi(str); + propval = new CBoolValue((bool)(value != 0)); + tprop->SetValue(propval); + break; } - - propval = NULL; - - switch(prop->type) { - case GPROP_BOOL: - { - int value = atoi(str); - propval = new CBoolValue((bool)(value != 0)); - tprop->SetValue(propval); - break; - } - case GPROP_INT: - { - int value = atoi(str); - propval = new CIntValue(value); - tprop->SetValue(propval); - break; - } - case GPROP_FLOAT: - { - float floatprop = atof(str); - propval = new CFloatValue(floatprop); - tprop->SetValue(propval); - break; - } - case GPROP_STRING: + case GPROP_INT: + { + int value = atoi(str); + propval = new CIntValue(value); + tprop->SetValue(propval); + break; + } + case GPROP_FLOAT: + { + float floatprop = atof(str); + propval = new CFloatValue(floatprop); + tprop->SetValue(propval); + break; + } + case GPROP_STRING: + { + propval = new CStringValue(str, ""); + tprop->SetValue(propval); + break; + } + case GPROP_TIME: + { + float floatprop = atof(str); + + CValue* timeval = new CFloatValue(floatprop); + // set a subproperty called 'timer' so that + // we can register the replica of this property + // at the time a game object is replicated (AddObjectActuator triggers this) + CValue *bval = new CBoolValue(true); + timeval->SetProperty("timer",bval); + bval->Release(); + if (isInActiveLayer) { - propval = new CStringValue(str, ""); - tprop->SetValue(propval); - break; + timemgr->AddTimeProperty(timeval); } - case GPROP_TIME: - { - float floatprop = atof(str); - CValue* timeval = new CFloatValue(floatprop); - // set a subproperty called 'timer' so that - // we can register the replica of this property - // at the time a game object is replicated (AddObjectActuator triggers this) - CValue *bval = new CBoolValue(true); - timeval->SetProperty("timer",bval); - bval->Release(); - if (isInActiveLayer) - { - timemgr->AddTimeProperty(timeval); - } - - propval = timeval; - tprop->SetValue(timeval); - } - default: - { - // todo make an assert etc. - } + propval = timeval; + tprop->SetValue(timeval); } - - if (propval) - propval->Release(); + default: + { + // todo make an assert etc. + } + } - prop = prop->next; + if (propval) { + propval->Release(); } } |