diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2005-08-17 18:29:58 +0400 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2005-08-17 18:29:58 +0400 |
commit | 72d60d7b6371fa0b3426ea0db3aecb45b9ae7a4a (patch) | |
tree | 4f5d4709bbc52d64b4b069e82419e03f0f65fc27 /source/gameengine/Ketsji | |
parent | 8b060dd5adfe5d56f558e4a600717f2b755d8559 (diff) |
added the "mouse over any", makes the sensor more useful
Diffstat (limited to 'source/gameengine/Ketsji')
-rw-r--r-- | source/gameengine/Ketsji/KX_MouseFocusSensor.cpp | 9 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_MouseFocusSensor.h | 9 |
2 files changed, 9 insertions, 9 deletions
diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp index b42c66fc4f9..107e8ebc185 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp @@ -62,7 +62,7 @@ KX_MouseFocusSensor::KX_MouseFocusSensor(SCA_MouseManager* eventmgr, int startx, int starty, short int mousemode, - bool focusmode, + int focusmode, RAS_ICanvas* canvas, KX_Scene* kxscene, SCA_IObject* gameobj, @@ -72,8 +72,7 @@ KX_MouseFocusSensor::KX_MouseFocusSensor(SCA_MouseManager* eventmgr, m_gp_canvas(canvas), m_kxscene(kxscene) { - /* Or postpone? I think a sumo scene and kx scene go pretty much - * together, so it should be safe to do it here. */ + m_mouse_over_in_previous_frame = false; m_positive_event = false; m_hitObject = 0; @@ -134,7 +133,7 @@ bool KX_MouseFocusSensor::RayHit(KX_ClientObjectInfo* client_info, MT_Point3& hi * self-hits are excluded by setting the correct ignore-object.) * Hitspots now become valid. */ KX_GameObject* thisObj = (KX_GameObject*) GetParent(); - if (hitKXObj != thisObj) + if ((m_focusmode == 2) || hitKXObj == thisObj) { m_hitObject = hitKXObj; m_hitPosition = hit_point; @@ -150,7 +149,7 @@ bool KX_MouseFocusSensor::RayHit(KX_ClientObjectInfo* client_info, MT_Point3& hi bool KX_MouseFocusSensor::ParentObjectHasFocus(void) { - + m_hitObject = 0; m_hitPosition = MT_Vector3(0,0,0); m_hitNormal = MT_Vector3(1,0,0); MT_Point3 resultpoint; diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.h b/source/gameengine/Ketsji/KX_MouseFocusSensor.h index ff69c570d53..94b2fc72e6d 100644 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.h +++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.h @@ -54,7 +54,7 @@ class KX_MouseFocusSensor : public SCA_MouseSensor int startx, int starty, short int mousemode, - bool focusmode, + int focusmode, RAS_ICanvas* canvas, KX_Scene* kxscene, SCA_IObject* gameobj, @@ -98,9 +98,9 @@ class KX_MouseFocusSensor : public SCA_MouseSensor private: /** - * The focus mode. True for handling focus, false for not handling - * it. */ - bool m_focusmode; + * The focus mode. 1 for handling focus, 0 for not handling, 2 for focus on any object + */ + int m_focusmode; /** * Flags whether the previous test showed a mouse-over. @@ -146,6 +146,7 @@ class KX_MouseFocusSensor : public SCA_MouseSensor * scene. */ class KX_KetsjiEngine* m_engine; + /** * The active canvas. The size of this canvas determines a part of * the start position of the picking ray. */ |