BGE Py API

print filename:line with ShowDeprecationWarning().
Typo in scripttemplate_gamelogic.py
removed 2 unneeded typedefs
This commit is contained in:
2009-02-22 10:22:49 +00:00
parent 9d5c2af1d1
commit 570b48aae6
4 changed files with 42 additions and 4 deletions

View File

@@ -32,7 +32,7 @@
#include "SND_AudioDevice.h" #include "SND_AudioDevice.h"
#include "SoundDefines.h" #include "SoundDefines.h"
typedef struct SDL_CD; struct SDL_CD;
class SND_OpenALDevice : public SND_AudioDevice class SND_OpenALDevice : public SND_AudioDevice
{ {

View File

@@ -29,7 +29,7 @@
#ifndef SND_SDLCDDEVICE #ifndef SND_SDLCDDEVICE
#define SND_SDLCDDEVICE #define SND_SDLCDDEVICE
typedef struct SDL_CD; struct SDL_CD;
class SND_SDLCDDevice class SND_SDLCDDevice
{ {

View File

@@ -11,6 +11,9 @@ import bpy
script_data = \ script_data = \
''' '''
# This script must be assigned to a python controller
# where it can access the object that owns it and the sensors/actuators that it connects to.
# GameLogic has been added to the global namespace no need to import # GameLogic has been added to the global namespace no need to import
# for keyboard event comparison # for keyboard event comparison
@@ -50,7 +53,7 @@ def main():
for actu in cont.getActuators(): for actu in cont.getActuators():
# The actuator can be on another object, we may want to use it # The actuator can be on another object, we may want to use it
own_actu = actu.getOwner() own_actu = actu.getOwner()
print ' actuator:', sens.getName() print ' actuator:', actu.getName()
# This runs the actuator or turns it off # This runs the actuator or turns it off
# note that actuators will continue to run unless explicitly turned off. # note that actuators will continue to run unless explicitly turned off.

View File

@@ -859,7 +859,42 @@ void CValue::SetDeprecationWarnings(bool ignoreDeprecationWarnings)
void CValue::ShowDeprecationWarning(const char* old_way,const char* new_way) void CValue::ShowDeprecationWarning(const char* old_way,const char* new_way)
{ {
if (!m_ignore_deprecation_warnings) if (!m_ignore_deprecation_warnings) {
printf("Method %s is deprecated, please use %s instead.\n", old_way, new_way); printf("Method %s is deprecated, please use %s instead.\n", old_way, new_way);
// import sys; print '\t%s:%d' % (sys._getframe(0).f_code.co_filename, sys._getframe(0).f_lineno)
PyObject *getframe, *frame;
PyObject *f_lineno, *f_code, *co_filename;
getframe = PySys_GetObject("_getframe"); // borrowed
if (getframe) {
frame = PyObject_CallObject(getframe, NULL);
if (frame) {
f_lineno= PyObject_GetAttrString(frame, "f_lineno");
f_code= PyObject_GetAttrString(frame, "f_code");
if (f_lineno && f_code) {
co_filename= PyObject_GetAttrString(f_code, "co_filename");
if (co_filename) {
printf("\t%s:%d\n", PyString_AsString(co_filename), (int)PyInt_AsLong(f_lineno));
Py_DECREF(f_lineno);
Py_DECREF(f_code);
Py_DECREF(co_filename);
Py_DECREF(frame);
return;
}
}
Py_XDECREF(f_lineno);
Py_XDECREF(f_code);
Py_DECREF(frame);
}
}
PyErr_Clear();
printf("\tERROR - Could not access sys._getframe(0).f_lineno or sys._getframe().f_code.co_filename\n");
}
} }