diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-09-30 01:42:40 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-09-30 01:42:40 +0400 |
commit | 98ee2a781dd20bb58f72ee5700a11b2dd5124d74 (patch) | |
tree | 44825775e2d4ddc51d2138755b55c46fc17bb617 /source/gameengine/GameLogic | |
parent | 53f0c3b018a995bbada591351568e4bb217dd1df (diff) |
option to build the BGE without python, uses existing python check (cmake and scons)
when python is disabled videotextures are not built.
Diffstat (limited to 'source/gameengine/GameLogic')
39 files changed, 187 insertions, 40 deletions
diff --git a/source/gameengine/GameLogic/CMakeLists.txt b/source/gameengine/GameLogic/CMakeLists.txt index 601585f79d6..819af4b56f8 100644 --- a/source/gameengine/GameLogic/CMakeLists.txt +++ b/source/gameengine/GameLogic/CMakeLists.txt @@ -34,7 +34,6 @@ SET(INC ../../../source/gameengine/SceneGraph ../../../intern/moto/include ../../../source/gameengine/Rasterizer - ${PYTHON_INC} ) IF(WITH_SDL) @@ -43,5 +42,11 @@ ELSE(WITH_SDL) ADD_DEFINITIONS(-DDISABLE_SDL) ENDIF(WITH_SDL) +IF(WITH_PYTHON) + SET(INC ${INC} ${PYTHON_INC}) +ELSE(WITH_PYTHON) + ADD_DEFINITIONS(-DDISABLE_PYTHON) +ENDIF(WITH_PYTHON) + BLENDERLIB(bf_logic "${SRC}" "${INC}") #env.BlenderLib ( 'bf_logic', sources, Split(incs), [], libtype=['game','player'], priority=[30, 110] ) diff --git a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp index 9b04e263350..bd1e5fa7105 100644 --- a/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp +++ b/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp @@ -99,12 +99,12 @@ void SCA_2DFilterActuator::SetShaderText(const char *text) m_shaderText = text; } +#ifndef DISABLE_PYTHON + /* ------------------------------------------------------------------------- */ /* Python functions */ /* ------------------------------------------------------------------------- */ - - /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_2DFilterActuator::Type = { PyVarObject_HEAD_INIT(NULL, 0) @@ -141,3 +141,5 @@ PyAttributeDef SCA_2DFilterActuator::Attributes[] = { KX_PYATTRIBUTE_FLOAT_RW("value", 0.0, 100.0, SCA_2DFilterActuator, m_float_arg), { NULL } //Sentinel }; + +#endif diff --git a/source/gameengine/GameLogic/SCA_ANDController.cpp b/source/gameengine/GameLogic/SCA_ANDController.cpp index ac9e238bd64..21380caf6a0 100644 --- a/source/gameengine/GameLogic/SCA_ANDController.cpp +++ b/source/gameengine/GameLogic/SCA_ANDController.cpp @@ -91,7 +91,7 @@ CValue* SCA_ANDController::GetReplica() return replica; } - +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python functions */ @@ -127,5 +127,5 @@ PyMethodDef SCA_ANDController::Methods[] = { PyAttributeDef SCA_ANDController::Attributes[] = { { NULL } //Sentinel }; - +#endif // DISABLE_PYTHON /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp index 428362a0a24..c5ba95e2c2c 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp @@ -114,6 +114,7 @@ void SCA_ActuatorSensor::Update() } } +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python functions */ @@ -163,4 +164,6 @@ int SCA_ActuatorSensor::CheckActuator(void *self, const PyAttributeDef*) return 1; } +#endif // DISABLE_PYTHON + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ActuatorSensor.h b/source/gameengine/GameLogic/SCA_ActuatorSensor.h index 1a095148500..299684fc955 100644 --- a/source/gameengine/GameLogic/SCA_ActuatorSensor.h +++ b/source/gameengine/GameLogic/SCA_ActuatorSensor.h @@ -56,11 +56,15 @@ public: virtual void ReParent(SCA_IObject* parent); void Update(); +#ifndef DISABLE_PYTHON + /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ - + static int CheckActuator(void *self, const PyAttributeDef*); + +#endif // DISABLE_PYTHON }; #endif diff --git a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp index 35b035f6466..898d0f4bb34 100644 --- a/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp +++ b/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp @@ -98,6 +98,8 @@ bool SCA_AlwaysSensor::Evaluate() return result; } +#ifndef DISABLE_PYTHON + /* ------------------------------------------------------------------------- */ /* Python functions */ /* ------------------------------------------------------------------------- */ @@ -133,4 +135,6 @@ PyAttributeDef SCA_AlwaysSensor::Attributes[] = { { NULL } //Sentinel }; +#endif + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_DelaySensor.cpp b/source/gameengine/GameLogic/SCA_DelaySensor.cpp index 0f67ddd56a5..2c2b588abd3 100644 --- a/source/gameengine/GameLogic/SCA_DelaySensor.cpp +++ b/source/gameengine/GameLogic/SCA_DelaySensor.cpp @@ -124,6 +124,8 @@ bool SCA_DelaySensor::Evaluate() return trigger; } +#ifndef DISABLE_PYTHON + /* ------------------------------------------------------------------------- */ /* Python functions */ /* ------------------------------------------------------------------------- */ @@ -162,4 +164,6 @@ PyAttributeDef SCA_DelaySensor::Attributes[] = { { NULL } //Sentinel }; +#endif // DISABLE_PYTHON + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ExpressionController.cpp b/source/gameengine/GameLogic/SCA_ExpressionController.cpp index 60969300474..91135079fe6 100644 --- a/source/gameengine/GameLogic/SCA_ExpressionController.cpp +++ b/source/gameengine/GameLogic/SCA_ExpressionController.cpp @@ -36,6 +36,8 @@ #include "InputParser.h" #include "MT_Transform.h" // for fuzzyZero +#include <stdio.h> + #ifdef HAVE_CONFIG_H #include <config.h> #endif diff --git a/source/gameengine/GameLogic/SCA_IActuator.cpp b/source/gameengine/GameLogic/SCA_IActuator.cpp index 0338213b3cf..13deed12dd1 100644 --- a/source/gameengine/GameLogic/SCA_IActuator.cpp +++ b/source/gameengine/GameLogic/SCA_IActuator.cpp @@ -27,6 +27,7 @@ */ #include "SCA_IActuator.h" +#include <stdio.h> #ifdef HAVE_CONFIG_H #include <config.h> diff --git a/source/gameengine/GameLogic/SCA_IController.cpp b/source/gameengine/GameLogic/SCA_IController.cpp index 7cfd2adc1d0..65c9c4d0f57 100644 --- a/source/gameengine/GameLogic/SCA_IController.cpp +++ b/source/gameengine/GameLogic/SCA_IController.cpp @@ -33,6 +33,8 @@ #include "PyObjectPlus.h" #include "../Ketsji/KX_PythonSeq.h" /* not nice, only need for KX_PythonSeq_CreatePyObject */ +#include <stdio.h> + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -196,6 +198,8 @@ void SCA_IController::ApplyState(unsigned int state) } } +#ifndef DISABLE_PYTHON + /* Python api */ PyTypeObject SCA_IController::Type = { @@ -247,3 +251,4 @@ PyObject* SCA_IController::pyattr_get_actuators(void *self_v, const KX_PYATTRIBU { return KX_PythonSeq_CreatePyObject((static_cast<SCA_IController*>(self_v))->m_proxy, KX_PYGENSEQ_CONT_TYPE_ACTUATORS); } +#endif // DISABLE_PYTHON diff --git a/source/gameengine/GameLogic/SCA_IController.h b/source/gameengine/GameLogic/SCA_IController.h index 202921c6986..48514121661 100644 --- a/source/gameengine/GameLogic/SCA_IController.h +++ b/source/gameengine/GameLogic/SCA_IController.h @@ -98,10 +98,12 @@ public: } } + +#ifndef DISABLE_PYTHON static PyObject* pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static PyObject* pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static PyObject* pyattr_get_actuators(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); - +#endif // DISABLE_PYTHON }; #endif diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp index f679d0ee487..6502fc6de41 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp @@ -173,6 +173,7 @@ CValue* SCA_ILogicBrick::GetEvent() +#ifndef DISABLE_PYTHON /* python stuff */ @@ -255,3 +256,5 @@ PyObject* SCA_ILogicBrick::BoolToPyArg(bool boolarg) { return PyLong_FromSsize_t(boolarg? KX_TRUE: KX_FALSE); } + +#endif // DISABLE_PYTHON diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h index ac533335f0b..11885f988f3 100644 --- a/source/gameengine/GameLogic/SCA_ILogicBrick.h +++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h @@ -125,6 +125,7 @@ public: static class SCA_LogicManager* m_sCurrentLogicManager; +#ifndef DISABLE_PYTHON // python methods static PyObject* pyattr_get_owner(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); @@ -147,8 +148,9 @@ protected: /** Convert a a c++ value to KX_TRUE, KX_FALSE in Python. */ PyObject* BoolToPyArg(bool); - +#endif // DISABLE_PYTHON + }; #endif diff --git a/source/gameengine/GameLogic/SCA_IObject.cpp b/source/gameengine/GameLogic/SCA_IObject.cpp index fbf66b64d08..e63b616cab0 100644 --- a/source/gameengine/GameLogic/SCA_IObject.cpp +++ b/source/gameengine/GameLogic/SCA_IObject.cpp @@ -307,7 +307,7 @@ void SCA_IObject::SetState(unsigned int state) } } - +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python functions */ @@ -345,3 +345,5 @@ PyMethodDef SCA_IObject::Methods[] = { PyAttributeDef SCA_IObject::Attributes[] = { { NULL } //Sentinel }; + +#endif // DISABLE_PYTHON diff --git a/source/gameengine/GameLogic/SCA_IObject.h b/source/gameengine/GameLogic/SCA_IObject.h index 64ea0a76af1..60335f8fe01 100644 --- a/source/gameengine/GameLogic/SCA_IObject.h +++ b/source/gameengine/GameLogic/SCA_IObject.h @@ -41,7 +41,9 @@ class SCA_ISensor; class SCA_IController; class SCA_IActuator; +#ifndef DISABLE_PYTHON template<class T> T PyVecTo(PyObject*); +#endif typedef std::vector<SCA_ISensor *> SCA_SensorList; typedef std::vector<SCA_IController *> SCA_ControllerList; diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp index 497a5d1095a..877563e3161 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.cpp +++ b/source/gameengine/GameLogic/SCA_ISensor.cpp @@ -35,6 +35,8 @@ // needed for IsTriggered() #include "SCA_PythonController.h" +#include <stdio.h> + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -288,6 +290,9 @@ void SCA_ISensor::Activate(class SCA_LogicManager* logicmgr) } } } + +#ifndef DISABLE_PYTHON + /* ----------------------------------------------- */ /* Python Functions */ /* ----------------------------------------------- */ @@ -379,5 +384,6 @@ int SCA_ISensor::pyattr_check_tap(void *self_v, const KX_PYATTRIBUTE_DEF *attrde self->m_level = false; return 0; } +#endif // DISABLE_PYTHON /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ISensor.h b/source/gameengine/GameLogic/SCA_ISensor.h index 742b05bd88b..fce5f340be1 100644 --- a/source/gameengine/GameLogic/SCA_ISensor.h +++ b/source/gameengine/GameLogic/SCA_ISensor.h @@ -171,6 +171,7 @@ public: bool IsNoLink() const { return !m_links; } +#ifndef DISABLE_PYTHON /* Python functions: */ KX_PYMETHOD_DOC_NOARGS(SCA_ISensor,reset); @@ -178,6 +179,7 @@ public: static PyObject* pyattr_get_positive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_check_level(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_check_tap(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); +#endif // DISABLE_PYTHON }; #endif //__SCA_ISENSOR diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp index 4936b380352..9ac64b7f31e 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp @@ -32,6 +32,7 @@ #include "PyObjectPlus.h" +#include <stdio.h> #include <iostream> @@ -244,6 +245,7 @@ bool SCA_JoystickSensor::isValid(SCA_JoystickSensor::KX_JOYSENSORMODE m) return res; } +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python functions */ @@ -413,3 +415,5 @@ PyObject* SCA_JoystickSensor::pyattr_get_connected(void *self_v, const KX_PYATTR SCA_Joystick *joy = ((SCA_JoystickManager *)self->m_eventmgr)->GetJoystickDevice(self->m_joyindex); return PyBool_FromLong( joy ? joy->Connected() : 0 ); } + +#endif diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.h b/source/gameengine/GameLogic/SCA_JoystickSensor.h index b793c591ac1..49ca58ee14f 100644 --- a/source/gameengine/GameLogic/SCA_JoystickSensor.h +++ b/source/gameengine/GameLogic/SCA_JoystickSensor.h @@ -117,6 +117,8 @@ public: return m_joyindex; } +#ifndef DISABLE_PYTHON + /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ @@ -155,6 +157,8 @@ public: return 0; } +#endif // DISABLE_PYTHON + }; #endif diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp index d2e3871fec2..dcad65e6459 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp @@ -403,6 +403,7 @@ void SCA_KeyboardSensor::LogKeystrokes(void) } } +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python Functions */ @@ -495,6 +496,7 @@ PyObject* SCA_KeyboardSensor::pyattr_get_events(void *self_v, const KX_PYATTRIBU return resultlist; } +#endif // DISABLE_PYTHON /* Accessed from python */ diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.h b/source/gameengine/GameLogic/SCA_KeyboardSensor.h index d7e0f301a9d..0ce08b3e408 100644 --- a/source/gameengine/GameLogic/SCA_KeyboardSensor.h +++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.h @@ -103,6 +103,7 @@ public: virtual bool IsPositiveTrigger(); bool TriggerOnAllKeys(); +#ifndef DISABLE_PYTHON /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ @@ -113,6 +114,7 @@ public: KX_PYMETHOD_DOC_O(SCA_KeyboardSensor,getKeyStatus); static PyObject* pyattr_get_events(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); +#endif }; diff --git a/source/gameengine/GameLogic/SCA_LogicManager.cpp b/source/gameengine/GameLogic/SCA_LogicManager.cpp index b782c6dfb93..d93f2e70e36 100644 --- a/source/gameengine/GameLogic/SCA_LogicManager.cpp +++ b/source/gameengine/GameLogic/SCA_LogicManager.cpp @@ -305,6 +305,9 @@ void SCA_LogicManager::EndFrame() void SCA_LogicManager::AddTriggeredController(SCA_IController* controller, SCA_ISensor* sensor) { controller->Activate(m_triggeredControllerSet); + +#ifndef DISABLE_PYTHON + // so that the controller knows which sensor has activited it // only needed for python controller // Note that this is safe even if the controller is subclassed. @@ -313,6 +316,7 @@ void SCA_LogicManager::AddTriggeredController(SCA_IController* controller, SCA_I SCA_PythonController* pythonController = (SCA_PythonController*)controller; pythonController->AddTriggeredSensor(sensor); } +#endif } SCA_EventManager* SCA_LogicManager::FindEventManager(int eventmgrtype) diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp index 9d32682eaa9..466b8f7e741 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp +++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp @@ -57,7 +57,7 @@ SCA_MouseSensor::SCA_MouseSensor(SCA_MouseManager* eventmgr, m_mousemode = mousemode; m_triggermode = true; - UpdateHotkey(this, NULL); + UpdateHotkey(this); Init(); } @@ -72,7 +72,7 @@ SCA_MouseSensor::~SCA_MouseSensor() /* Nothing to be done here. */ } -int SCA_MouseSensor::UpdateHotkey(void *self, const PyAttributeDef*) +void SCA_MouseSensor::UpdateHotkey(void *self) { // gosh, this function is so damn stupid // its here because of a design mistake in the mouse sensor, it should only @@ -100,9 +100,6 @@ int SCA_MouseSensor::UpdateHotkey(void *self, const PyAttributeDef*) default: ; /* ignore, no hotkey */ } - // return value is used in py_setattro(), - // 0=attribute checked ok (see Attributes array definition) - return 0; } CValue* SCA_MouseSensor::GetReplica() @@ -239,6 +236,8 @@ bool SCA_MouseSensor::isValid(SCA_MouseSensor::KX_MOUSESENSORMODE m) return ((m > KX_MOUSESENSORMODE_NODEF) && (m < KX_MOUSESENSORMODE_MAX)); } +#ifndef DISABLE_PYTHON + /* ------------------------------------------------------------------------- */ /* Python functions */ /* ------------------------------------------------------------------------- */ @@ -296,10 +295,20 @@ PyMethodDef SCA_MouseSensor::Methods[] = { {NULL,NULL} //Sentinel }; +int SCA_MouseSensor::UpdateHotkeyPy(void *self, const PyAttributeDef*) +{ + UpdateHotkey(self); + // return value is used in py_setattro(), + // 0=attribute checked ok (see Attributes array definition) + return 0; +} + PyAttributeDef SCA_MouseSensor::Attributes[] = { - KX_PYATTRIBUTE_SHORT_RW_CHECK("mode",KX_MOUSESENSORMODE_NODEF,KX_MOUSESENSORMODE_MAX-1,true,SCA_MouseSensor,m_mousemode,UpdateHotkey), + KX_PYATTRIBUTE_SHORT_RW_CHECK("mode",KX_MOUSESENSORMODE_NODEF,KX_MOUSESENSORMODE_MAX-1,true,SCA_MouseSensor,m_mousemode,UpdateHotkeyPy), KX_PYATTRIBUTE_SHORT_LIST_RO("position",SCA_MouseSensor,m_x,2), { NULL } //Sentinel }; +#endif // DISABLE_PYTHON + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.h b/source/gameengine/GameLogic/SCA_MouseSensor.h index a679e605428..25b3a6c2e6e 100644 --- a/source/gameengine/GameLogic/SCA_MouseSensor.h +++ b/source/gameengine/GameLogic/SCA_MouseSensor.h @@ -86,8 +86,6 @@ class SCA_MouseSensor : public SCA_ISensor bool isValid(KX_MOUSESENSORMODE); - static int UpdateHotkey(void *self, const PyAttributeDef*); - SCA_MouseSensor(class SCA_MouseManager* keybdmgr, int startx,int starty, short int mousemode, @@ -102,14 +100,20 @@ class SCA_MouseSensor : public SCA_ISensor SCA_IInputDevice::KX_EnumInputs GetHotKey(); void setX(short x); void setY(short y); - + + static void UpdateHotkey(void *self); + + +#ifndef DISABLE_PYTHON /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ + static int UpdateHotkeyPy(void *self, const PyAttributeDef *); + // get button status KX_PYMETHOD_DOC_O(SCA_MouseSensor,getButtonStatus); - +#endif }; #endif //__KX_MOUSESENSOR diff --git a/source/gameengine/GameLogic/SCA_NANDController.cpp b/source/gameengine/GameLogic/SCA_NANDController.cpp index c971c06fadd..99c74e6d737 100644 --- a/source/gameengine/GameLogic/SCA_NANDController.cpp +++ b/source/gameengine/GameLogic/SCA_NANDController.cpp @@ -91,7 +91,7 @@ CValue* SCA_NANDController::GetReplica() return replica; } - +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python functions */ @@ -128,4 +128,6 @@ PyAttributeDef SCA_NANDController::Attributes[] = { { NULL } //Sentinel }; +#endif + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_NORController.cpp b/source/gameengine/GameLogic/SCA_NORController.cpp index 7a8b09e4bec..a84453de977 100644 --- a/source/gameengine/GameLogic/SCA_NORController.cpp +++ b/source/gameengine/GameLogic/SCA_NORController.cpp @@ -91,7 +91,7 @@ CValue* SCA_NORController::GetReplica() return replica; } - +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python functions */ @@ -128,4 +128,6 @@ PyAttributeDef SCA_NORController::Attributes[] = { { NULL } //Sentinel }; +#endif // DISABLE_PYTHON + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_ORController.cpp b/source/gameengine/GameLogic/SCA_ORController.cpp index 12e2f610986..0f750eedf77 100644 --- a/source/gameengine/GameLogic/SCA_ORController.cpp +++ b/source/gameengine/GameLogic/SCA_ORController.cpp @@ -87,6 +87,8 @@ void SCA_ORController::Trigger(SCA_LogicManager* logicmgr) } } +#ifndef DISABLE_PYTHON + /* ------------------------------------------------------------------------- */ /* Python functions */ /* ------------------------------------------------------------------------- */ @@ -122,4 +124,6 @@ PyAttributeDef SCA_ORController::Attributes[] = { { NULL } //Sentinel }; +#endif // DISABLE_PYTHON + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp index 2a3e600a653..2b480a8e8cb 100644 --- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp +++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp @@ -221,6 +221,7 @@ void SCA_PropertyActuator::Relink(GEN_Map<GEN_HashedPtr, void*> *obj_map) } } +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python functions */ @@ -260,4 +261,6 @@ PyAttributeDef SCA_PropertyActuator::Attributes[] = { { NULL } //Sentinel }; +#endif + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp index 9c09c8410fb..40c5ac687f6 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp +++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp @@ -290,16 +290,18 @@ CValue* SCA_PropertySensor::FindIdentifier(const STR_String& identifiername) return GetParent()->FindIdentifier(identifiername); } +#ifndef DISABLE_PYTHON + +/* ------------------------------------------------------------------------- */ +/* Python functions */ +/* ------------------------------------------------------------------------- */ + int SCA_PropertySensor::validValueForProperty(void *self, const PyAttributeDef*) { /* There is no type checking at this moment, unfortunately... */ return 0; } -/* ------------------------------------------------------------------------- */ -/* Python functions */ -/* ------------------------------------------------------------------------- */ - /* Integration hooks ------------------------------------------------------- */ PyTypeObject SCA_PropertySensor::Type = { PyVarObject_HEAD_INIT(NULL, 0) @@ -334,4 +336,6 @@ PyAttributeDef SCA_PropertySensor::Attributes[] = { { NULL } //Sentinel }; +#endif // DISABLE_PYTHON + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.h b/source/gameengine/GameLogic/SCA_PropertySensor.h index a5bbfc8438b..cd8a6713148 100644 --- a/source/gameengine/GameLogic/SCA_PropertySensor.h +++ b/source/gameengine/GameLogic/SCA_PropertySensor.h @@ -84,6 +84,8 @@ public: virtual bool IsPositiveTrigger(); virtual CValue* FindIdentifier(const STR_String& identifiername); +#ifndef DISABLE_PYTHON + /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ @@ -92,6 +94,8 @@ public: * Test whether this is a sensible value (type check) */ static int validValueForProperty(void* self, const PyAttributeDef*); + +#endif }; #endif diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp index ecaa8c508db..3a70d1485dc 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.cpp +++ b/source/gameengine/GameLogic/SCA_PythonController.cpp @@ -34,8 +34,12 @@ #include "SCA_ISensor.h" #include "SCA_IActuator.h" #include "PyObjectPlus.h" + +#ifndef DISABLE_PYTHON #include "compile.h" #include "eval.h" +#endif // DISABLE_PYTHON + #include <algorithm> @@ -49,13 +53,18 @@ SCA_PythonController* SCA_PythonController::m_sCurrentController = NULL; SCA_PythonController::SCA_PythonController(SCA_IObject* gameobj, int mode) : SCA_IController(gameobj), +#ifndef DISABLE_PYTHON m_bytecode(NULL), m_function(NULL), +#endif m_function_argc(0), m_bModified(true), m_debug(false), - m_mode(mode), - m_pythondictionary(NULL) + m_mode(mode) +#ifndef DISABLE_PYTHON + , m_pythondictionary(NULL) +#endif + { } @@ -78,6 +87,8 @@ int SCA_PythonController::Release() SCA_PythonController::~SCA_PythonController() { + +#ifndef DISABLE_PYTHON //printf("released python byte script\n"); Py_XDECREF(m_bytecode); @@ -88,6 +99,7 @@ SCA_PythonController::~SCA_PythonController() PyDict_Clear(m_pythondictionary); Py_DECREF(m_pythondictionary); } +#endif } @@ -95,7 +107,8 @@ SCA_PythonController::~SCA_PythonController() CValue* SCA_PythonController::GetReplica() { SCA_PythonController* replica = new SCA_PythonController(*this); - + +#ifndef DISABLE_PYTHON /* why is this needed at all??? - m_bytecode is NULL'd below so this doesnt make sense * but removing it crashes blender (with YoFrankie). so leave in for now - Campbell */ Py_XINCREF(replica->m_bytecode); @@ -113,6 +126,7 @@ CValue* SCA_PythonController::GetReplica() if (m_pythondictionary) Py_INCREF(replica->m_pythondictionary); */ +#endif // this will copy properties and so on... replica->ProcessReplica(); @@ -136,7 +150,7 @@ void SCA_PythonController::SetScriptName(const STR_String& name) } - +#ifndef DISABLE_PYTHON void SCA_PythonController::SetDictionary(PyObject* pythondictionary) { if (m_pythondictionary) @@ -151,6 +165,7 @@ void SCA_PythonController::SetDictionary(PyObject* pythondictionary) PyDict_SetItemString(m_pythondictionary, "__file__", PyUnicode_FromString(m_scriptName.Ptr())); } +#endif int SCA_PythonController::IsTriggered(class SCA_ISensor* sensor) { @@ -160,6 +175,8 @@ int SCA_PythonController::IsTriggered(class SCA_ISensor* sensor) return 0; } +#ifndef DISABLE_PYTHON + /* warning, self is not the SCA_PythonController, its a PyObjectPlus_Proxy */ PyObject* SCA_PythonController::sPyGetCurrentController(PyObject *self) { @@ -360,6 +377,7 @@ bool SCA_PythonController::Import() return true; } + void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr) { m_sCurrentController = this; @@ -514,5 +532,13 @@ int SCA_PythonController::pyattr_set_script(void *self_v, const KX_PYATTRIBUTE_D return PY_SET_ATTR_SUCCESS; } +#else // DISABLE_PYTHON + +void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr) +{ + /* intentionally blank */ +} + +#endif // DISABLE_PYTHON /* eof */ diff --git a/source/gameengine/GameLogic/SCA_PythonController.h b/source/gameengine/GameLogic/SCA_PythonController.h index 9311b3f355e..f6a1064b77d 100644 --- a/source/gameengine/GameLogic/SCA_PythonController.h +++ b/source/gameengine/GameLogic/SCA_PythonController.h @@ -42,8 +42,10 @@ class SCA_IObject; class SCA_PythonController : public SCA_IController { Py_Header; +#ifndef DISABLE_PYTHON struct _object * m_bytecode; /* SCA_PYEXEC_SCRIPT only */ PyObject* m_function; /* SCA_PYEXEC_MODULE only */ +#endif int m_function_argc; bool m_bModified; bool m_debug; /* use with SCA_PYEXEC_MODULE for reloading every logic run */ @@ -53,9 +55,10 @@ class SCA_PythonController : public SCA_IController protected: STR_String m_scriptText; STR_String m_scriptName; +#ifndef DISABLE_PYTHON PyObject* m_pythondictionary; /* for SCA_PYEXEC_SCRIPT only */ PyObject* m_pythonfunction; /* for SCA_PYEXEC_MODULE only */ - +#endif std::vector<class SCA_ISensor*> m_triggeredSensors; public: @@ -80,7 +83,9 @@ class SCA_PythonController : public SCA_IController void SetScriptText(const STR_String& text); void SetScriptName(const STR_String& name); +#ifndef DISABLE_PYTHON void SetDictionary(PyObject* pythondictionary); +#endif void SetDebug(bool debug) { m_debug = debug; } void AddTriggeredSensor(class SCA_ISensor* sensor) { m_triggeredSensors.push_back(sensor); } @@ -89,7 +94,7 @@ class SCA_PythonController : public SCA_IController bool Import(); void ErrorPrint(const char *error_msg); - +#ifndef DISABLE_PYTHON static const char* sPyGetCurrentController__doc__; static PyObject* sPyGetCurrentController(PyObject* self); static const char* sPyAddActiveActuator__doc__; @@ -106,8 +111,7 @@ class SCA_PythonController : public SCA_IController static PyObject* pyattr_get_script(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_script(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); - - +#endif }; #endif //KX_PYTHONCONTROLLER_H diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp index 8f9482b7826..fa85bdd768e 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp +++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp @@ -309,6 +309,8 @@ void SCA_RandomActuator::enforceConstraints() { } } +#ifndef DISABLE_PYTHON + /* ------------------------------------------------------------------------- */ /* Python functions */ /* ------------------------------------------------------------------------- */ @@ -546,5 +548,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatNegativeExponential, enforceConstraints(); Py_RETURN_NONE; } - + +#endif + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.h b/source/gameengine/GameLogic/SCA_RandomActuator.h index f84c44b43c9..2eb9b8d5d14 100644 --- a/source/gameengine/GameLogic/SCA_RandomActuator.h +++ b/source/gameengine/GameLogic/SCA_RandomActuator.h @@ -91,6 +91,8 @@ class SCA_RandomActuator : public SCA_IActuator virtual CValue* GetReplica(); virtual void ProcessReplica(); + +#ifndef DISABLE_PYTHON /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ @@ -109,6 +111,9 @@ class SCA_RandomActuator : public SCA_IActuator KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setFloatUniform); KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setFloatNormal); KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setFloatNegativeExponential); + +#endif // DISABLE_PYTHON + }; /* end of class KX_EditObjectActuator : public SCA_PropertyActuator */ #endif diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp index 890875e61c6..922e44b1c1d 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp +++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp @@ -124,6 +124,8 @@ bool SCA_RandomSensor::Evaluate() return evaluateResult; } +#ifndef DISABLE_PYTHON + /* ------------------------------------------------------------------------- */ /* Python functions */ /* ------------------------------------------------------------------------- */ @@ -178,4 +180,6 @@ int SCA_RandomSensor::pyattr_set_seed(void *self_v, const KX_PYATTRIBUTE_DEF *at return PY_SET_ATTR_SUCCESS; } +#endif // DISABLE_PYTHON + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.h b/source/gameengine/GameLogic/SCA_RandomSensor.h index f93cf57370e..8126824c3dd 100644 --- a/source/gameengine/GameLogic/SCA_RandomSensor.h +++ b/source/gameengine/GameLogic/SCA_RandomSensor.h @@ -56,13 +56,15 @@ public: virtual bool IsPositiveTrigger(); virtual void Init(); +#ifndef DISABLE_PYTHON + /* --------------------------------------------------------------------- */ /* Python interface ---------------------------------------------------- */ /* --------------------------------------------------------------------- */ static PyObject* pyattr_get_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef); static int pyattr_set_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value); - +#endif }; #endif //__KX_RANDOMSENSOR diff --git a/source/gameengine/GameLogic/SCA_XNORController.cpp b/source/gameengine/GameLogic/SCA_XNORController.cpp index 17350feb98b..e726a49347c 100644 --- a/source/gameengine/GameLogic/SCA_XNORController.cpp +++ b/source/gameengine/GameLogic/SCA_XNORController.cpp @@ -95,7 +95,7 @@ CValue* SCA_XNORController::GetReplica() return replica; } - +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python functions */ @@ -132,4 +132,6 @@ PyAttributeDef SCA_XNORController::Attributes[] = { { NULL } //Sentinel }; +#endif // DISABLE_PYTHON + /* eof */ diff --git a/source/gameengine/GameLogic/SCA_XORController.cpp b/source/gameengine/GameLogic/SCA_XORController.cpp index a6a7cc25897..71cc4374e95 100644 --- a/source/gameengine/GameLogic/SCA_XORController.cpp +++ b/source/gameengine/GameLogic/SCA_XORController.cpp @@ -95,7 +95,7 @@ CValue* SCA_XORController::GetReplica() return replica; } - +#ifndef DISABLE_PYTHON /* ------------------------------------------------------------------------- */ /* Python functions */ @@ -131,5 +131,6 @@ PyMethodDef SCA_XORController::Methods[] = { PyAttributeDef SCA_XORController::Attributes[] = { { NULL } //Sentinel }; +#endif // DISABLE_PYTHON /* eof */ diff --git a/source/gameengine/GameLogic/SConscript b/source/gameengine/GameLogic/SConscript index 1530c71c7f3..3840754ed06 100644 --- a/source/gameengine/GameLogic/SConscript +++ b/source/gameengine/GameLogic/SConscript @@ -7,9 +7,6 @@ incs = '. #/source/kernel/gen_system #/intern/string' incs += ' #/source/gameengine/Expressions #/intern/moto/include' incs += ' #/source/gameengine/Rasterizer #/source/gameengine/SceneGraph' -incs += ' ' + env['BF_PYTHON_INC'] - - defs = [] if env['WITH_BF_SDL']: @@ -17,6 +14,11 @@ if env['WITH_BF_SDL']: else: defs.append('DISABLE_SDL') +if env['WITH_BF_PYTHON']: + incs += ' ' + env['BF_PYTHON_INC'] +else: + defs.append('DISABLE_PYTHON') + if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): if env['BF_DEBUG']: defs.append('_DEBUG') |