diff options
Diffstat (limited to 'source/gameengine/Ketsji/KX_PythonInit.cpp')
-rw-r--r-- | source/gameengine/Ketsji/KX_PythonInit.cpp | 210 |
1 files changed, 105 insertions, 105 deletions
diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index 8870224da83..35adbc2d720 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -117,7 +117,7 @@ extern "C" { #include "EXP_PyObjectPlus.h" -#include "KX_PythonInitTypes.h" +#include "KX_PythonInitTypes.h" /* we only need this to get a list of libraries from the main struct */ #include "DNA_ID.h" @@ -240,7 +240,7 @@ static PyObject *gPySetGravity(PyObject *, PyObject *value) if (gp_KetsjiScene) gp_KetsjiScene->SetGravity(vec); - + Py_RETURN_NONE; } @@ -257,7 +257,7 @@ static PyObject *gPyExpandPath(PyObject *, PyObject *args) { char expanded[FILE_MAX]; char* filename; - + if (!PyArg_ParseTuple(args,"s:ExpandPath",&filename)) return NULL; @@ -441,7 +441,7 @@ static PyObject *gPySetLogicTicRate(PyObject *, PyObject *args) float ticrate; if (!PyArg_ParseTuple(args, "f:setLogicTicRate", &ticrate)) return NULL; - + KX_KetsjiEngine::SetTicRate(ticrate); Py_RETURN_NONE; } @@ -485,7 +485,7 @@ static PyObject *gPySetMaxLogicFrame(PyObject *, PyObject *args) int frame; if (!PyArg_ParseTuple(args, "i:setMaxLogicFrame", &frame)) return NULL; - + KX_KetsjiEngine::SetMaxLogicFrame(frame); Py_RETURN_NONE; } @@ -500,7 +500,7 @@ static PyObject *gPySetMaxPhysicsFrame(PyObject *, PyObject *args) int frame; if (!PyArg_ParseTuple(args, "i:setMaxPhysicsFrame", &frame)) return NULL; - + KX_KetsjiEngine::SetMaxPhysicsFrame(frame); Py_RETURN_NONE; } @@ -515,7 +515,7 @@ static PyObject *gPySetPhysicsTicRate(PyObject *, PyObject *args) float ticrate; if (!PyArg_ParseTuple(args, "f:setPhysicsTicRate", &ticrate)) return NULL; - + PHY_GetActiveEnvironment()->SetFixedTimeStep(true,ticrate); Py_RETURN_NONE; } @@ -525,7 +525,7 @@ static PyObject *gPySetPhysicsDebug(PyObject *, PyObject *args) int debugMode; if (!PyArg_ParseTuple(args, "i:setPhysicsDebug", &debugMode)) return NULL; - + PHY_GetActiveEnvironment()->setDebugMode(debugMode); Py_RETURN_NONE; } @@ -634,7 +634,7 @@ static PyObject *gPyGetBlendFileList(PyObject *, PyObject *args) return NULL; list = PyList_New(0); - + if (searchpath) { BLI_strncpy(cpath, searchpath, FILE_MAX); BLI_path_abs(cpath, gp_GamePythonPath); @@ -648,7 +648,7 @@ static PyObject *gPyGetBlendFileList(PyObject *, PyObject *args) fprintf(stderr, "Could not read directory (%s) failed, code %d (%s)\n", cpath, errno, strerror(errno)); return list; } - + while ((dirp = readdir(dp)) != NULL) { if (BLI_path_extension_check(dirp->d_name, ".blend")) { value = PyC_UnicodeFromByte(dirp->d_name); @@ -656,7 +656,7 @@ static PyObject *gPyGetBlendFileList(PyObject *, PyObject *args) Py_DECREF(value); } } - + closedir(dp); return list; } @@ -671,10 +671,10 @@ static PyObject *gPyAddScene(PyObject *, PyObject *args) { char* name; int overlay = 1; - + if (!PyArg_ParseTuple(args, "s|i:addScene", &name , &overlay)) return NULL; - + gp_KetsjiEngine->ConvertAndAddScene(name, (overlay != 0)); Py_RETURN_NONE; @@ -700,9 +700,9 @@ static PyObject *gPyGetSceneList(PyObject *self) KX_SceneList* scenes = m_engine->CurrentScenes(); int numScenes = scenes->size(); int i; - + list = PyList_New(numScenes); - + for (i=0;i<numScenes;i++) { KX_Scene* scene = scenes->at(i); @@ -742,7 +742,7 @@ static PyObject *gLibLoad(PyObject *, PyObject *args, PyObject *kwds) int load_actions=0, verbose=0, load_scripts=1, async=0; static const char *kwlist[] = {"path", "group", "buffer", "load_actions", "verbose", "load_scripts", "async", NULL}; - + if (!PyArg_ParseTupleAndKeywords(args, kwds, "ss|y*iiIi:LibLoad", const_cast<char**>(kwlist), &path, &group, &py_buffer, &load_actions, &verbose, &load_scripts, &async)) return NULL; @@ -778,12 +778,12 @@ static PyObject *gLibLoad(PyObject *, PyObject *args, PyObject *kwds) PyBuffer_Release(&py_buffer); } - + if (err_str) { PyErr_SetString(PyExc_ValueError, err_str); return NULL; } - + Py_RETURN_FALSE; } @@ -798,23 +798,23 @@ static PyObject *gLibNew(PyObject *, PyObject *args) if (!PyArg_ParseTuple(args,"ssO!:LibNew",&path, &group, &PyList_Type, &names)) return NULL; - + if (kx_scene->GetSceneConverter()->GetMainDynamicPath(path)) { PyErr_SetString(PyExc_KeyError, "the name of the path given exists"); return NULL; } - + idcode= BKE_idcode_from_name(group); if (idcode==0) { PyErr_Format(PyExc_ValueError, "invalid group given \"%s\"", group); return NULL; } - + Main *maggie=BKE_main_new(); kx_scene->GetSceneConverter()->GetMainDynamic().push_back(maggie); strncpy(maggie->name, path, sizeof(maggie->name)-1); - + /* Copy the object into main */ if (idcode==ID_ME) { PyObject *ret= PyList_New(0); @@ -834,14 +834,14 @@ static PyObject *gLibNew(PyObject *, PyObject *args) PyErr_Clear(); /* wasnt a string, ignore for now */ } } - + return ret; } else { PyErr_Format(PyExc_ValueError, "only \"Mesh\" group currently supported"); return NULL; } - + Py_RETURN_NONE; } @@ -867,12 +867,12 @@ static PyObject *gLibList(PyObject *, PyObject *args) vector<Main*> &dynMaggie = gp_KetsjiScene->GetSceneConverter()->GetMainDynamic(); int i= 0; PyObject *list= PyList_New(dynMaggie.size()); - + for (vector<Main*>::iterator it=dynMaggie.begin(); !(it==dynMaggie.end()); it++) { PyList_SET_ITEM(list, i++, PyUnicode_FromString( (*it)->name) ); } - + return list; } @@ -883,7 +883,7 @@ static PyObject *gPyNextFrame(PyObject *) if (pynextframestate.state == NULL) Py_RETURN_NONE; //should never happen; raise exception instead? if (pynextframestate.func(pynextframestate.state)) //nonzero = stop - { + { Py_RETURN_TRUE; } else // 0 = go on @@ -945,7 +945,7 @@ static struct PyMethodDef game_methods[] = { {"LibNew", (PyCFunction)gLibNew, METH_VARARGS, (const char *)""}, {"LibFree", (PyCFunction)gLibFree, METH_VARARGS, (const char *)""}, {"LibList", (PyCFunction)gLibList, METH_VARARGS, (const char *)""}, - + {NULL, (PyCFunction) NULL, 0, NULL } }; @@ -971,7 +971,7 @@ static PyObject *gPyEnableVisibility(PyObject *, PyObject *args) int visible; if (!PyArg_ParseTuple(args,"i:enableVisibility",&visible)) return NULL; - + gUseVisibilityTemp = (visible != 0); Py_RETURN_NONE; } @@ -983,7 +983,7 @@ static PyObject *gPyShowMouse(PyObject *, PyObject *args) int visible; if (!PyArg_ParseTuple(args,"i:showMouse",&visible)) return NULL; - + if (visible) { if (gp_Canvas) @@ -993,7 +993,7 @@ static PyObject *gPyShowMouse(PyObject *, PyObject *args) if (gp_Canvas) gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE); } - + Py_RETURN_NONE; } @@ -1004,10 +1004,10 @@ static PyObject *gPySetMousePosition(PyObject *, PyObject *args) int x,y; if (!PyArg_ParseTuple(args,"ii:setMousePosition",&x,&y)) return NULL; - + if (gp_Canvas) gp_Canvas->SetMousePosition(x,y); - + Py_RETURN_NONE; } @@ -1021,9 +1021,9 @@ static PyObject *gPySetEyeSeparation(PyObject *, PyObject *args) PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setEyeSeparation(float), Rasterizer not available"); return NULL; } - + gp_Rasterizer->SetEyeSeparation(sep); - + Py_RETURN_NONE; } @@ -1033,7 +1033,7 @@ static PyObject *gPyGetEyeSeparation(PyObject *) PyErr_SetString(PyExc_RuntimeError, "Rasterizer.getEyeSeparation(), Rasterizer not available"); return NULL; } - + return PyFloat_FromDouble(gp_Rasterizer->GetEyeSeparation()); } @@ -1042,14 +1042,14 @@ static PyObject *gPySetFocalLength(PyObject *, PyObject *args) float focus; if (!PyArg_ParseTuple(args, "f:setFocalLength", &focus)) return NULL; - + if (!gp_Rasterizer) { PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setFocalLength(float), Rasterizer not available"); return NULL; } gp_Rasterizer->SetFocalLength(focus); - + Py_RETURN_NONE; } @@ -1059,9 +1059,9 @@ static PyObject *gPyGetFocalLength(PyObject *, PyObject *, PyObject *) PyErr_SetString(PyExc_RuntimeError, "Rasterizer.getFocalLength(), Rasterizer not available"); return NULL; } - + return PyFloat_FromDouble(gp_Rasterizer->GetFocalLength()); - + Py_RETURN_NONE; } @@ -1103,12 +1103,12 @@ static PyObject *gPyMakeScreenshot(PyObject *, PyObject *args) char* filename; if (!PyArg_ParseTuple(args,"s:makeScreenshot",&filename)) return NULL; - + if (gp_Canvas) { gp_Canvas->MakeScreenShot(filename); } - + Py_RETURN_NONE; } @@ -1117,14 +1117,14 @@ static PyObject *gPyEnableMotionBlur(PyObject *, PyObject *args) float motionblurvalue; if (!PyArg_ParseTuple(args,"f:enableMotionBlur",&motionblurvalue)) return NULL; - + if (!gp_Rasterizer) { PyErr_SetString(PyExc_RuntimeError, "Rasterizer.enableMotionBlur(float), Rasterizer not available"); return NULL; } - + gp_Rasterizer->EnableMotionBlur(motionblurvalue); - + Py_RETURN_NONE; } @@ -1134,9 +1134,9 @@ static PyObject *gPyDisableMotionBlur(PyObject *) PyErr_SetString(PyExc_RuntimeError, "Rasterizer.disableMotionBlur(), Rasterizer not available"); return NULL; } - + gp_Rasterizer->DisableMotionBlur(); - + Py_RETURN_NONE; } @@ -1168,16 +1168,16 @@ static PyObject *gPySetGLSLMaterialSetting(PyObject *, if (!PyArg_ParseTuple(args,"si:setGLSLMaterialSetting",&setting,&enable)) return NULL; - + flag = getGLSLSettingFlag(setting); - + if (flag == -1) { PyErr_SetString(PyExc_ValueError, "Rasterizer.setGLSLMaterialSetting(string): glsl setting is not known"); return NULL; } sceneflag= gs->glslflag; - + if (enable) gs->glslflag &= ~flag; else @@ -1214,9 +1214,9 @@ static PyObject *gPyGetGLSLMaterialSetting(PyObject *, if (!PyArg_ParseTuple(args,"s:getGLSLMaterialSetting",&setting)) return NULL; - + flag = getGLSLSettingFlag(setting); - + if (flag == -1) { PyErr_SetString(PyExc_ValueError, "Rasterizer.getGLSLMaterialSetting(string): glsl setting is not known"); return NULL; @@ -1260,7 +1260,7 @@ static PyObject *gPyGetMaterialType(PyObject *) flag = KX_BLENDER_GLSL_MATERIAL; else flag = KX_BLENDER_MULTITEX_MATERIAL; - + return PyLong_FromLong(flag); } @@ -1311,7 +1311,7 @@ static PyObject *gPyDrawLine(PyObject *, PyObject *args) return NULL; gp_Rasterizer->DrawDebugLine(gp_KetsjiScene, from, to, color); - + Py_RETURN_NONE; } @@ -1714,10 +1714,10 @@ PyMODINIT_FUNC initGameLogicPythonBinding() // Add some symbolic constants to the module d = PyModule_GetDict(m); - + // can be overwritten later for gameEngine instances that can load new blend files and re-initialize this module // for now its safe to make sure it exists for other areas such as the web plugin - + PyDict_SetItemString(d, "globalDict", item=PyDict_New()); Py_DECREF(item); // Add keyboard and mouse attributes to this module @@ -1753,7 +1753,7 @@ PyMODINIT_FUNC initGameLogicPythonBinding() ErrorObject = PyUnicode_FromString("GameLogic.error"); PyDict_SetItemString(d, "error", ErrorObject); Py_DECREF(ErrorObject); - + // XXXX Add constants here /* To use logic bricks, we need some sort of constants. Here, we associate */ /* constants and sumbolic names. Add them to dictionary d. */ @@ -1827,7 +1827,7 @@ PyMODINIT_FUNC initGameLogicPythonBinding() KX_MACRO_addTypesToDict(d, KX_ACTIONACT_LOOPSTOP, ACT_ACTION_LOOP_STOP); KX_MACRO_addTypesToDict(d, KX_ACTIONACT_LOOPEND, ACT_ACTION_LOOP_END); KX_MACRO_addTypesToDict(d, KX_ACTIONACT_PROPERTY, ACT_ACTION_FROM_PROP); - + /* 7. GL_BlendFunc */ KX_MACRO_addTypesToDict(d, BL_ZERO, GL_ZERO); KX_MACRO_addTypesToDict(d, BL_ONE, GL_ONE); @@ -1890,13 +1890,13 @@ PyMODINIT_FUNC initGameLogicPythonBinding() KX_MACRO_addTypesToDict(d, KX_STATE28, (1<<27)); KX_MACRO_addTypesToDict(d, KX_STATE29, (1<<28)); KX_MACRO_addTypesToDict(d, KX_STATE30, (1<<29)); - + /* All Sensors */ KX_MACRO_addTypesToDict(d, KX_SENSOR_JUST_ACTIVATED, SCA_ISensor::KX_SENSOR_JUST_ACTIVATED); KX_MACRO_addTypesToDict(d, KX_SENSOR_ACTIVE, SCA_ISensor::KX_SENSOR_ACTIVE); KX_MACRO_addTypesToDict(d, KX_SENSOR_JUST_DEACTIVATED, SCA_ISensor::KX_SENSOR_JUST_DEACTIVATED); KX_MACRO_addTypesToDict(d, KX_SENSOR_INACTIVE, SCA_ISensor::KX_SENSOR_INACTIVE); - + /* Radar Sensor */ KX_MACRO_addTypesToDict(d, KX_RADAR_AXIS_POS_X, KX_RadarSensor::KX_RADAR_AXIS_POS_X); KX_MACRO_addTypesToDict(d, KX_RADAR_AXIS_POS_Y, KX_RadarSensor::KX_RADAR_AXIS_POS_Y); @@ -1936,7 +1936,7 @@ PyMODINIT_FUNC initGameLogicPythonBinding() KX_MACRO_addTypesToDict(d, KX_INPUT_JUST_ACTIVATED, SCA_InputEvent::KX_JUSTACTIVATED); KX_MACRO_addTypesToDict(d, KX_INPUT_ACTIVE, SCA_InputEvent::KX_ACTIVE); KX_MACRO_addTypesToDict(d, KX_INPUT_JUST_RELEASED, SCA_InputEvent::KX_JUSTRELEASED); - + KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_LEFT, SCA_IInputDevice::KX_LEFTMOUSE); KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_MIDDLE, SCA_IInputDevice::KX_MIDDLEMOUSE); KX_MACRO_addTypesToDict(d, KX_MOUSE_BUT_RIGHT, SCA_IInputDevice::KX_RIGHTMOUSE); @@ -2079,16 +2079,16 @@ PyMODINIT_FUNC initGameLogicPythonBinding() /** * Explanation of - * + * * - backupPySysObjects() : stores sys.path in #gp_sys_backup * - initPySysObjects(main) : initializes the blendfile and library paths * - restorePySysObjects() : restores sys.path from #gp_sys_backup - * + * * These exist so the current blend dir "//" can always be used to import modules from. * the reason we need a few functions for this is that python is not only used by the game engine * so we cant just add to sys.path all the time, it would leave pythons state in a mess. * It would also be incorrect since loading blend files for new levels etc would always add to sys.path - * + * * To play nice with blenders python, the sys.path is backed up and the current blendfile along * with all its lib paths are added to the sys path. * When loading a new blendfile, the original sys.path is restored and the new paths are added over the top. @@ -2102,11 +2102,11 @@ static void backupPySysObjects(void) PyObject *sys_path = PySys_GetObject("path"); PyObject *sys_meta_path = PySys_GetObject("meta_path"); PyObject *sys_mods = PySys_GetObject("modules"); - + /* paths */ Py_XDECREF(gp_sys_backup.path); /* just in case its set */ gp_sys_backup.path = PyList_GetSlice(sys_path, 0, INT_MAX); /* copy the list */ - + /* meta_paths */ Py_XDECREF(gp_sys_backup.meta_path); /* just in case its set */ gp_sys_backup.meta_path = PyList_GetSlice(sys_meta_path, 0, INT_MAX); /* copy the list */ @@ -2114,7 +2114,7 @@ static void backupPySysObjects(void) /* modules */ Py_XDECREF(gp_sys_backup.modules); /* just in case its set */ gp_sys_backup.modules = PyDict_Copy(sys_mods); /* copy the dict */ - + } /* for initPySysObjects only, @@ -2126,26 +2126,26 @@ static void initPySysObjects__append(PyObject *sys_path, const char *filename) { PyObject *item; char expanded[FILE_MAX]; - + BLI_split_dir_part(filename, expanded, sizeof(expanded)); /* get the dir part of filename only */ BLI_path_abs(expanded, gp_GamePythonPath); /* filename from lib->filename is (always?) absolute, so this may not be needed but it wont hurt */ BLI_cleanup_file(gp_GamePythonPath, expanded); /* Don't use BLI_cleanup_dir because it adds a slash - BREAKS WIN32 ONLY */ item = PyC_UnicodeFromByte(expanded); - + // printf("SysPath - '%s', '%s', '%s'\n", expanded, filename, gp_GamePythonPath); - + if (PySequence_Index(sys_path, item) == -1) { PyErr_Clear(); /* PySequence_Index sets a ValueError */ PyList_Insert(sys_path, 0, item); } - + Py_DECREF(item); } static void initPySysObjects(Main *maggie) { PyObject *sys_path = PySys_GetObject("path"); PyObject *sys_meta_path = PySys_GetObject("meta_path"); - + if (gp_sys_backup.path == NULL) { /* backup */ backupPySysObjects(); @@ -2155,18 +2155,18 @@ static void initPySysObjects(Main *maggie) PyList_SetSlice(sys_path, 0, INT_MAX, gp_sys_backup.path); PyList_SetSlice(sys_meta_path, 0, INT_MAX, gp_sys_backup.meta_path); } - + Library *lib= (Library *)maggie->library.first; - + while (lib) { /* lib->name wont work in some cases (on win32), * even when expanding with gp_GamePythonPath, using lib->filename is less trouble */ initPySysObjects__append(sys_path, lib->filepath); lib= (Library *)lib->id.next; } - + initPySysObjects__append(sys_path, gp_GamePythonPath); - + // fprintf(stderr, "\nNew Path: %d ", PyList_GET_SIZE(sys_path)); // PyObject_Print(sys_path, stderr, 0); } @@ -2191,14 +2191,14 @@ static void restorePySysObjects(void) PyList_SetSlice(sys_meta_path, 0, INT_MAX, gp_sys_backup.meta_path); Py_DECREF(gp_sys_backup.meta_path); gp_sys_backup.meta_path = NULL; - + /* modules */ PyDict_Clear(sys_mods); PyDict_Update(sys_mods, gp_sys_backup.modules); Py_DECREF(gp_sys_backup.modules); gp_sys_backup.modules = NULL; - - + + // fprintf(stderr, "\nRestore Path: %d ", PyList_GET_SIZE(sys_path)); // PyObject_Print(sys_path, stderr, 0); } @@ -2331,7 +2331,7 @@ PyObject *initGamePlayerPythonScripting(Main *maggie, int argc, char** argv) PyC_SetHomePath(py_path_bundle); Py_Initialize(); - + if (argv && first_time) { /* browser plugins don't currently set this */ // Until python support ascii again, we use our own. // PySys_SetArgv(argc, argv); @@ -2371,7 +2371,7 @@ PyObject *initGamePlayerPythonScripting(Main *maggie, int argc, char** argv) PyDict_SetItemString(PyImport_GetModuleDict(), "bge", initBGE()); first_time = false; - + PyObjectPlus::ClearDeprecationWarning(); return PyC_DefaultNameSpace(NULL); @@ -2395,7 +2395,7 @@ void exitGamePlayerPythonScripting() /* since python restarts we cant let the python backup of the sys.path hang around in a global pointer */ restorePySysObjects(); /* get back the original sys.path and clear the backup */ - + Py_Finalize(); bpy_import_main_set(NULL); PyObjectPlus::ClearDeprecationWarning(); @@ -2560,25 +2560,25 @@ static PyObject *gPyEventToString(PyObject *, PyObject *value) { PyObject *mod, *dict, *key, *val, *ret = NULL; Py_ssize_t pos = 0; - + mod = PyImport_ImportModule( "GameKeys" ); if (!mod) return NULL; - + dict = PyModule_GetDict(mod); - + while (PyDict_Next(dict, &pos, &key, &val)) { if (PyObject_RichCompareBool(value, val, Py_EQ)) { ret = key; break; } } - + PyErr_Clear(); // in case there was an error clearing Py_DECREF(mod); if (!ret) PyErr_SetString(PyExc_ValueError, "GameKeys.EventToString(int): expected a valid int keyboard event"); else Py_INCREF(ret); - + return ret; } @@ -2593,7 +2593,7 @@ static PyObject *gPyEventToCharacter(PyObject *, PyObject *args) int event, shift; if (!PyArg_ParseTuple(args,"ii:EventToCharacter", &event, &shift)) return NULL; - + if (IsPrintable(event)) { char ch[2] = {'\0', '\0'}; ch[0] = ToCharacter(event, (bool)shift); @@ -2662,7 +2662,7 @@ PyMODINIT_FUNC initGameKeysPythonBinding() KX_MACRO_addTypesToDict(d, XKEY, SCA_IInputDevice::KX_XKEY); KX_MACRO_addTypesToDict(d, YKEY, SCA_IInputDevice::KX_YKEY); KX_MACRO_addTypesToDict(d, ZKEY, SCA_IInputDevice::KX_ZKEY); - + KX_MACRO_addTypesToDict(d, ZEROKEY, SCA_IInputDevice::KX_ZEROKEY); KX_MACRO_addTypesToDict(d, ONEKEY, SCA_IInputDevice::KX_ONEKEY); KX_MACRO_addTypesToDict(d, TWOKEY, SCA_IInputDevice::KX_TWOKEY); @@ -2673,16 +2673,16 @@ PyMODINIT_FUNC initGameKeysPythonBinding() KX_MACRO_addTypesToDict(d, SEVENKEY, SCA_IInputDevice::KX_SEVENKEY); KX_MACRO_addTypesToDict(d, EIGHTKEY, SCA_IInputDevice::KX_EIGHTKEY); KX_MACRO_addTypesToDict(d, NINEKEY, SCA_IInputDevice::KX_NINEKEY); - + KX_MACRO_addTypesToDict(d, CAPSLOCKKEY, SCA_IInputDevice::KX_CAPSLOCKKEY); - + KX_MACRO_addTypesToDict(d, LEFTCTRLKEY, SCA_IInputDevice::KX_LEFTCTRLKEY); KX_MACRO_addTypesToDict(d, LEFTALTKEY, SCA_IInputDevice::KX_LEFTALTKEY); KX_MACRO_addTypesToDict(d, RIGHTALTKEY, SCA_IInputDevice::KX_RIGHTALTKEY); KX_MACRO_addTypesToDict(d, RIGHTCTRLKEY, SCA_IInputDevice::KX_RIGHTCTRLKEY); KX_MACRO_addTypesToDict(d, RIGHTSHIFTKEY, SCA_IInputDevice::KX_RIGHTSHIFTKEY); KX_MACRO_addTypesToDict(d, LEFTSHIFTKEY, SCA_IInputDevice::KX_LEFTSHIFTKEY); - + KX_MACRO_addTypesToDict(d, ESCKEY, SCA_IInputDevice::KX_ESCKEY); KX_MACRO_addTypesToDict(d, TABKEY, SCA_IInputDevice::KX_TABKEY); KX_MACRO_addTypesToDict(d, RETKEY, SCA_IInputDevice::KX_RETKEY); @@ -2702,34 +2702,34 @@ PyMODINIT_FUNC initGameKeysPythonBinding() KX_MACRO_addTypesToDict(d, EQUALKEY, SCA_IInputDevice::KX_EQUALKEY); KX_MACRO_addTypesToDict(d, LEFTBRACKETKEY, SCA_IInputDevice::KX_LEFTBRACKETKEY); KX_MACRO_addTypesToDict(d, RIGHTBRACKETKEY, SCA_IInputDevice::KX_RIGHTBRACKETKEY); - + KX_MACRO_addTypesToDict(d, LEFTARROWKEY, SCA_IInputDevice::KX_LEFTARROWKEY); KX_MACRO_addTypesToDict(d, DOWNARROWKEY, SCA_IInputDevice::KX_DOWNARROWKEY); KX_MACRO_addTypesToDict(d, RIGHTARROWKEY, SCA_IInputDevice::KX_RIGHTARROWKEY); KX_MACRO_addTypesToDict(d, UPARROWKEY, SCA_IInputDevice::KX_UPARROWKEY); - + KX_MACRO_addTypesToDict(d, PAD2 , SCA_IInputDevice::KX_PAD2); KX_MACRO_addTypesToDict(d, PAD4 , SCA_IInputDevice::KX_PAD4); KX_MACRO_addTypesToDict(d, PAD6 , SCA_IInputDevice::KX_PAD6); KX_MACRO_addTypesToDict(d, PAD8 , SCA_IInputDevice::KX_PAD8); - + KX_MACRO_addTypesToDict(d, PAD1 , SCA_IInputDevice::KX_PAD1); KX_MACRO_addTypesToDict(d, PAD3 , SCA_IInputDevice::KX_PAD3); KX_MACRO_addTypesToDict(d, PAD5 , SCA_IInputDevice::KX_PAD5); KX_MACRO_addTypesToDict(d, PAD7 , SCA_IInputDevice::KX_PAD7); KX_MACRO_addTypesToDict(d, PAD9 , SCA_IInputDevice::KX_PAD9); - + KX_MACRO_addTypesToDict(d, PADPERIOD, SCA_IInputDevice::KX_PADPERIOD); KX_MACRO_addTypesToDict(d, PADSLASHKEY, SCA_IInputDevice::KX_PADSLASHKEY); KX_MACRO_addTypesToDict(d, PADASTERKEY, SCA_IInputDevice::KX_PADASTERKEY); - - + + KX_MACRO_addTypesToDict(d, PAD0, SCA_IInputDevice::KX_PAD0); KX_MACRO_addTypesToDict(d, PADMINUS, SCA_IInputDevice::KX_PADMINUS); KX_MACRO_addTypesToDict(d, PADENTER, SCA_IInputDevice::KX_PADENTER); KX_MACRO_addTypesToDict(d, PADPLUSKEY, SCA_IInputDevice::KX_PADPLUSKEY); - - + + KX_MACRO_addTypesToDict(d, F1KEY, SCA_IInputDevice::KX_F1KEY); KX_MACRO_addTypesToDict(d, F2KEY, SCA_IInputDevice::KX_F2KEY); KX_MACRO_addTypesToDict(d, F3KEY, SCA_IInputDevice::KX_F3KEY); @@ -2751,7 +2751,7 @@ PyMODINIT_FUNC initGameKeysPythonBinding() KX_MACRO_addTypesToDict(d, F19KEY, SCA_IInputDevice::KX_F19KEY); KX_MACRO_addTypesToDict(d, OSKEY, SCA_IInputDevice::KX_OSKEY); - + KX_MACRO_addTypesToDict(d, PAUSEKEY, SCA_IInputDevice::KX_PAUSEKEY); KX_MACRO_addTypesToDict(d, INSERTKEY, SCA_IInputDevice::KX_INSERTKEY); KX_MACRO_addTypesToDict(d, HOMEKEY, SCA_IInputDevice::KX_HOMEKEY); @@ -2805,7 +2805,7 @@ PyMODINIT_FUNC initApplicationPythonBinding() PyObject *d; m = PyModule_Create(&Application_module_def); - + // Add some symbolic constants to the module d = PyModule_GetDict(m); @@ -2865,7 +2865,7 @@ int saveGamePythonConfig( char **marshal_buffer) // for testing only // PyObject_Print(pyGlobalDictMarshal, stderr, 0); char *marshal_cstring; - + marshal_cstring = PyBytes_AsString(pyGlobalDictMarshal); // py3 uses byte arrays marshal_length= PyBytes_Size(pyGlobalDictMarshal); *marshal_buffer = new char[marshal_length + 1]; @@ -2922,7 +2922,7 @@ int loadGamePythonConfig(char *marshal_buffer, int marshal_length) void pathGamePythonConfig(char *path) { int len = strlen(gp_GamePythonPathOrig); // Always use the first loaded blend filename - + BLI_strncpy(path, gp_GamePythonPathOrig, sizeof(gp_GamePythonPathOrig)); /* replace extension */ @@ -2937,7 +2937,7 @@ void setGamePythonPath(const char *path) { BLI_strncpy(gp_GamePythonPath, path, sizeof(gp_GamePythonPath)); BLI_cleanup_file(NULL, gp_GamePythonPath); /* not absolutely needed but makes resolving path problems less confusing later */ - + if (gp_GamePythonPathOrig[0] == '\0') BLI_strncpy(gp_GamePythonPathOrig, path, sizeof(gp_GamePythonPathOrig)); } |