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:
authorPorteries Tristan <republicthunderbolt9@gmail.com>2015-04-15 14:45:43 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-04-15 15:02:16 +0300
commit7730391d7425a8581cf16b3a6510acc56108071c (patch)
treeca08d06f994ea840cdb80b8d9548e88576b8f116 /source/gameengine/Expressions/PyObjectPlus.cpp
parentb9ea6fbb301f264110b5b0ab0ace021079434e69 (diff)
BGE: subclass with more than 1 argument, D1237
In the BGE you can't create a subclass with more than 1 argument like : "player = Player(owner, 10)" I have modified the py_base_new to check only the first argument of args tuple. Now we can do : class Player(types.KX_GameObject): def __init__(self, gameobj, life): print("create new player :", self, ", life :", life) player = Player(own, 50)
Diffstat (limited to 'source/gameengine/Expressions/PyObjectPlus.cpp')
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp
index a65d61bc98b..d475152f83e 100644
--- a/source/gameengine/Expressions/PyObjectPlus.cpp
+++ b/source/gameengine/Expressions/PyObjectPlus.cpp
@@ -148,10 +148,15 @@ PyObject *PyObjectPlus::py_base_repr(PyObject *self) // This should be the ent
PyObject *PyObjectPlus::py_base_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
PyTypeObject *base_type;
- PyObjectPlus_Proxy *base = NULL;
- if (!PyArg_ParseTuple(args, "O:Base PyObjectPlus", &base))
+ /* one or more args is needed */
+ if (!PyTuple_GET_SIZE(args)) {
+ PyErr_SetString(PyExc_TypeError,
+ "Expected at least one argument");
return NULL;
+ }
+
+ PyObjectPlus_Proxy *base = (PyObjectPlus_Proxy *)PyTuple_GET_ITEM(args, 0);
/* the 'base' PyObject may be subclassed (multiple times even)
* we need to find the first C++ defined class to check 'type'