Revision: 16295 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16295 Author: campbellbarton Date: 2008-08-29 05:18:02 +0200 (Fri, 29 Aug 2008)
Log Message: ----------- svn merge -r 16293:HEAD https://svn.blender.org/svnroot/bf-blender/trunk/blender Modified Paths: -------------- branches/apricot/source/gameengine/GamePlayer/ghost/GPG_Application.cpp branches/apricot/source/gameengine/Ketsji/KX_PythonInit.cpp branches/apricot/source/gameengine/PyDoc/GameKeys.py Modified: branches/apricot/source/gameengine/GamePlayer/ghost/GPG_Application.cpp =================================================================== --- branches/apricot/source/gameengine/GamePlayer/ghost/GPG_Application.cpp 2008-08-29 03:15:17 UTC (rev 16294) +++ branches/apricot/source/gameengine/GamePlayer/ghost/GPG_Application.cpp 2008-08-29 03:18:02 UTC (rev 16295) @@ -726,6 +726,7 @@ } else { printf("Error, GameLogic.globalDict could not be marshal'd\n"); } + Py_DECREF(gameLogic); } else { printf("Error, GameLogic.globalDict was removed\n"); } Modified: branches/apricot/source/gameengine/Ketsji/KX_PythonInit.cpp =================================================================== --- branches/apricot/source/gameengine/Ketsji/KX_PythonInit.cpp 2008-08-29 03:15:17 UTC (rev 16294) +++ branches/apricot/source/gameengine/Ketsji/KX_PythonInit.cpp 2008-08-29 03:18:02 UTC (rev 16295) @@ -1129,9 +1129,38 @@ "This modules provides defines for key-codes" ; +static char gPyEventToString_doc[] = +"Take a valid event from the GameKeys module or Keyboard Sensor and return a name" +; +static PyObject* gPyEventToString(PyObject*, PyObject* value) +{ + PyObject* mod, *dict, *key, *val, *ret = NULL; + int pos = 0; + + mod = PyImport_ImportModule( "GameKeys" ); + if (!mod) + return NULL; + + dict = PyModule_GetDict(mod); + + while (PyDict_Next(dict, &pos, &key, &val)) { + if (PyObject_Compare(value, val)==0) { + ret = key; + break; + } + } + + PyErr_Clear(); // incase there was an error clearing + Py_DECREF(mod); + if (!ret) PyErr_SetString(PyExc_ValueError, "expected a valid int keyboard event"); + else Py_INCREF(ret); + + return ret; +} static struct PyMethodDef gamekeys_methods[] = { + {"EventToString", (PyCFunction)gPyEventToString, METH_O, gPyEventToString_doc}, { NULL, (PyCFunction) NULL, 0, NULL } }; Modified: branches/apricot/source/gameengine/PyDoc/GameKeys.py =================================================================== --- branches/apricot/source/gameengine/PyDoc/GameKeys.py 2008-08-29 03:15:17 UTC (rev 16294) +++ branches/apricot/source/gameengine/PyDoc/GameKeys.py 2008-08-29 03:18:02 UTC (rev 16295) @@ -164,3 +164,12 @@ # Activate Right! """ + +def EventToString(event): + """ + Return the string name of a key event. Will raise a ValueError error if its invalid. + + @type event: int + @param event: key event from GameKeys or the keyboard sensor. + @rtype: string + """ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs