MOIS problems

Eldritch

10-05-2007 16:28:28

Hey, I am using MOIS since I upgraded to Eihort and it did not like Axiom.

Seems like there is a bug where it sometimes does not register key events.


private MOIS.InputManager m_refInputReader;
private MOIS.Keyboard m_refKeyboard;
private MOIS.Mouse m_refMouse;

MOIS.ParamList pl = new MOIS.ParamList();
IntPtr windowHnd;
CCanvas_s.Instance.GetRenderWindow().GetCustomAttribute("WINDOW", out windowHnd);
pl.Insert("WINDOW", windowHnd.ToString());
m_refInputReader = MOIS.InputManager.CreateInputSystem(pl);

m_refKeyboard = (MOIS.Keyboard)m_refInputReader.CreateInputObject(MOIS.Type.OISKeyboard, true);
m_refKeyboard.KeyPressed += new MOIS.KeyListener.KeyPressedHandler(m_refKeyboard_KeyPressed);
m_refKeyboard.KeyReleased += new MOIS.KeyListener.KeyReleasedHandler(m_refKeyboard_KeyReleased);

m_refMouse = (MOIS.Mouse)m_refInputReader.CreateInputObject(MOIS.Type.OISMouse, true);
m_refMouse.MousePressed += new MOIS.MouseListener.MousePressedHandler(m_refMouse_MousePressed);
m_refMouse.MouseReleased += new MOIS.MouseListener.MouseReleasedHandler(m_refMouse_MouseReleased);

bool m_refMouse_MouseReleased(MOIS.MouseEvent arg, MOIS.MouseButtonID id)
{
if (id == MOIS.MouseButtonID.MB_Left)
CInputServer_s.Instance.SetButtonState(0, false);
else if (id == MOIS.MouseButtonID.MB_Right)
CInputServer_s.Instance.SetButtonState(1, false);
else if (id == MOIS.MouseButtonID.MB_Middle)
CInputServer_s.Instance.SetButtonState(2, false);

return false;
}

bool m_refMouse_MousePressed(MOIS.MouseEvent arg, MOIS.MouseButtonID id)
{
if (id == MOIS.MouseButtonID.MB_Left)
CInputServer_s.Instance.SetButtonState(0, true);
else if (id == MOIS.MouseButtonID.MB_Right)
CInputServer_s.Instance.SetButtonState(1, true);
else if (id == MOIS.MouseButtonID.MB_Middle)
CInputServer_s.Instance.SetButtonState(2, true);

return false;
}

bool m_refKeyboard_KeyReleased(MOIS.KeyEvent arg)
{
CInputServer_s.Instance.SetKeyState((int)arg.key, false);
return false;
}

bool m_refKeyboard_KeyPressed(MOIS.KeyEvent arg)
{
CInputServer_s.Instance.SetKeyState((int)arg.key, true);
return false;
}