BGE: python API cleanup - using PyDoc_STRVAR instead of static char*

Cherry-picking d503f8a onto 117edbb
Conflicts:
	source/gameengine/Ketsji/KX_PythonInit.cpp
This commit is contained in:
2014-06-06 07:43:23 +01:00
parent 95425bc97a
commit a7b0330c13
3 changed files with 167 additions and 97 deletions

View File

@@ -223,8 +223,11 @@ static void KX_MACRO_addTypesToDict_fn(PyObject *dict, const char *name, long va
// List of methods defined in the module
static PyObject *ErrorObject;
static const char *gPyGetRandomFloat_doc="getRandomFloat returns a random floating point value in the range [0..1]";
PyDoc_STRVAR(gPyGetRandomFloat_doc,
"getRandomFloat()\n"
"returns a random floating point value in the range [0..1]"
);
static PyObject *gPyGetRandomFloat(PyObject *)
{
return PyFloat_FromDouble(MT_random());
@@ -242,15 +245,15 @@ static PyObject *gPySetGravity(PyObject *, PyObject *value)
Py_RETURN_NONE;
}
static char gPyExpandPath_doc[] =
"(path) - Converts a blender internal path into a proper file system path.\n\
path - the string path to convert.\n\n\
Use / as directory separator in path\n\
You can use '//' at the start of the string to define a relative path;\n\
Blender replaces that string by the directory of the current .blend or runtime\n\
file to make a full path name.\n\
The function also converts the directory separator to the local file system format.";
PyDoc_STRVAR(gPyExpandPath_doc,
"expandPath(path)\n"
"Converts a blender internal path into a proper file system path.\n"
" path - the string path to convert.\n"
"Use / as directory separator in path\n"
"You can use '//' at the start of the string to define a relative path."
"Blender replaces that string by the directory of the current .blend or runtime file to make a full path name.\n"
"The function also converts the directory separator to the local file system format."
);
static PyObject *gPyExpandPath(PyObject *, PyObject *args)
{
char expanded[FILE_MAX];
@@ -264,10 +267,10 @@ static PyObject *gPyExpandPath(PyObject *, PyObject *args)
return PyC_UnicodeFromByte(expanded);
}
static char gPyStartGame_doc[] =
"startGame(blend)\n\
Loads the blend file";
PyDoc_STRVAR(gPyStartGame_doc,
"startGame(blend)\n"
"Loads the blend file"
);
static PyObject *gPyStartGame(PyObject *, PyObject *args)
{
char* blendfile;
@@ -281,10 +284,10 @@ static PyObject *gPyStartGame(PyObject *, PyObject *args)
Py_RETURN_NONE;
}
static char gPyEndGame_doc[] =
"endGame()\n\
Ends the current game";
PyDoc_STRVAR(gPyEndGame_doc,
"endGame()\n"
"Ends the current game"
);
static PyObject *gPyEndGame(PyObject *)
{
gp_KetsjiEngine->RequestExit(KX_EXIT_REQUEST_QUIT_GAME);
@@ -294,10 +297,10 @@ static PyObject *gPyEndGame(PyObject *)
Py_RETURN_NONE;
}
static char gPyRestartGame_doc[] =
"restartGame()\n\
Restarts the current game by reloading the .blend file";
PyDoc_STRVAR(gPyRestartGame_doc,
"restartGame()\n"
"Restarts the current game by reloading the .blend file"
);
static PyObject *gPyRestartGame(PyObject *)
{
gp_KetsjiEngine->RequestExit(KX_EXIT_REQUEST_RESTART_GAME);
@@ -306,10 +309,10 @@ static PyObject *gPyRestartGame(PyObject *)
Py_RETURN_NONE;
}
static char gPySaveGlobalDict_doc[] =
"saveGlobalDict()\n"
"Saves bge.logic.globalDict to a file";
PyDoc_STRVAR(gPySaveGlobalDict_doc,
"saveGlobalDict()\n"
"Saves bge.logic.globalDict to a file"
);
static PyObject *gPySaveGlobalDict(PyObject *)
{
char marshal_path[512];
@@ -343,10 +346,10 @@ static PyObject *gPySaveGlobalDict(PyObject *)
Py_RETURN_NONE;
}
static char gPyLoadGlobalDict_doc[] =
"LoadGlobalDict()\n"
"Loads bge.logic.globalDict from a file";
PyDoc_STRVAR(gPyLoadGlobalDict_doc,
"LoadGlobalDict()\n"
"Loads bge.logic.globalDict from a file"
);
static PyObject *gPyLoadGlobalDict(PyObject *)
{
char marshal_path[512];
@@ -384,23 +387,23 @@ static PyObject *gPyLoadGlobalDict(PyObject *)
Py_RETURN_NONE;
}
static char gPyGetProfileInfo_doc[] =
PyDoc_STRVAR(gPyGetProfileInfo_doc,
"getProfileInfo()\n"
"returns a dictionary with profiling information";
"returns a dictionary with profiling information"
);
static PyObject *gPyGetProfileInfo(PyObject *)
{
return gp_KetsjiEngine->GetPyProfileDict();
}
static char gPySendMessage_doc[] =
"sendMessage(subject, [body, to, from])\n\
sends a message in same manner as a message actuator\
subject = Subject of the message\
body = Message body\
to = Name of object to send the message to\
from = Name of object to send the string from";
PyDoc_STRVAR(gPySendMessage_doc,
"sendMessage(subject, [body, to, from])\n"
"sends a message in same manner as a message actuator"
" subject = Subject of the message"
" body = Message body"
" to = Name of object to send the message to"
" from = Name of object to send the string from"
);
static PyObject *gPySendMessage(PyObject *, PyObject *args)
{
char* subject;
@@ -560,11 +563,12 @@ static PyObject *gPyGetBlendFileList(PyObject *, PyObject *args)
return list;
}
static char gPyAddScene_doc[] =
"addScene(name, [overlay])\n\
adds a scene to the game engine\n\
name = Name of the scene\n\
overlay = Overlay or underlay";
PyDoc_STRVAR(gPyAddScene_doc,
"addScene(name, [overlay])\n"
"Adds a scene to the game engine.\n"
" name = Name of the scene\n"
" overlay = Overlay or underlay"
);
static PyObject *gPyAddScene(PyObject *, PyObject *args)
{
char* name;
@@ -578,17 +582,19 @@ static PyObject *gPyAddScene(PyObject *, PyObject *args)
Py_RETURN_NONE;
}
static const char *gPyGetCurrentScene_doc =
PyDoc_STRVAR(gPyGetCurrentScene_doc,
"getCurrentScene()\n"
"Gets a reference to the current scene.\n";
"Gets a reference to the current scene."
);
static PyObject *gPyGetCurrentScene(PyObject *self)
{
return gp_KetsjiScene->GetProxy();
}
static const char *gPyGetSceneList_doc =
PyDoc_STRVAR(gPyGetSceneList_doc,
"getSceneList()\n"
"Return a list of converted scenes.\n";
"Return a list of converted scenes."
);
static PyObject *gPyGetSceneList(PyObject *self)
{
KX_KetsjiEngine* m_engine = KX_GetActiveEngine();
@@ -1484,6 +1490,9 @@ static PyObject *gPyClearDebugList(PyObject *)
Py_RETURN_NONE;
}
PyDoc_STRVAR(Rasterizer_module_documentation,
"This is the Python API for the game engine of Rasterizer"
);
static struct PyMethodDef rasterizer_methods[] = {
{"getWindowWidth",(PyCFunction) gPyGetWindowWidth,
@@ -1541,15 +1550,11 @@ static struct PyMethodDef rasterizer_methods[] = {
{ NULL, (PyCFunction) NULL, 0, NULL }
};
// Initialization function for the module (*must* be called initGameLogic)
static char GameLogic_module_documentation[] =
PyDoc_STRVAR(GameLogic_module_documentation,
"This is the Python API for the game engine of bge.logic"
;
static char Rasterizer_module_documentation[] =
"This is the Python API for the game engine of Rasterizer"
;
);
static struct PyModuleDef GameLogic_module_def = {
{}, /* m_base */
@@ -1568,12 +1573,12 @@ PyObject *initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack
PyObject *m;
PyObject *d;
PyObject *item; /* temp PyObject *storage */
gp_KetsjiEngine = engine;
gp_KetsjiScene = scene;
gUseVisibilityTemp=false;
PyObjectPlus::ClearDeprecationWarning(); /* Not that nice to call here but makes sure warnings are reset between loading scenes */
/* Use existing module where possible
@@ -2104,7 +2109,7 @@ PyObject *initGamePlayerPythonScripting(Main *maggie, int argc, char** argv)
* parse from the 'sysconfig' module which is used by 'site',
* so for now disable site. alternatively we could copy the file. */
if (py_path_bundle != NULL) {
Py_NoSiteFlag = 1;
Py_NoSiteFlag = 1; /* inhibits the automatic importing of 'site' */
}
#endif
@@ -2303,6 +2308,7 @@ PyObject *initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas)
{
gp_Canvas = canvas;
gp_Rasterizer = rasty;
PyObject *m;
PyObject *d;
@@ -2361,13 +2367,14 @@ PyObject *initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas)
/* GameKeys: symbolic constants for key mapping */
/* ------------------------------------------------------------------------- */
static char GameKeys_module_documentation[] =
PyDoc_STRVAR(GameKeys_module_documentation,
"This modules provides defines for key-codes"
;
);
static char gPyEventToString_doc[] =
"EventToString(event) - Take a valid event from the GameKeys module or Keyboard Sensor and return a name"
;
PyDoc_STRVAR(gPyEventToString_doc,
"EventToString(event)\n"
"Take a valid event from the GameKeys module or Keyboard Sensor and return a name"
);
static PyObject *gPyEventToString(PyObject *, PyObject *value)
{
@@ -2395,9 +2402,11 @@ static PyObject *gPyEventToString(PyObject *, PyObject *value)
return ret;
}
static char gPyEventToCharacter_doc[] =
"EventToCharacter(event, is_shift) - Take a valid event from the GameKeys module or Keyboard Sensor and return a character"
;
PyDoc_STRVAR(gPyEventToCharacter_doc,
"EventToCharacter(event, is_shift)\n"
"Take a valid event from the GameKeys module or Keyboard Sensor and return a character"
);
static PyObject *gPyEventToCharacter(PyObject *, PyObject *args)
{
@@ -2438,7 +2447,7 @@ PyObject *initGameKeys()
{
PyObject *m;
PyObject *d;
/* Use existing module where possible */
m = PyImport_ImportModule( "GameKeys" );
if (m) {
@@ -2447,7 +2456,7 @@ PyObject *initGameKeys()
}
else {
PyErr_Clear();
// Create the module and add the functions
m = PyModule_Create(&GameKeys_module_def);
PyDict_SetItemString(PySys_GetObject("modules"), GameKeys_module_def.m_name, m);