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

Reply via email to