mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 01:58:19 +00:00
fixed problems with the mouse movement. Closes #214
This commit is contained in:
parent
c828f7d725
commit
e4fe7457c8
|
@ -48,7 +48,7 @@ void CInput::Init()
|
|||
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
|
||||
}
|
||||
|
||||
void CInput::MouseRelative(int *x, int *y)
|
||||
void CInput::MouseRelative(float *x, float *y)
|
||||
{
|
||||
int nx = 0, ny = 0;
|
||||
float Sens = g_Config.m_InpMousesens/100.0f;
|
||||
|
@ -65,8 +65,8 @@ void CInput::MouseRelative(int *x, int *y)
|
|||
}
|
||||
}
|
||||
|
||||
*x = (int)(nx*Sens);
|
||||
*y = (int)(ny*Sens);
|
||||
*x = nx*Sens;
|
||||
*y = ny*Sens;
|
||||
}
|
||||
|
||||
void CInput::MouseModeAbsolute()
|
||||
|
|
|
@ -19,7 +19,7 @@ public:
|
|||
|
||||
virtual void Init();
|
||||
|
||||
virtual void MouseRelative(int *x, int *y);
|
||||
virtual void MouseRelative(float *x, float *y);
|
||||
virtual void MouseModeAbsolute();
|
||||
virtual void MouseModeRelative();
|
||||
virtual int MouseDoubleClick();
|
||||
|
|
|
@ -72,7 +72,7 @@ public:
|
|||
virtual void MouseModeAbsolute() = 0;
|
||||
virtual int MouseDoubleClick() = 0;
|
||||
|
||||
virtual void MouseRelative(int *x, int *y) = 0;
|
||||
virtual void MouseRelative(float *x, float *y) = 0;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ void CEmoticon::OnRender()
|
|||
|
||||
m_WasActive = true;
|
||||
|
||||
int x, y;
|
||||
float x, y;
|
||||
Input()->MouseRelative(&x, &y);
|
||||
|
||||
m_SelectorMouse.x += x;
|
||||
|
|
|
@ -304,9 +304,9 @@ void CGameClient::OnInit()
|
|||
void CGameClient::DispatchInput()
|
||||
{
|
||||
// handle mouse movement
|
||||
int x=0, y=0;
|
||||
float x = 0.0f, y = 0.0f;
|
||||
Input()->MouseRelative(&x, &y);
|
||||
if(x || y)
|
||||
if(x != 0.0f || y != 0.0f)
|
||||
{
|
||||
for(int h = 0; h < m_Input.m_Num; h++)
|
||||
{
|
||||
|
|
|
@ -3194,8 +3194,8 @@ void CEditor::DoMapBorder()
|
|||
|
||||
void CEditor::UpdateAndRender()
|
||||
{
|
||||
static int s_MouseX = 0;
|
||||
static int s_MouseY = 0;
|
||||
static float s_MouseX = 0.0f;
|
||||
static float s_MouseY = 0.0f;
|
||||
|
||||
if(m_Animate)
|
||||
m_AnimateTime = (time_get()-m_AnimateStart)/(float)time_freq();
|
||||
|
@ -3205,7 +3205,7 @@ void CEditor::UpdateAndRender()
|
|||
|
||||
// handle mouse movement
|
||||
float mx, my, Mwx, Mwy;
|
||||
int rx, ry;
|
||||
float rx, ry;
|
||||
{
|
||||
Input()->MouseRelative(&rx, &ry);
|
||||
m_MouseDeltaX = rx;
|
||||
|
@ -3217,10 +3217,8 @@ void CEditor::UpdateAndRender()
|
|||
s_MouseY += ry;
|
||||
}
|
||||
|
||||
if(s_MouseX < 0) s_MouseX = 0;
|
||||
if(s_MouseY < 0) s_MouseY = 0;
|
||||
if(s_MouseX > UI()->Screen()->w) s_MouseX = (int)UI()->Screen()->w;
|
||||
if(s_MouseY > UI()->Screen()->h) s_MouseY = (int)UI()->Screen()->h;
|
||||
clamp(s_MouseX, 0.0f, UI()->Screen()->w);
|
||||
clamp(s_MouseY, 0.0f, UI()->Screen()->h);
|
||||
|
||||
// update the ui
|
||||
mx = s_MouseX;
|
||||
|
|
Loading…
Reference in a new issue