more edits to r43145,
authorCampbell Barton <ideasman42@gmail.com>
Thu, 5 Jan 2012 06:34:14 +0000 (06:34 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 5 Jan 2012 06:34:14 +0000 (06:34 +0000)
- 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.

source/blender/editors/object/object_edit.c
source/gameengine/Converter/KX_ConvertProperties.cpp

index 6e1a4ba6cf2d7157f60d87ce5e5bf06acdca39a7..4217e27fa7b69312a1b0a75499aa2496c4b6cda7 100644 (file)
@@ -1943,15 +1943,13 @@ static int game_property_new(bContext *C, wmOperator *op)
        char name[32];
        int type= RNA_enum_get(op->ptr, "type");
 
-       if(!ob)
-               return OPERATOR_CANCELLED;
-
        prop= new_property(type);
        BLI_addtail(&ob->prop, prop);
 
        RNA_string_get(op->ptr, "name", name);
-       if(BLI_strnlen(name, 32) > 0)
+       if (name[0] != '\0') {
                BLI_strncpy(prop->name, name, sizeof(prop->name));
+       }
 
        unique_property(NULL, prop, 0); // make_unique_prop_names(prop->name);
 
index 03d9be0d909725c9cc4709730b036b13846e1a24..8eea39c49560b6590b4ed6a3f16339b19db501eb 100644 (file)
@@ -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();
        }
 }