BGE Py API
print filename:line with ShowDeprecationWarning(). Typo in scripttemplate_gamelogic.py removed 2 unneeded typedefs
This commit is contained in:
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user