aboutsummaryrefslogtreecommitdiff
path: root/src/client/callbackhandeler.cpp
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2017-04-10 19:55:02 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2017-04-10 19:55:02 -0400
commitbced528a07a2ff1591455e4c4228ec18f8e0532d (patch)
tree7686a11b6276f56eabde0bffb8716a7b1df72e29 /src/client/callbackhandeler.cpp
parentd2b36e6c65ec8126c0ebc96adb7e011e78a5eacc (diff)
downloadbrokengine-bced528a07a2ff1591455e4c4228ec18f8e0532d.tar.gz
brokengine-bced528a07a2ff1591455e4c4228ec18f8e0532d.tar.bz2
brokengine-bced528a07a2ff1591455e4c4228ec18f8e0532d.zip
Added getpos and setpos functions for scene nodes
Diffstat (limited to 'src/client/callbackhandeler.cpp')
-rw-r--r--src/client/callbackhandeler.cpp43
1 files changed, 27 insertions, 16 deletions
diff --git a/src/client/callbackhandeler.cpp b/src/client/callbackhandeler.cpp
index f39f4ca..5e5e407 100644
--- a/src/client/callbackhandeler.cpp
+++ b/src/client/callbackhandeler.cpp
@@ -15,6 +15,8 @@ using namespace irr;
using namespace gui;
using namespace std;
+extern lua_State* L;
+
std::map<IGUIElement*,std::map<EGUI_EVENT_TYPE, void(*)(irr::SEvent)> > guifuncs;
//IrrlichtDevice* device;
@@ -31,24 +33,33 @@ bool GlobalEventReceiver::OnEvent(const SEvent& e){
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...\n");
- if (
- guifuncs.find(caller) != guifuncs.end() &&
- guifuncs[caller].find(get) != guifuncs[caller].end()){
- guifuncs[caller][get](e);
- printf("sucessfully called a gui event\n");
- return true;
- }
- return false;
- break;
+ IGUIElement* caller = e.GUIEvent.Caller;
+ EGUI_EVENT_TYPE get = e.GUIEvent.EventType;
+ printf("detected gui event...\n");
+ bool callerregistered = guifuncs.find(caller) != guifuncs.end();
+ bool callerhasfunc = guifuncs[caller].find(get) != guifuncs[caller].end();
+ if (callerregistered && callerhasfunc){
+ guifuncs[caller][get](e);
+ printf("sucessfully called a gui event\n");
+ return true;
+ }
+ return false;
+ break;
}
- case EET_MOUSE_INPUT_EVENT:{
-
- }
+ 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");
+ //printf("Called an unknown event\n");
return false;
}
}