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:
authorBenoit Bolsee <benoit.bolsee@online.be>2008-12-30 19:44:34 +0300
committerBenoit Bolsee <benoit.bolsee@online.be>2008-12-30 19:44:34 +0300
commitcbceb6c8b2806587a45e05946cb591bd119cc801 (patch)
tree2026fa2225120699ebfa37db18938cfbe1ecf390 /source/gameengine/GameLogic/SCA_MouseSensor.cpp
parentcbc3c7e8785d21490346d4c2eed8380de6ede378 (diff)
BGE API cleanup: more consistent type check on set attribute (mouse and keyboard so far). Check type after name so that the user get a type error when assigning a wrong type to a built-in attribute.
Diffstat (limited to 'source/gameengine/GameLogic/SCA_MouseSensor.cpp')
-rw-r--r--source/gameengine/GameLogic/SCA_MouseSensor.cpp39
1 files changed, 19 insertions, 20 deletions
diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
index 9562003aec0..8281eed47bc 100644
--- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
@@ -343,31 +343,30 @@ PyObject* SCA_MouseSensor::_getattr(const STR_String& attr) {
int SCA_MouseSensor::_setattr(const STR_String& attr, PyObject *value)
{
- if (PyInt_Check(value))
+ if (attr == "mode")
{
+ if (!PyInt_Check(value)){
+ PyErr_SetString(PyExc_TypeError, "expected an integer");
+ return 1;
+ }
+
int val = PyInt_AsLong(value);
-
- if (attr == "mode")
- {
- if ((val < KX_MOUSESENSORMODE_NODEF)
- || (val > KX_MOUSESENSORMODE_MAX)){
-
- PyErr_SetString(PyExc_ValueError, "invalid mode specified!");
- return NULL;
- }
-
- m_mousemode = val;
- UpdateHotkey();
- return 0;
+
+ if ((val < KX_MOUSESENSORMODE_NODEF)
+ || (val > KX_MOUSESENSORMODE_MAX)){
+ PyErr_SetString(PyExc_ValueError, "invalid mode specified!");
+ return 1;
}
+
+ m_mousemode = val;
+ UpdateHotkey();
+ return 0;
}
- else
+
+ if (attr == "position")
{
- if (attr == "position")
- {
- PyErr_SetString(PyExc_AttributeError, "read-only property!");
- return NULL;
- }
+ PyErr_SetString(PyExc_AttributeError, "'position' is a read-only property!");
+ return 1;
}
return SCA_ISensor::_setattr(attr, value);