diff --git a/source/blender/imbuf/intern/jp2.c b/source/blender/imbuf/intern/jp2.c index 6217cd6bea2..2583a155d6a 100644 --- a/source/blender/imbuf/intern/jp2.c +++ b/source/blender/imbuf/intern/jp2.c @@ -230,7 +230,7 @@ struct ImBuf *imb_jp2_decode(unsigned char *mem, int size, int flags) rect_float[2]= (float)(image->comps[2].data[index] + signed_offsets[2]) / float_divs[2]; if (image->numcomps >= 4) - rect_float[3]= (float)(image->comps[2].data[index] + signed_offsets[3]) / float_divs[3]; + rect_float[3]= (float)(image->comps[3].data[index] + signed_offsets[3]) / float_divs[3]; else rect_float[3]= 1.0f; } @@ -260,7 +260,7 @@ struct ImBuf *imb_jp2_decode(unsigned char *mem, int size, int flags) rect[2]= image->comps[2].data[index] + signed_offsets[2]; if (image->numcomps >= 4) - rect[3]= image->comps[2].data[index] + signed_offsets[3]; + rect[3]= image->comps[3].data[index] + signed_offsets[3]; else rect[3]= 255; } diff --git a/source/gameengine/Ketsji/KX_NearSensor.cpp b/source/gameengine/Ketsji/KX_NearSensor.cpp index f7baacdfa61..c6a6304cb2c 100644 --- a/source/gameengine/Ketsji/KX_NearSensor.cpp +++ b/source/gameengine/Ketsji/KX_NearSensor.cpp @@ -142,6 +142,22 @@ KX_NearSensor::~KX_NearSensor() delete m_client_info; } +void KX_NearSensor::SetPhysCtrlRadius() +{ + if (m_bTriggered) + { + if (m_physCtrl) + { + m_physCtrl->SetRadius(m_ResetMargin); + } + } else + { + if (m_physCtrl) + { + m_physCtrl->SetRadius(m_Margin); + } + } +} bool KX_NearSensor::Evaluate() { @@ -151,20 +167,9 @@ bool KX_NearSensor::Evaluate() if (m_bTriggered != m_bLastTriggered) { m_bLastTriggered = m_bTriggered; - if (m_bTriggered) - { - if (m_physCtrl) - { - m_physCtrl->SetRadius(m_ResetMargin); - } - } else - { - if (m_physCtrl) - { - m_physCtrl->SetRadius(m_Margin); - } - - } + + SetPhysCtrlRadius(); + result = true; } diff --git a/source/gameengine/Ketsji/KX_NearSensor.h b/source/gameengine/Ketsji/KX_NearSensor.h index 03d6f830579..4f0247d209d 100644 --- a/source/gameengine/Ketsji/KX_NearSensor.h +++ b/source/gameengine/Ketsji/KX_NearSensor.h @@ -68,6 +68,7 @@ public: virtual void SynchronizeTransform(); virtual CValue* GetReplica(); virtual void ProcessReplica(); + virtual void SetPhysCtrlRadius(); virtual bool Evaluate(); virtual void ReParent(SCA_IObject* parent); @@ -91,6 +92,8 @@ public: if (sensor->m_Margin > sensor->m_ResetMargin) sensor->m_ResetMargin = sensor->m_Margin; + sensor->SetPhysCtrlRadius(); + return 0; }