aboutsummaryrefslogtreecommitdiff
path: root/src/client/callbackhandeler.cpp
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2017-12-26 00:57:52 -0500
committerAlexander Pickering <alexandermpickering@gmail.com>2017-12-26 00:57:52 -0500
commit35b7c646fd7f80b64c1ef49b6d81f9df9bc1b940 (patch)
treed345f620b51ae1ad1d7923e572a6b07ed8731ee5 /src/client/callbackhandeler.cpp
parentcc12503339004bae2f945e7f7339fc845b2a194f (diff)
downloadbrokengine-35b7c646fd7f80b64c1ef49b6d81f9df9bc1b940.tar.gz
brokengine-35b7c646fd7f80b64c1ef49b6d81f9df9bc1b940.tar.bz2
brokengine-35b7c646fd7f80b64c1ef49b6d81f9df9bc1b940.zip
Major update
Diffstat (limited to 'src/client/callbackhandeler.cpp')
-rw-r--r--src/client/callbackhandeler.cpp61
1 files changed, 38 insertions, 23 deletions
diff --git a/src/client/callbackhandeler.cpp b/src/client/callbackhandeler.cpp
index 59b5bee..c548624 100644
--- a/src/client/callbackhandeler.cpp
+++ b/src/client/callbackhandeler.cpp
@@ -30,32 +30,47 @@ GlobalEventReceiver::GlobalEventReceiver(IrrlichtDevice* d){
//device = d;
}
bool GlobalEventReceiver::OnEvent(const SEvent& e){
- EEVENT_TYPE type = e.EventType;
+ EEVENT_TYPE type = e.EventType;
switch (type){
case EET_GUI_EVENT:{
- IGUIElement* caller = e.GUIEvent.Caller;
- EGUI_EVENT_TYPE get = e.GUIEvent.EventType;
- printf("detected gui event: %d\n",get);
- bool callerregistered = guifuncs.find(caller) != guifuncs.end();
- bool callerhasfunc = guifuncs[caller].find(get) != guifuncs[caller].end();
- if (callerregistered && callerhasfunc){
- return guifuncs[caller][get](e);
- }
- return false;
- break;
+ IGUIElement* caller = e.GUIEvent.Caller;
+ EGUI_EVENT_TYPE get = e.GUIEvent.EventType;
+ printf("detected gui event: %d\n",get);
+ bool callerregistered = guifuncs.find(caller) != guifuncs.end();
+ bool callerhasfunc = guifuncs[caller].find(get) != guifuncs[caller].end();
+ if (callerregistered && callerhasfunc){
+ return guifuncs[caller][get](e);
+ }
+ return false;
+ break;
+ }
+ case EET_MOUSE_INPUT_EVENT:{
+ SEvent::SMouseInput se = e.MouseInput;
+ //printf("X: %d Y: %d\n",se.X, se.Y);
+
+ lua_getglobal(L,"GAME");
+ lua_getfield(L,-1,"onMouseMove");
+ if(!lua_isnil(L,-1)){
+ lua_pushnumber(L,se.X);
+ lua_pushnumber(L,se.Y);
+ lua_call(L,2,0);
+ }
+ break;
+ }
+ case EET_KEY_INPUT_EVENT:{
+ printf("Got input event\n");
+ SEvent::SKeyInput se = e.KeyInput;
+ lua_getglobal(L,"GAME");//{}
+ lua_getfield(L,-1,"onKeyDown");//{},()|nil
+ if(!lua_isnil(L,-1)){
+ lua_pushnumber(L,se.Key);
+ lua_pushboolean(L,se.PressedDown);
+ lua_pushboolean(L,se.Control);
+ lua_pushboolean(L,se.Shift);
+ lua_call(L,4,0);
+ }
+ break;
}
- case EET_MOUSE_INPUT_EVENT:{
- SEvent::SMouseInput se = e.MouseInput;
- //printf("X: %d Y: %d\n",se.X, se.Y);
-
- lua_getglobal(L,"GAME");
- lua_getfield(L,-1,"onMouseMove");
- if(!lua_isnil(L,-1)){
- lua_pushnumber(L,se.X);
- lua_pushnumber(L,se.Y);
- lua_call(L,2,0);
- }
- }
default:
//printf("Called an unknown event\n");
return false;