Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-05-19 11:16:40 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-05-19 11:16:40 +0400
commit1a16fb1953a566cd57f49683d4711b7052d6b586 (patch)
tree01b9ea221ec4f4ce9942b9bb2d0b642aba78529a /source/gameengine/Ketsji/KX_Light.cpp
parent5bd4b25dd1997672e4487f7dcba76e4b74ce814f (diff)
BGE Py API
use PY_SET_ATTR_FAIL and PY_SET_ATTR_SUCCESS return values so the fake subclassing can know if a value failed to be set or if it was missing from the type. (with PY_SET_ATTR_MISSING) Also noticed some other mistakes. - KX_LightObject, setting the type didnt check for an int. - KX_SoundActuator, didnt return an error when assigning an invalid orientation value - KX_GameObject, worldOrientation didnt return an error value.
Diffstat (limited to 'source/gameengine/Ketsji/KX_Light.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_Light.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp
index df7691d016b..1496f34c5f2 100644
--- a/source/gameengine/Ketsji/KX_Light.cpp
+++ b/source/gameengine/Ketsji/KX_Light.cpp
@@ -261,9 +261,9 @@ int KX_LightObject::pyattr_set_color(void *self_v, const KX_PYATTRIBUTE_DEF *att
self->m_lightobj.m_red = color[0];
self->m_lightobj.m_green = color[1];
self->m_lightobj.m_blue = color[2];
- return 0;
+ return PY_SET_ATTR_SUCCESS;
}
- return 1;
+ return PY_SET_ATTR_FAIL;
}
PyObject* KX_LightObject::pyattr_get_typeconst(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
@@ -293,6 +293,11 @@ int KX_LightObject::pyattr_set_type(void* self_v, const KX_PYATTRIBUTE_DEF *attr
{
KX_LightObject* self = static_cast<KX_LightObject*>(self_v);
int val = PyInt_AsLong(value);
+ if((val==-1 && PyErr_Occurred()) || val<0 || val>2) {
+ PyErr_SetString(PyExc_ValueError, "light.type= val: KX_LightObject, expected an int between 0 and 2");
+ return PY_SET_ATTR_FAIL;
+ }
+
switch(val) {
case 0:
self->m_lightobj.m_type = self->m_lightobj.LIGHT_SPOT;
@@ -300,7 +305,7 @@ int KX_LightObject::pyattr_set_type(void* self_v, const KX_PYATTRIBUTE_DEF *attr
case 1:
self->m_lightobj.m_type = self->m_lightobj.LIGHT_SUN;
break;
- default:
+ case 2:
self->m_lightobj.m_type = self->m_lightobj.LIGHT_NORMAL;
break;
}