Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKester Maddock <Christopher.Maddock.1@uni.massey.ac.nz>2004-05-16 17:05:15 +0400
committerKester Maddock <Christopher.Maddock.1@uni.massey.ac.nz>2004-05-16 17:05:15 +0400
commit2fd6e728513f46e1f313667dfcf6b3d6e09cad39 (patch)
tree97306352111268430c9c5bcd75c1638be098cc0d
parent9827bf0cd7c94273e147caae6bb254cf70aed221 (diff)
Changed Python _getattr/_setattr methods to use const STR_String& instead of char* - makes using these methods much nicer.
-rw-r--r--source/gameengine/Converter/BL_ActionActuator.cpp2
-rw-r--r--source/gameengine/Converter/BL_ActionActuator.h2
-rw-r--r--source/gameengine/Expressions/ListValue.cpp2
-rw-r--r--source/gameengine/Expressions/ListValue.h2
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.cpp6
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.h11
-rw-r--r--source/gameengine/Expressions/Value.cpp4
-rw-r--r--source/gameengine/Expressions/Value.h18
-rw-r--r--source/gameengine/GameLogic/SCA_ANDController.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_ANDController.h2
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysSensor.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_AlwaysSensor.h2
-rw-r--r--source/gameengine/GameLogic/SCA_ExpressionController.h2
-rw-r--r--source/gameengine/GameLogic/SCA_ILogicBrick.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_ILogicBrick.h2
-rw-r--r--source/gameengine/GameLogic/SCA_IObject.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_IObject.h2
-rw-r--r--source/gameengine/GameLogic/SCA_ISensor.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_ISensor.h8
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardSensor.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardSensor.h2
-rw-r--r--source/gameengine/GameLogic/SCA_MouseSensor.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_MouseSensor.h2
-rw-r--r--source/gameengine/GameLogic/SCA_ORController.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_ORController.h2
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyActuator.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyActuator.h2
-rw-r--r--source/gameengine/GameLogic/SCA_PropertySensor.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_PropertySensor.h2
-rw-r--r--source/gameengine/GameLogic/SCA_PythonController.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_PythonController.h2
-rw-r--r--source/gameengine/GameLogic/SCA_RandomActuator.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_RandomActuator.h2
-rw-r--r--source/gameengine/GameLogic/SCA_RandomSensor.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_RandomSensor.h2
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h2
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp2
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_CDActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_CDActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintWrapper.cpp4
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintWrapper.h4
-rw-r--r--source/gameengine/Ketsji/KX_GameActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_GameActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_GameObject.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_IpoActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_IpoActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_MeshProxy.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_MeshProxy.h2
-rw-r--r--source/gameengine/Ketsji/KX_MouseFocusSensor.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_MouseFocusSensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_NearSensor.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_NearSensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_ObjectActuator.cpp8
-rw-r--r--source/gameengine/Ketsji/KX_ObjectActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp6
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h4
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_RaySensor.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_RaySensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp14
-rw-r--r--source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h4
-rw-r--r--source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h4
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h4
-rw-r--r--source/gameengine/Ketsji/KX_SceneActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_SceneActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_SoundActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_SoundActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_TouchSensor.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_TouchSensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_TrackToActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_TrackToActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_VertexProxy.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_VertexProxy.h2
-rw-r--r--source/gameengine/Ketsji/KX_VisibilityActuator.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_VisibilityActuator.h2
84 files changed, 121 insertions, 118 deletions
diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp
index 59d7ce16361..3f633eec9d6 100644
--- a/source/gameengine/Converter/BL_ActionActuator.cpp
+++ b/source/gameengine/Converter/BL_ActionActuator.cpp
@@ -399,7 +399,7 @@ PyMethodDef BL_ActionActuator::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* BL_ActionActuator::_getattr(char* attr) {
+PyObject* BL_ActionActuator::_getattr(const STR_String& attr) {
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Converter/BL_ActionActuator.h b/source/gameengine/Converter/BL_ActionActuator.h
index e3708bc6832..9e8054bff81 100644
--- a/source/gameengine/Converter/BL_ActionActuator.h
+++ b/source/gameengine/Converter/BL_ActionActuator.h
@@ -95,7 +95,7 @@ public:
// KX_PYMETHOD(BL_ActionActuator,GetChannel);
- virtual PyObject* _getattr(char* attr);
+ virtual PyObject* _getattr(const STR_String& attr);
void SetBlendTime (float newtime);
protected:
diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp
index 380befa51bd..6984e5663db 100644
--- a/source/gameengine/Expressions/ListValue.cpp
+++ b/source/gameengine/Expressions/ListValue.cpp
@@ -205,7 +205,7 @@ PyMethodDef CListValue::Methods[] = {
-PyObject* CListValue::_getattr(char* attr) {
+PyObject* CListValue::_getattr(const STR_String& attr) {
_getattr_up(CValue);
}
diff --git a/source/gameengine/Expressions/ListValue.h b/source/gameengine/Expressions/ListValue.h
index 10c64a13177..431f8f558a9 100644
--- a/source/gameengine/Expressions/ListValue.h
+++ b/source/gameengine/Expressions/ListValue.h
@@ -59,7 +59,7 @@ public:
bool CheckEqual(CValue* first,CValue* second);
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD(CListValue,append);
KX_PYMETHOD(CListValue,reverse);
diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp
index f9801fe0f60..74468cf030d 100644
--- a/source/gameengine/Expressions/PyObjectPlus.cpp
+++ b/source/gameengine/Expressions/PyObjectPlus.cpp
@@ -100,15 +100,15 @@ PyParentObject PyObjectPlus::Parents[] = {&PyObjectPlus::Type, NULL};
/*------------------------------
* PyObjectPlus attributes -- attributes
------------------------------*/
-PyObject *PyObjectPlus::_getattr(char *attr)
+PyObject *PyObjectPlus::_getattr(const STR_String& attr)
{
//if (streq(attr, "type"))
// return Py_BuildValue("s", (*(GetParents()))->tp_name);
- return Py_FindMethod(Methods, this, attr);
+ return Py_FindMethod(Methods, this, const_cast<char *>(attr.ReadPtr()));
}
-int PyObjectPlus::_setattr(char *attr, PyObject *value)
+int PyObjectPlus::_setattr(const STR_String& attr, PyObject *value)
{
//return PyObject::_setattr(attr,value);
//cerr << "Unknown attribute" << endl;
diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h
index 40d8ffb5903..7c5f531f35b 100644
--- a/source/gameengine/Expressions/PyObjectPlus.h
+++ b/source/gameengine/Expressions/PyObjectPlus.h
@@ -40,6 +40,7 @@
#endif
#include "KX_Python.h"
+#include "STR_String.h"
/*------------------------------
* Python defines
@@ -72,7 +73,7 @@ inline void Py_Fatal(char *M) {
// which allows attribute and method calls
// to be properly passed up the hierarchy.
#define _getattr_up(Parent) \
- PyObject *rvalue = Py_FindMethod(Methods, this, attr); \
+ PyObject *rvalue = Py_FindMethod(Methods, this, const_cast<char*>(attr.ReadPtr())); \
if (rvalue == NULL) \
{ \
PyErr_Clear(); \
@@ -107,15 +108,15 @@ class PyObjectPlus : public PyObject { // The PyObjectPlus abstract class
// Py_DECREF(this);
// }; // decref method
- virtual PyObject *_getattr(char *attr); // _getattr method
+ virtual PyObject *_getattr(const STR_String& attr); // _getattr method
static PyObject *__getattr(PyObject * PyObj, char *attr) // This should be the entry in Type.
- { return ((PyObjectPlus*) PyObj)->_getattr(attr); };
+ { return ((PyObjectPlus*) PyObj)->_getattr(STR_String(attr)); };
- virtual int _setattr(char *attr, PyObject *value); // _setattr method
+ virtual int _setattr(const STR_String& attr, PyObject *value); // _setattr method
static int __setattr(PyObject *PyObj, // This should be the entry in Type.
char *attr,
PyObject *value)
- { return ((PyObjectPlus*) PyObj)->_setattr(attr, value); };
+ { return ((PyObjectPlus*) PyObj)->_setattr(STR_String(attr), value); };
virtual PyObject *_repr(void); // _repr method
static PyObject *__repr(PyObject *PyObj) // This should be the entry in Type.
diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp
index 58f07790f6a..55dd1f5c1dd 100644
--- a/source/gameengine/Expressions/Value.cpp
+++ b/source/gameengine/Expressions/Value.cpp
@@ -609,7 +609,7 @@ static PyMethodDef CValueMethods[] =
};
-PyObject* CValue::_getattr(char* attr)
+PyObject* CValue::_getattr(const STR_String& attr)
{
CValue* resultattr = FindIdentifier(attr);
STR_String text;
@@ -698,7 +698,7 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj)
return vallie;
}
-int CValue::_setattr(char* attr,PyObject* pyobj)
+int CValue::_setattr(const STR_String& attr,PyObject* pyobj)
{
if (!pyobj) { // member deletion
diff --git a/source/gameengine/Expressions/Value.h b/source/gameengine/Expressions/Value.h
index 527dfa85d39..4656e2ca5ac 100644
--- a/source/gameengine/Expressions/Value.h
+++ b/source/gameengine/Expressions/Value.h
@@ -200,6 +200,20 @@ public:
static char method_name##_doc[]; \
/* The line above should remain empty */
+/**
+ * Method table macro (with doc)
+ */
+#define KX_PYMETHODTABLE(class_name, method_name) \
+ {#method_name , (PyCFunction) class_name::sPy##method_name, METH_VARARGS, class_name::method_name##_doc}
+
+/**
+ * Function implementation macro
+ */
+#define KX_PYMETHODDEF_DOC(class_name, method_name, doc_string) \
+char class_name::method_name##_doc[] = doc_string; \
+PyObject* class_name::Py##method_name(PyObject* self, PyObject* args, PyObject* kwds)
+
+
#ifndef NO_EXP_PYTHON_EMBEDDING
#include "PyObjectPlus.h"
@@ -239,7 +253,7 @@ public:
- PyObject* _getattr(char* attr);
+ virtual PyObject* _getattr(const STR_String& attr);
void SpecialRelease()
{
@@ -266,7 +280,7 @@ public:
virtual CValue* ConvertPythonToValue(PyObject* pyobj);
- int _setattr(char* attr,PyObject* value);
+ virtual int _setattr(const STR_String& attr,PyObject* value);
KX_PYMETHOD(CValue,GetName);
diff --git a/source/gameengine/GameLogic/SCA_ANDController.cpp b/source/gameengine/GameLogic/SCA_ANDController.cpp
index 4064bb6c840..0daba011c71 100644
--- a/source/gameengine/GameLogic/SCA_ANDController.cpp
+++ b/source/gameengine/GameLogic/SCA_ANDController.cpp
@@ -140,7 +140,7 @@ PyMethodDef SCA_ANDController::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* SCA_ANDController::_getattr(char* attr) {
+PyObject* SCA_ANDController::_getattr(const STR_String& attr) {
_getattr_up(SCA_IController);
}
diff --git a/source/gameengine/GameLogic/SCA_ANDController.h b/source/gameengine/GameLogic/SCA_ANDController.h
index f3064e931f2..d32bfd2aa48 100644
--- a/source/gameengine/GameLogic/SCA_ANDController.h
+++ b/source/gameengine/GameLogic/SCA_ANDController.h
@@ -51,7 +51,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
};
diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
index 1ca8545b062..a0bb7311eb9 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp
@@ -135,7 +135,7 @@ PyMethodDef SCA_AlwaysSensor::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* SCA_AlwaysSensor::_getattr(char* attr) {
+PyObject* SCA_AlwaysSensor::_getattr(const STR_String& attr) {
_getattr_up(SCA_ISensor);
}
diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.h b/source/gameengine/GameLogic/SCA_AlwaysSensor.h
index 03568bf1578..456516fa989 100644
--- a/source/gameengine/GameLogic/SCA_AlwaysSensor.h
+++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.h
@@ -53,7 +53,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
};
diff --git a/source/gameengine/GameLogic/SCA_ExpressionController.h b/source/gameengine/GameLogic/SCA_ExpressionController.h
index a92f7e2e088..e77f2b9938b 100644
--- a/source/gameengine/GameLogic/SCA_ExpressionController.h
+++ b/source/gameengine/GameLogic/SCA_ExpressionController.h
@@ -56,7 +56,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
-// virtual PyObject* _getattr(char *attr);
+// virtual PyObject* _getattr(const STR_String& attr);
};
diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
index 38fc75d7ad9..422f6d9cf0d 100644
--- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
+++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
@@ -254,7 +254,7 @@ PyMethodDef SCA_ILogicBrick::Methods[] = {
PyObject*
-SCA_ILogicBrick::_getattr(char* attr)
+SCA_ILogicBrick::_getattr(const STR_String& attr)
{
_getattr_up(CValue);
}
diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h
index 04d4da7c8ce..5199f66f409 100644
--- a/source/gameengine/GameLogic/SCA_ILogicBrick.h
+++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h
@@ -78,7 +78,7 @@ public:
virtual bool LessComparedTo(SCA_ILogicBrick* other);
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
static class SCA_LogicManager* m_sCurrentLogicManager;
diff --git a/source/gameengine/GameLogic/SCA_IObject.cpp b/source/gameengine/GameLogic/SCA_IObject.cpp
index 47a81f35896..bd356f07cb9 100644
--- a/source/gameengine/GameLogic/SCA_IObject.cpp
+++ b/source/gameengine/GameLogic/SCA_IObject.cpp
@@ -360,7 +360,7 @@ PyMethodDef SCA_IObject::Methods[] = {
-PyObject* SCA_IObject::_getattr(char* attr) {
+PyObject* SCA_IObject::_getattr(const STR_String& attr) {
_getattr_up(CValue);
}
diff --git a/source/gameengine/GameLogic/SCA_IObject.h b/source/gameengine/GameLogic/SCA_IObject.h
index f1409871de8..b1bb013abea 100644
--- a/source/gameengine/GameLogic/SCA_IObject.h
+++ b/source/gameengine/GameLogic/SCA_IObject.h
@@ -114,7 +114,7 @@ public:
const class MT_Point3& ConvertPythonVectorArg(PyObject* args);
// here come the python forwarded methods
- PyObject* _getattr(char* attr);
+ virtual PyObject* _getattr(const STR_String& attr);
};
diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp
index 613a44b09f3..43dd6bef83e 100644
--- a/source/gameengine/GameLogic/SCA_ISensor.cpp
+++ b/source/gameengine/GameLogic/SCA_ISensor.cpp
@@ -165,7 +165,7 @@ PyMethodDef SCA_ISensor::Methods[] = {
PyObject*
-SCA_ISensor::_getattr(char* attr)
+SCA_ISensor::_getattr(const STR_String& attr)
{
_getattr_up(SCA_ILogicBrick);
}
diff --git a/source/gameengine/GameLogic/SCA_ISensor.h b/source/gameengine/GameLogic/SCA_ISensor.h
index c0804cc757e..fb2dca97d06 100644
--- a/source/gameengine/GameLogic/SCA_ISensor.h
+++ b/source/gameengine/GameLogic/SCA_ISensor.h
@@ -46,7 +46,7 @@ class SCA_ISensor : public SCA_ILogicBrick
class SCA_EventManager* m_eventmgr;
bool m_triggered;
- /* Pulse positive pulses? */
+ /** Pulse positive pulses? */
bool m_pos_pulsemode;
/** Pulse negative pulses? */
@@ -61,7 +61,7 @@ class SCA_ISensor : public SCA_ILogicBrick
/** Number of ticks since the last negative pulse. */
int m_neg_ticks;
- /* invert the output signal*/
+ /** invert the output signal*/
bool m_invert;
/** Sensor must ignore updates? */
@@ -77,7 +77,7 @@ public:
~SCA_ISensor();
virtual void ReParent(SCA_IObject* parent);
- /* Because we want sensors to share some behaviour, the Activate has */
+ /** Because we want sensors to share some behaviour, the Activate has */
/* an implementation on this level. It requires an evaluate on the lower */
/* level of individual sensors. Mapping the old activate()s is easy. */
/* The IsPosTrig() also has to change, to keep things consistent. */
@@ -85,7 +85,7 @@ public:
virtual bool Evaluate(CValue* event) = 0;
virtual bool IsPositiveTrigger();
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
virtual CValue* GetReplica()=0;
/** Set parameters for the pulsing behaviour.
diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
index d31e2ae9200..1eee83ad3d6 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
@@ -670,7 +670,7 @@ PyMethodDef SCA_KeyboardSensor::Methods[] = {
};
PyObject*
-SCA_KeyboardSensor::_getattr(char* attr)
+SCA_KeyboardSensor::_getattr(const STR_String& attr)
{
_getattr_up(SCA_ISensor);
}
diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.h b/source/gameengine/GameLogic/SCA_KeyboardSensor.h
index 2badc799206..f4a3d7e47b5 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardSensor.h
+++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.h
@@ -127,7 +127,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
PyObject* PySetAllMode(PyObject* self,
diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
index 08cf68ba332..fda641cfc96 100644
--- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
@@ -254,7 +254,7 @@ PyMethodDef SCA_MouseSensor::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* SCA_MouseSensor::_getattr(char* attr) {
+PyObject* SCA_MouseSensor::_getattr(const STR_String& attr) {
_getattr_up(SCA_ISensor);
}
diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.h b/source/gameengine/GameLogic/SCA_MouseSensor.h
index 9b8043a1f15..e8a0d0db78b 100644
--- a/source/gameengine/GameLogic/SCA_MouseSensor.h
+++ b/source/gameengine/GameLogic/SCA_MouseSensor.h
@@ -110,7 +110,7 @@ class SCA_MouseSensor : public SCA_ISensor
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
/* read x-coordinate */
KX_PYMETHOD_DOC(SCA_MouseSensor,GetXPosition);
diff --git a/source/gameengine/GameLogic/SCA_ORController.cpp b/source/gameengine/GameLogic/SCA_ORController.cpp
index 773b66be637..29f62b4e6a7 100644
--- a/source/gameengine/GameLogic/SCA_ORController.cpp
+++ b/source/gameengine/GameLogic/SCA_ORController.cpp
@@ -132,7 +132,7 @@ PyMethodDef SCA_ORController::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* SCA_ORController::_getattr(char* attr) {
+PyObject* SCA_ORController::_getattr(const STR_String& attr) {
_getattr_up(SCA_IController);
}
diff --git a/source/gameengine/GameLogic/SCA_ORController.h b/source/gameengine/GameLogic/SCA_ORController.h
index e88beb22492..d8b844d9063 100644
--- a/source/gameengine/GameLogic/SCA_ORController.h
+++ b/source/gameengine/GameLogic/SCA_ORController.h
@@ -52,7 +52,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
};
#endif //__KX_ORCONTROLLER
diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
index e4820e00f70..c416d8e1dd5 100644
--- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
@@ -219,7 +219,7 @@ PyMethodDef SCA_PropertyActuator::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* SCA_PropertyActuator::_getattr(char* attr) {
+PyObject* SCA_PropertyActuator::_getattr(const STR_String& attr) {
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.h b/source/gameengine/GameLogic/SCA_PropertyActuator.h
index 5f7fcf9e87f..2fdf1a62559 100644
--- a/source/gameengine/GameLogic/SCA_PropertyActuator.h
+++ b/source/gameengine/GameLogic/SCA_PropertyActuator.h
@@ -102,7 +102,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
// python wrapped methods
KX_PYMETHOD_DOC(SCA_PropertyActuator,SetProperty);
diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp
index 448de107381..6f98b777d8c 100644
--- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp
@@ -318,7 +318,7 @@ PyMethodDef SCA_PropertySensor::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* SCA_PropertySensor::_getattr(char* attr) {
+PyObject* SCA_PropertySensor::_getattr(const STR_String& attr) {
_getattr_up(SCA_ISensor); /* implicit return! */
}
diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.h b/source/gameengine/GameLogic/SCA_PropertySensor.h
index 37f4138c6fc..0ebcacdb21a 100644
--- a/source/gameengine/GameLogic/SCA_PropertySensor.h
+++ b/source/gameengine/GameLogic/SCA_PropertySensor.h
@@ -90,7 +90,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
/* 1. getType */
KX_PYMETHOD_DOC(SCA_PropertySensor,GetType);
diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp
index a96e17e67d2..e21916e060e 100644
--- a/source/gameengine/GameLogic/SCA_PythonController.cpp
+++ b/source/gameengine/GameLogic/SCA_PythonController.cpp
@@ -274,7 +274,7 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr)
-PyObject* SCA_PythonController::_getattr(char* attr)
+PyObject* SCA_PythonController::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IController);
}
diff --git a/source/gameengine/GameLogic/SCA_PythonController.h b/source/gameengine/GameLogic/SCA_PythonController.h
index f19fcac72f3..574bf35be7e 100644
--- a/source/gameengine/GameLogic/SCA_PythonController.h
+++ b/source/gameengine/GameLogic/SCA_PythonController.h
@@ -72,7 +72,7 @@ class SCA_PythonController : public SCA_IController
static PyObject* sPyAddActiveActuator(PyObject* self,
PyObject* args,
PyObject* kwds);
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD_DOC(SCA_PythonController,GetSensors);
KX_PYMETHOD_DOC(SCA_PythonController,GetSensor);
diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp
index 4347e5cef67..4bc0e2539f0 100644
--- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp
@@ -360,7 +360,7 @@ PyMethodDef SCA_RandomActuator::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* SCA_RandomActuator::_getattr(char* attr) {
+PyObject* SCA_RandomActuator::_getattr(const STR_String& attr) {
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.h b/source/gameengine/GameLogic/SCA_RandomActuator.h
index 9045dad078c..1048790c9b6 100644
--- a/source/gameengine/GameLogic/SCA_RandomActuator.h
+++ b/source/gameengine/GameLogic/SCA_RandomActuator.h
@@ -99,7 +99,7 @@ class SCA_RandomActuator : public SCA_IActuator
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
/* 1. setSeed */
KX_PYMETHOD_DOC(SCA_RandomActuator,SetSeed);
diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp
index 12f3e0bf5ed..f747504a697 100644
--- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp
@@ -153,7 +153,7 @@ PyMethodDef SCA_RandomSensor::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* SCA_RandomSensor::_getattr(char* attr) {
+PyObject* SCA_RandomSensor::_getattr(const STR_String& attr) {
_getattr_up(SCA_ISensor);
}
diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.h b/source/gameengine/GameLogic/SCA_RandomSensor.h
index 41f7f453556..1a3c0402e31 100644
--- a/source/gameengine/GameLogic/SCA_RandomSensor.h
+++ b/source/gameengine/GameLogic/SCA_RandomSensor.h
@@ -61,7 +61,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
/* 1. setSeed */
KX_PYMETHOD_DOC(SCA_RandomSensor,SetSeed);
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
index aed6b6a97a1..23bc35fdeac 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
@@ -146,7 +146,7 @@ PyMethodDef KX_NetworkMessageActuator::Methods[] = {
{NULL,NULL} // Sentinel
};
-PyObject* KX_NetworkMessageActuator::_getattr(char* attr) {
+PyObject* KX_NetworkMessageActuator::_getattr(const STR_String& attr) {
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
index 7797a6139a0..cec3b27c4a6 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
@@ -64,7 +64,7 @@ public:
/* Python interface ------------------------------------------- */
/* ------------------------------------------------------------ */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD(KX_NetworkMessageActuator, SetToPropName);
KX_PYMETHOD(KX_NetworkMessageActuator, SetSubject);
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
index ab5f9b989a7..b44269faa9a 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
@@ -203,7 +203,7 @@ PyMethodDef KX_NetworkMessageSensor::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* KX_NetworkMessageSensor::_getattr(char* attr) {
+PyObject* KX_NetworkMessageSensor::_getattr(const STR_String& attr) {
_getattr_up(SCA_ISensor); // implicit return!
}
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
index f2b8b306d9d..82f83787645 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
@@ -74,7 +74,7 @@ public:
/* Python interface -------------------------------------------- */
/* ------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD_DOC(KX_NetworkMessageSensor, SetSubjectFilterText);
KX_PYMETHOD_DOC(KX_NetworkMessageSensor, GetFrameMessageCount);
diff --git a/source/gameengine/Ketsji/KX_CDActuator.cpp b/source/gameengine/Ketsji/KX_CDActuator.cpp
index b422585957e..efa7fb73ba5 100644
--- a/source/gameengine/Ketsji/KX_CDActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CDActuator.cpp
@@ -202,7 +202,7 @@ PyMethodDef KX_CDActuator::Methods[] = {
-PyObject* KX_CDActuator::_getattr(char* attr)
+PyObject* KX_CDActuator::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_CDActuator.h b/source/gameengine/Ketsji/KX_CDActuator.h
index 1cf188e952c..3e76db56264 100644
--- a/source/gameengine/Ketsji/KX_CDActuator.h
+++ b/source/gameengine/Ketsji/KX_CDActuator.h
@@ -84,7 +84,7 @@ public:
/* Python interface --------------------------------------------------- */
/* -------------------------------------------------------------------- */
- PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD(KX_CDActuator,StartCD);
KX_PYMETHOD(KX_CDActuator,PauseCD);
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp
index f1286de1bd4..478bf388fb1 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp
@@ -362,7 +362,7 @@ PyMethodDef KX_CameraActuator::Methods[] = {
{NULL,NULL,NULL,NULL} //Sentinel
};
-PyObject* KX_CameraActuator::_getattr(char* attr) {
+PyObject* KX_CameraActuator::_getattr(const STR_String& attr) {
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.h b/source/gameengine/Ketsji/KX_CameraActuator.h
index bb3bcf52323..21d4af64135 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.h
+++ b/source/gameengine/Ketsji/KX_CameraActuator.h
@@ -119,7 +119,7 @@ private :
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
index e91c82cc811..b60841e8634 100644
--- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
@@ -223,7 +223,7 @@ PyMethodDef KX_ConstraintActuator::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* KX_ConstraintActuator::_getattr(char* attr) {
+PyObject* KX_ConstraintActuator::_getattr(const STR_String& attr) {
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.h b/source/gameengine/Ketsji/KX_ConstraintActuator.h
index 07befb3551d..800a1ae10fb 100644
--- a/source/gameengine/Ketsji/KX_ConstraintActuator.h
+++ b/source/gameengine/Ketsji/KX_ConstraintActuator.h
@@ -93,7 +93,7 @@ class KX_ConstraintActuator : public SCA_IActuator
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD_DOC(KX_ConstraintActuator,SetDamp);
KX_PYMETHOD_DOC(KX_ConstraintActuator,GetDamp);
diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
index e42ae59e2bb..9ca9517c035 100644
--- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
@@ -95,13 +95,13 @@ PyParentObject KX_ConstraintWrapper::Parents[] = {
NULL
};
-PyObject* KX_ConstraintWrapper::_getattr(char* attr)
+PyObject* KX_ConstraintWrapper::_getattr(const STR_String& attr)
{
//here you can search for existing data members (like mass,friction etc.)
_getattr_up(PyObjectPlus);
}
-int KX_ConstraintWrapper::_setattr(char* attr,PyObject* pyobj)
+int KX_ConstraintWrapper::_setattr(const STR_String& attr,PyObject* pyobj)
{
PyTypeObject* type = pyobj->ob_type;
diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.h b/source/gameengine/Ketsji/KX_ConstraintWrapper.h
index 9f4bb78bdc4..12fd7fbe292 100644
--- a/source/gameengine/Ketsji/KX_ConstraintWrapper.h
+++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.h
@@ -38,8 +38,8 @@
class KX_ConstraintWrapper : public PyObjectPlus
{
Py_Header;
- PyObject* _getattr(char* attr);
- virtual int _setattr(char *attr, PyObject *value);
+ virtual PyObject* _getattr(const STR_String& attr);
+ virtual int _setattr(const STR_String& attr, PyObject *value);
public:
KX_ConstraintWrapper(PHY_ConstraintType ctype,int constraintId,class PHY_IPhysicsEnvironment* physenv,PyTypeObject *T = &Type);
virtual ~KX_ConstraintWrapper ();
diff --git a/source/gameengine/Ketsji/KX_GameActuator.cpp b/source/gameengine/Ketsji/KX_GameActuator.cpp
index dcdb9b00087..2cd7e4db518 100644
--- a/source/gameengine/Ketsji/KX_GameActuator.cpp
+++ b/source/gameengine/Ketsji/KX_GameActuator.cpp
@@ -213,7 +213,7 @@ PyObject* KX_GameActuator::PySetFile(PyObject* self, PyObject* args, PyObject* k
-PyObject* KX_GameActuator::_getattr(char* attr)
+PyObject* KX_GameActuator::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_GameActuator.h b/source/gameengine/Ketsji/KX_GameActuator.h
index 4f197cf5841..b3acd3b7400 100644
--- a/source/gameengine/Ketsji/KX_GameActuator.h
+++ b/source/gameengine/Ketsji/KX_GameActuator.h
@@ -77,7 +77,7 @@ class KX_GameActuator : public SCA_IActuator
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD_DOC(KX_GameActuator,GetFile);
KX_PYMETHOD_DOC(KX_GameActuator,SetFile);
diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp
index 91ff9e62459..c20f874fcc9 100644
--- a/source/gameengine/Ketsji/KX_GameObject.cpp
+++ b/source/gameengine/Ketsji/KX_GameObject.cpp
@@ -700,7 +700,7 @@ PyParentObject KX_GameObject::Parents[] = {
-PyObject* KX_GameObject::_getattr(char* attr)
+PyObject* KX_GameObject::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IObject);
}
diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp
index 92333329f9e..6d2b8dc49eb 100644
--- a/source/gameengine/Ketsji/KX_IpoActuator.cpp
+++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp
@@ -431,7 +431,7 @@ PyMethodDef KX_IpoActuator::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* KX_IpoActuator::_getattr(char* attr) {
+PyObject* KX_IpoActuator::_getattr(const STR_String& attr) {
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_IpoActuator.h b/source/gameengine/Ketsji/KX_IpoActuator.h
index e5cd1b943a8..49c06a74ece 100644
--- a/source/gameengine/Ketsji/KX_IpoActuator.h
+++ b/source/gameengine/Ketsji/KX_IpoActuator.h
@@ -120,7 +120,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
//KX_PYMETHOD_DOC
KX_PYMETHOD_DOC(KX_IpoActuator,Set);
KX_PYMETHOD_DOC(KX_IpoActuator,SetProperty);
diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp
index 4b5580ed438..4cde3ea9025 100644
--- a/source/gameengine/Ketsji/KX_MeshProxy.cpp
+++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp
@@ -76,7 +76,7 @@ PyMethodDef KX_MeshProxy::Methods[] = {
};
PyObject*
-KX_MeshProxy::_getattr(char* attr)
+KX_MeshProxy::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IObject);
}
diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h
index 63feb220f67..d40f8b514d2 100644
--- a/source/gameengine/Ketsji/KX_MeshProxy.h
+++ b/source/gameengine/Ketsji/KX_MeshProxy.h
@@ -54,7 +54,7 @@ public:
virtual CValue* GetReplica();
// stuff for python integration
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD(KX_MeshProxy,GetNumMaterials);
KX_PYMETHOD(KX_MeshProxy,GetMaterialName);
KX_PYMETHOD(KX_MeshProxy,GetTextureName);
diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
index 3d6264674bc..fc89bf5e042 100644
--- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
+++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
@@ -357,7 +357,7 @@ PyMethodDef KX_MouseFocusSensor::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* KX_MouseFocusSensor::_getattr(char* attr) {
+PyObject* KX_MouseFocusSensor::_getattr(const STR_String& attr) {
_getattr_up(SCA_MouseSensor);
}
diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.h b/source/gameengine/Ketsji/KX_MouseFocusSensor.h
index 06a38434914..61571e190ec 100644
--- a/source/gameengine/Ketsji/KX_MouseFocusSensor.h
+++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.h
@@ -82,7 +82,7 @@ class KX_MouseFocusSensor : public SCA_MouseSensor
/* --------------------------------------------------------------------- */
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD_DOC(KX_MouseFocusSensor,GetRayTarget);
KX_PYMETHOD_DOC(KX_MouseFocusSensor,GetRaySource);
diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp
index 880d0d61c16..3c6a5b9ba5e 100644
--- a/source/gameengine/Ketsji/KX_NearSensor.cpp
+++ b/source/gameengine/Ketsji/KX_NearSensor.cpp
@@ -266,7 +266,7 @@ PyMethodDef KX_NearSensor::Methods[] = {
PyObject*
-KX_NearSensor::_getattr(char* attr)
+KX_NearSensor::_getattr(const STR_String& attr)
{
_getattr_up(KX_TouchSensor);
}
diff --git a/source/gameengine/Ketsji/KX_NearSensor.h b/source/gameengine/Ketsji/KX_NearSensor.h
index 335edbb97ca..d1126510728 100644
--- a/source/gameengine/Ketsji/KX_NearSensor.h
+++ b/source/gameengine/Ketsji/KX_NearSensor.h
@@ -77,7 +77,7 @@ public:
const DT_CollData * coll_data);
virtual void RegisterSumo(KX_TouchEventManager *touchman);
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
};
diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp
index 1f4e61f8139..04385859994 100644
--- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp
@@ -89,10 +89,8 @@ bool KX_ObjectActuator::Update(double curtime,double deltatime)
(m_bitLocalFlag.AngularVelocity) != 0
);
m_active_combined_velocity = false;
- return false;
- } else {
- return false;
- }
+ }
+ return false;
} else
if (parent)
@@ -209,7 +207,7 @@ PyMethodDef KX_ObjectActuator::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* KX_ObjectActuator::_getattr(char* attr) {
+PyObject* KX_ObjectActuator::_getattr(const STR_String& attr) {
_getattr_up(SCA_IActuator);
};
diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.h b/source/gameengine/Ketsji/KX_ObjectActuator.h
index f398f68b6c3..92365eba3ca 100644
--- a/source/gameengine/Ketsji/KX_ObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_ObjectActuator.h
@@ -121,7 +121,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD(KX_ObjectActuator,GetForce);
KX_PYMETHOD(KX_ObjectActuator,SetForce);
diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
index d692af82b7a..1bd5a0b3d42 100644
--- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
@@ -131,15 +131,14 @@ PyParentObject KX_PhysicsObjectWrapper::Parents[] = {
NULL
};
-PyObject* KX_PhysicsObjectWrapper::_getattr(char* attr)
+PyObject* KX_PhysicsObjectWrapper::_getattr(const STR_String& attr)
{
_getattr_up(PyObjectPlus);
}
-int KX_PhysicsObjectWrapper::_setattr(char* attr,PyObject* pyobj)
+int KX_PhysicsObjectWrapper::_setattr(const STR_String& attr,PyObject* pyobj)
{
-
PyTypeObject* type = pyobj->ob_type;
int result = 1;
@@ -154,6 +153,7 @@ int KX_PhysicsObjectWrapper::_setattr(char* attr,PyObject* pyobj)
}
if (result)
result = PyObjectPlus::_setattr(attr,pyobj);
+
return result;
};
diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
index e1a8d20b1a1..3de94795b16 100644
--- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
+++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
@@ -39,8 +39,8 @@ class KX_PhysicsObjectWrapper : public PyObjectPlus
{
Py_Header;
- PyObject* _getattr(char* attr);
- virtual int _setattr(char *attr, PyObject *value);
+ virtual PyObject* _getattr(const STR_String& attr);
+ virtual int _setattr(const STR_String& attr, PyObject *value);
public:
KX_PhysicsObjectWrapper(class PHY_IPhysicsController* ctrl,class PHY_IPhysicsEnvironment* physenv,PyTypeObject *T = &Type);
virtual ~KX_PhysicsObjectWrapper();
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp
index 923a38cb7cc..d167349789c 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.cpp
+++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp
@@ -171,7 +171,7 @@ PyMethodDef KX_RadarSensor::Methods[] = {
{NULL,NULL,NULL,NULL} //Sentinel
};
-PyObject* KX_RadarSensor::_getattr(char* attr) {
+PyObject* KX_RadarSensor::_getattr(const STR_String& attr) {
_getattr_up(KX_TouchSensor);
}
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.h b/source/gameengine/Ketsji/KX_RadarSensor.h
index 03364ae9c29..055041f749c 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.h
+++ b/source/gameengine/Ketsji/KX_RadarSensor.h
@@ -82,7 +82,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD_DOC(KX_RadarSensor,GetConeOrigin);
KX_PYMETHOD_DOC(KX_RadarSensor,GetConeTarget);
diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp
index 3db65783661..3832d95f059 100644
--- a/source/gameengine/Ketsji/KX_RaySensor.cpp
+++ b/source/gameengine/Ketsji/KX_RaySensor.cpp
@@ -414,6 +414,6 @@ PyObject* KX_RaySensor::PyGetHitNormal(PyObject* self,
-PyObject* KX_RaySensor::_getattr(char* attr) {
+PyObject* KX_RaySensor::_getattr(const STR_String& attr) {
_getattr_up(SCA_ISensor);
}
diff --git a/source/gameengine/Ketsji/KX_RaySensor.h b/source/gameengine/Ketsji/KX_RaySensor.h
index 528f52f27a7..8d361f53d3e 100644
--- a/source/gameengine/Ketsji/KX_RaySensor.h
+++ b/source/gameengine/Ketsji/KX_RaySensor.h
@@ -73,7 +73,7 @@ public:
KX_PYMETHOD_DOC(KX_RaySensor,GetHitNormal);
KX_PYMETHOD_DOC(KX_RaySensor,GetRayDirection);
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
};
diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
index 666d4474130..37d772b9674 100644
--- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
@@ -93,17 +93,7 @@ bool KX_SCA_AddObjectActuator::Update(double curtime,
SCA_IObject* replica = m_scene->AddReplicaObject(m_OriginalObject,GetParent(),m_timeProp );
KX_GameObject * game_obj = static_cast<KX_GameObject *>(replica);
game_obj->setLinearVelocity(m_linear_velocity,m_localFlag);
-
- //if (game_obj->GetSumoObject())
- //{
- // If this is object is also controlled by physics.
- // we have to inform the physics controller that
- // we no longer take control of the object.
- // game_obj->GetPhysicsController()->ResolveCombinedVelocities(m_linear_velocity,
- // MT_Vector3(0,0,0),
- // m_localFlag,
- // false);
- //}
+ game_obj->ResolveCombinedVelocities(m_linear_velocity, MT_Vector3(0., 0., 0.), m_localFlag, false);
// keep a copy of the last object, to allow python scripters to change it
if (m_lastCreatedObject)
@@ -184,7 +174,7 @@ PyMethodDef KX_SCA_AddObjectActuator::Methods[] = {
};
-PyObject* KX_SCA_AddObjectActuator::_getattr(char* attr)
+PyObject* KX_SCA_AddObjectActuator::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
index d5176bcd38e..d9f82e7251e 100644
--- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
@@ -98,9 +98,9 @@ public:
double deltatime
);
- PyObject*
+ virtual PyObject*
_getattr(
- char *attr
+ const STR_String& attr
);
SCA_IObject*
diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
index a549ef56714..e91f0b86b71 100644
--- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp
@@ -133,7 +133,7 @@ PyMethodDef KX_SCA_EndObjectActuator::Methods[] = {
};
-PyObject* KX_SCA_EndObjectActuator::_getattr(char* attr)
+PyObject* KX_SCA_EndObjectActuator::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
index 60c97322223..3b6e340f872 100644
--- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
@@ -70,9 +70,9 @@ class KX_SCA_EndObjectActuator : public SCA_IActuator
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- PyObject*
+ virtual PyObject*
_getattr(
- char *attr
+ const STR_String& attr
);
}; /* end of class KX_EditObjectActuator : public SCA_PropertyActuator */
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
index 060afe060ee..2480724986b 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
@@ -89,7 +89,7 @@ PyMethodDef KX_SCA_ReplaceMeshActuator::Methods[] = {
-PyObject* KX_SCA_ReplaceMeshActuator::_getattr(char* attr)
+PyObject* KX_SCA_ReplaceMeshActuator::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
index e0bb2c0a9b8..cc7bd8c9c6a 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
@@ -75,9 +75,9 @@ class KX_SCA_ReplaceMeshActuator : public SCA_IActuator
double deltatime
);
- PyObject*
+ virtual PyObject*
_getattr(
- char *attr
+ const STR_String& attr
);
/* 1. setMesh */
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp
index e07719ea680..996b671094a 100644
--- a/source/gameengine/Ketsji/KX_SceneActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp
@@ -224,7 +224,7 @@ PyMethodDef KX_SceneActuator::Methods[] =
-PyObject* KX_SceneActuator::_getattr(char* attr)
+PyObject* KX_SceneActuator::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.h b/source/gameengine/Ketsji/KX_SceneActuator.h
index 38de267092c..76039fcf436 100644
--- a/source/gameengine/Ketsji/KX_SceneActuator.h
+++ b/source/gameengine/Ketsji/KX_SceneActuator.h
@@ -92,7 +92,7 @@ class KX_SceneActuator : public SCA_IActuator
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
/* 1. set */
/* Removed */
diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp
index 3e2103245f1..6f959f0273b 100644
--- a/source/gameengine/Ketsji/KX_SoundActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp
@@ -262,7 +262,7 @@ PyMethodDef KX_SoundActuator::Methods[] = {
-PyObject* KX_SoundActuator::_getattr(char* attr)
+PyObject* KX_SoundActuator::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_SoundActuator.h b/source/gameengine/Ketsji/KX_SoundActuator.h
index 0ae1ef39d97..7cdf6013180 100644
--- a/source/gameengine/Ketsji/KX_SoundActuator.h
+++ b/source/gameengine/Ketsji/KX_SoundActuator.h
@@ -83,7 +83,7 @@ public:
/* Python interface --------------------------------------------------- */
/* -------------------------------------------------------------------- */
- PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD(KX_SoundActuator,SetFilename);
KX_PYMETHOD(KX_SoundActuator,GetFilename);
diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp
index 29d9109c272..9baa9377f02 100644
--- a/source/gameengine/Ketsji/KX_TouchSensor.cpp
+++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp
@@ -246,7 +246,7 @@ PyMethodDef KX_TouchSensor::Methods[] = {
{NULL,NULL} //Sentinel
};
-PyObject* KX_TouchSensor::_getattr(char* attr) {
+PyObject* KX_TouchSensor::_getattr(const STR_String& attr) {
_getattr_up(SCA_ISensor);
}
diff --git a/source/gameengine/Ketsji/KX_TouchSensor.h b/source/gameengine/Ketsji/KX_TouchSensor.h
index 4f2ac2d99fa..9dd17a5fe83 100644
--- a/source/gameengine/Ketsji/KX_TouchSensor.h
+++ b/source/gameengine/Ketsji/KX_TouchSensor.h
@@ -107,7 +107,7 @@ public:
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
/* 1. setProperty */
KX_PYMETHOD_DOC(KX_TouchSensor,SetProperty);
diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
index 6dcb6281a63..c02cdbc17be 100644
--- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp
+++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
@@ -386,7 +386,7 @@ PyMethodDef KX_TrackToActuator::Methods[] = {
-PyObject* KX_TrackToActuator::_getattr(char* attr)
+PyObject* KX_TrackToActuator::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IActuator);
}
diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.h b/source/gameengine/Ketsji/KX_TrackToActuator.h
index f549969a9f9..817bb4a8cfa 100644
--- a/source/gameengine/Ketsji/KX_TrackToActuator.h
+++ b/source/gameengine/Ketsji/KX_TrackToActuator.h
@@ -65,7 +65,7 @@ class KX_TrackToActuator : public SCA_IActuator
virtual bool Update(double curtime,double deltatime);
/* Python part */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
/* 1. setObject */
KX_PYMETHOD_DOC(KX_TrackToActuator,SetObject);
diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp
index b9cb9affe72..a8c6d0f921c 100644
--- a/source/gameengine/Ketsji/KX_VertexProxy.cpp
+++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp
@@ -75,7 +75,7 @@ PyMethodDef KX_VertexProxy::Methods[] = {
};
PyObject*
-KX_VertexProxy::_getattr(char* attr)
+KX_VertexProxy::_getattr(const STR_String& attr)
{
_getattr_up(SCA_IObject);
}
diff --git a/source/gameengine/Ketsji/KX_VertexProxy.h b/source/gameengine/Ketsji/KX_VertexProxy.h
index 8226c2b4558..f447014b8b8 100644
--- a/source/gameengine/Ketsji/KX_VertexProxy.h
+++ b/source/gameengine/Ketsji/KX_VertexProxy.h
@@ -55,7 +55,7 @@ public:
// stuff for python integration
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
KX_PYMETHOD(KX_VertexProxy,GetXYZ);
KX_PYMETHOD(KX_VertexProxy,SetXYZ);
diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
index ccaca4a93fb..dc0178976fa 100644
--- a/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
+++ b/source/gameengine/Ketsji/KX_VisibilityActuator.cpp
@@ -132,7 +132,7 @@ KX_VisibilityActuator::Methods[] = {
PyObject*
KX_VisibilityActuator::_getattr(
- char* attr
+ const STR_String& attr
)
{
_getattr_up(SCA_IActuator);
diff --git a/source/gameengine/Ketsji/KX_VisibilityActuator.h b/source/gameengine/Ketsji/KX_VisibilityActuator.h
index 7e9a0aeca75..9d5d38666f1 100644
--- a/source/gameengine/Ketsji/KX_VisibilityActuator.h
+++ b/source/gameengine/Ketsji/KX_VisibilityActuator.h
@@ -71,7 +71,7 @@ class KX_VisibilityActuator : public SCA_IActuator
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- virtual PyObject* _getattr(char *attr);
+ virtual PyObject* _getattr(const STR_String& attr);
//KX_PYMETHOD_DOC
KX_PYMETHOD_DOC(KX_VisibilityActuator,SetVisible);