about summary refs log tree commit diff
path: root/src/game/editor
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-08-16 21:35:00 +0200
committeroy <Tom_Adams@web.de>2011-08-16 21:35:00 +0200
commit2708256186b7f568e6ce6c34e161bf0d2d349096 (patch)
tree2ae0546376604648389d020c481745490423c4b6 /src/game/editor
parentf36cc57bdd4837f6f148e6d83e6a5185b1328b7d (diff)
downloadzcatch-2708256186b7f568e6ce6c34e161bf0d2d349096.tar.gz
zcatch-2708256186b7f568e6ce6c34e161bf0d2d349096.zip
fixed quad selection via envelope preview
Diffstat (limited to 'src/game/editor')
-rw-r--r--src/game/editor/editor.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/game/editor/editor.cpp b/src/game/editor/editor.cpp
index 41553808..2c3aa550 100644
--- a/src/game/editor/editor.cpp
+++ b/src/game/editor/editor.cpp
@@ -1501,6 +1501,7 @@ void CEditor::DoQuadEnvPoint(CQuad *pQuad, int QIndex, int PIndex)
 	float wy = UI()->MouseWorldY();
 	CEnvelope *pEnvelope = m_Map.m_lEnvelopes[pQuad->m_PosEnv];
 	void *pID = &pEnvelope->m_lPoints[PIndex];
+	static int s_ActQIndex = -1;
 
 	// get pivot
 	float CenterX = fx2f(pQuad->m_aPoints[4].x)+fx2f(pEnvelope->m_lPoints[PIndex].m_aValues[0]);
@@ -1508,10 +1509,13 @@ void CEditor::DoQuadEnvPoint(CQuad *pQuad, int QIndex, int PIndex)
 
 	float dx = (CenterX - wx)/m_WorldZoom;
 	float dy = (CenterY - wy)/m_WorldZoom;
-	if(dx*dx+dy*dy < 50)
+	if(dx*dx+dy*dy < 50.0f && UI()->ActiveItem() == 0)
+	{
 		UI()->SetHotItem(pID);
+		s_ActQIndex = QIndex;
+	}
 
-	if(UI()->ActiveItem() == pID)
+	if(UI()->ActiveItem() == pID && s_ActQIndex == QIndex)
 	{
 		if(s_Operation == OP_MOVE)
 		{
@@ -1554,7 +1558,7 @@ void CEditor::DoQuadEnvPoint(CQuad *pQuad, int QIndex, int PIndex)
 
 		Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f);
 	}
-	else if(UI()->HotItem() == pID)
+	else if(UI()->HotItem() == pID && s_ActQIndex == QIndex)
 	{
 		ms_pUiGotContext = pID;