diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-04-12 10:41:01 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-04-12 10:41:01 +0400 |
commit | 33170295c8a2f3eb815b6086f47147113fd3de13 (patch) | |
tree | 4d0b1bcf15da67209c2b3c0f1834f7f63838c9f3 /source/gameengine/Expressions/IntValue.h | |
parent | 4cd088b1059afa2e7b998c184b2c9deecd4be4a9 (diff) |
use long long rather then int for storing game logic properties.
There were also some problems with int to python conversion
- assigning a PyLong to a KX_GameObject from python would raise an error
- PyLong were coerced into floats when used with internal CValue arithmetic
Changes...
- PyLong is converted into CIntValue for coercing and assigning from python
- CValue's generic GetNumber() function returns a double rather then a float.
- Print an error when a PyType cant be coerced into a CValue
Tested with python, expressions and property sensor.
Diffstat (limited to 'source/gameengine/Expressions/IntValue.h')
-rw-r--r-- | source/gameengine/Expressions/IntValue.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/source/gameengine/Expressions/IntValue.h b/source/gameengine/Expressions/IntValue.h index 4fdc1089857..0f3a38b274b 100644 --- a/source/gameengine/Expressions/IntValue.h +++ b/source/gameengine/Expressions/IntValue.h @@ -18,18 +18,20 @@ #include "Value.h" +typedef long long cInt; + class CIntValue : public CPropValue { //PLUGIN_DECLARE_SERIAL (CIntValue,CValue) public: virtual const STR_String& GetText(); - virtual float GetNumber(); + virtual double GetNumber(); - int GetInt(); + cInt GetInt(); CIntValue(); - CIntValue(int innie); - CIntValue(int innie, + CIntValue(cInt innie); + CIntValue(cInt innie, STR_String name, AllocationTYPE alloctype=CValue::HEAPVALUE); @@ -51,7 +53,7 @@ protected: virtual ~CIntValue(); private: - int m_int; + cInt m_int; STR_String* m_pstrRep; }; |