diff --git a/src/PyVector.cpp b/src/PyVector.cpp index 9438b42..b76e038 100644 --- a/src/PyVector.cpp +++ b/src/PyVector.cpp @@ -55,16 +55,22 @@ int PyVector::init(PyVectorObject* self, PyObject* args, PyObject* kwds) { using namespace mcrfpydef; static const char* keywords[] = { "x", "y", nullptr }; - PyObject* leader; + PyObject* leader = NULL; double x=0, y=0; - if (!PyArg_ParseTupleAndKeywords, args, kwds, "|Of", leader, &y) + if (!PyArg_ParseTupleAndKeywords(args, kwds, "|Of", const_cast(keywords), &leader, &y)) { //PyErr_SetString(PyExc_TypeError, "mcrfpy.Vector requires a 2-tuple or two numeric values"); + self->data = sf::Vector2f(); return 0; } + else if (leader == NULL || leader == Py_None) + { + self->data = sf::Vector2f(); + return 0; + } // if the "r" arg is already a vector, yoink that color value - if (PyObject_IsInstance(leader, (PyObject*)&PyVectorType)) + else if (PyObject_IsInstance(leader, (PyObject*)&PyVectorType)) { self->data = ((PyVectorObject*)leader)->data; return 0;