sorry for the flurry of posts, i've just been trying to patch up some final things i need. I'm having trouble getting my mouse events to work. My keyboard events work ok, but i don't seem to be catching my mouse events correctly.
Working keyboard:
// Buttons have been pressed
bool Time::OnKeyboard(iEvent& ev)
{
// We got a keyboard event.
csKeyEventType eventtype = csKeyEventHelper::GetEventType(&ev);
if (eventtype == csKeyEventTypeDown)
{
// The user pressed a key (as opposed to releasing it).
utf32_char code = csKeyEventHelper::GetCookedCode(&ev);
//The user pressed tab to toggle console
if (console->IsVisible() )
return console->HandleEvent(ev);
if (LevelFlag)
{
if (code == CSKEY_ESC)
{
if (GuiFlag)
{
HideGui();
}
else if(!GuiFlag)
{
ShowGui();
}
MouseFlag = !MouseFlag;
}
if (code == CSKEY_TAB)
{
console->Toggle();
return false;
}
}
}
return false;
}
Test mouse #2:
// Buttons have been pressed
bool Time::OnKeyboard(iEvent& ev)
{
// We got a keyboard event.
csKeyEventType eventtype = csKeyEventHelper::GetEventType(&ev);
if (eventtype == csKeyEventTypeDown)
{
// The user pressed a key (as opposed to releasing it).
utf32_char code = csKeyEventHelper::GetCookedCode(&ev);
//The user pressed tab to toggle console
if (console->IsVisible() )
return console->HandleEvent(ev);
if (LevelFlag)
{
if (code == CSKEY_ESC)
{
if (GuiFlag)
{
HideGui();
}
else if(!GuiFlag)
{
ShowGui();
}
MouseFlag = !MouseFlag;
}
if (code == CSKEY_TAB)
{
console->Toggle();
return false;
}
}
}
// We got a mouse event
csMouseEventType MouseEvent = csMouseEventHelper::GetEventType(&ev);
if (MouseEvent == csMouseEventTypeClick)
{
// The user clicked a mouse button (once)
uint MouseKey = csMouseEventHelper::GetButton(&ev);
if (MouseKey == csmbLeft)
{
player_health++;
}
if (MouseKey == csmbRight)
{
player_health--;
}
if (MouseKey == csmbMiddle)
{
player_health = 0;
}
}
return false;
}
test mouse #1:
// Mouse button events
bool Time::OnMouse(iEvent& ev)
{
// We got a mouse event
csMouseEventType MouseEvent = csMouseEventHelper::GetEventType(&ev);
if (MouseEvent == csMouseEventTypeClick)
{
// The user clicked a mouse button (once)
uint MouseKey = csMouseEventHelper::GetButton(&ev);
if (MouseKey == csmbLeft)
{
player_health++;
}
if (MouseKey == csmbRight)
{
player_health--;
}
if (MouseKey == csmbMiddle)
{
player_health = 0;
}
}
}
event registration:
bool Time::OnInitialize(int /*argc*/, char* /*argv*/[])
{
...
csBaseEventHandler::Initialize(GetObjectRegistry());
if (!RegisterQueue(GetObjectRegistry(), csevAllEvents(GetObjectRegistry())))
return ReportError("Failed to set up event handler!");
...
}
thanks :/