Merged 15170:15635 from trunk (no conflicts or even merges)
[blender.git] / source / gameengine / GameLogic / SCA_ISensor.h
index e14fb34241a0deb7268bfd9ba23f5e808433ea07..4ce49e7150716d87884fd2a885e5961e2770c8fc 100644 (file)
@@ -61,9 +61,18 @@ class SCA_ISensor : public SCA_ILogicBrick
        /** invert the output signal*/
        bool m_invert;
 
+       /** detect level instead of edge*/
+       bool m_level;
+
+       /** sensor has been reset */
+       bool m_reset;
+
        /** Sensor must ignore updates? */
        bool m_suspended;
 
+       /** number of connections to controller */
+       int m_links;
+
        /** Pass the activation on to the logic manager.*/
        void SignalActivation(class SCA_LogicManager* logicmgr);
        
@@ -81,6 +90,7 @@ public:
        void Activate(class SCA_LogicManager* logicmgr,CValue* event);
        virtual bool Evaluate(CValue* event) = 0;
        virtual bool IsPositiveTrigger();
+       virtual void Init();
        
        virtual PyObject* _getattr(const STR_String& attr);
        virtual CValue* GetReplica()=0;
@@ -101,6 +111,8 @@ public:
        virtual void Delete() { Release(); }
        /** Set inversion of pulses on or off. */
        void SetInvert(bool inv);
+       /** set the level detection on or off */
+       void SetLevel(bool lvl);
 
        void RegisterToManager();
        virtual float GetNumber();
@@ -114,6 +126,14 @@ public:
        /** Resume sensing. */
        void Resume();
 
+       void ClrLink()
+               { m_links = 0; }
+       void IncLink()
+               { m_links++; }
+       void DecLink();
+       bool IsNoLink() const 
+               { return !m_links; }
+
        /* Python functions: */
        KX_PYMETHOD_DOC(SCA_ISensor,IsPositive);
        KX_PYMETHOD_DOC(SCA_ISensor,GetUsePosPulseMode);
@@ -124,6 +144,8 @@ public:
        KX_PYMETHOD_DOC(SCA_ISensor,SetUseNegPulseMode);
        KX_PYMETHOD_DOC(SCA_ISensor,GetInvert);
        KX_PYMETHOD_DOC(SCA_ISensor,SetInvert);
+       KX_PYMETHOD_DOC(SCA_ISensor,GetLevel);
+       KX_PYMETHOD_DOC(SCA_ISensor,SetLevel);
 
 };