diff options
Diffstat (limited to 'source/gameengine/Converter/KX_ConvertActuators.cpp')
-rw-r--r-- | source/gameengine/Converter/KX_ConvertActuators.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp index 7d5527d4cbb..45fc11b97d2 100644 --- a/source/gameengine/Converter/KX_ConvertActuators.cpp +++ b/source/gameengine/Converter/KX_ConvertActuators.cpp @@ -70,6 +70,7 @@ #include "KX_ParentActuator.h" #include "KX_SCA_DynamicActuator.h" #include "KX_SteeringActuator.h" +#include "KX_MouseActuator.h" #include "KX_Scene.h" #include "KX_KetsjiEngine.h" @@ -1094,6 +1095,50 @@ void BL_ConvertActuators(const char* maggiename, baseact = tmpstact; break; } + case ACT_MOUSE: + { + bMouseActuator* mouAct = (bMouseActuator*) bact->data; + int mode = KX_MouseActuator::KX_ACT_MOUSE_NODEF; + + switch (mouAct->type) { + case ACT_MOUSE_VISIBILITY: + { + mode = KX_MouseActuator::KX_ACT_MOUSE_VISIBILITY; + break; + } + case ACT_MOUSE_LOOK: + { + mode = KX_MouseActuator::KX_ACT_MOUSE_LOOK; + break; + } + } + + bool visible = (mouAct->flag & ACT_MOUSE_VISIBLE) != 0; + bool use_axis[2] = {(mouAct->flag & ACT_MOUSE_USE_AXIS_X) != 0, (mouAct->flag & ACT_MOUSE_USE_AXIS_Y) != 0}; + bool reset[2] = {(mouAct->flag & ACT_MOUSE_RESET_X) != 0, (mouAct->flag & ACT_MOUSE_RESET_Y) != 0}; + bool local[2] = {(mouAct->flag & ACT_MOUSE_LOCAL_X) != 0, (mouAct->flag & ACT_MOUSE_LOCAL_Y) != 0}; + + SCA_MouseManager* eventmgr = (SCA_MouseManager*) logicmgr->FindEventManager(SCA_EventManager::MOUSE_EVENTMGR); + if (eventmgr) { + KX_MouseActuator* tmpbaseact = new KX_MouseActuator(gameobj, + ketsjiEngine, + eventmgr, + mode, + visible, + use_axis, + mouAct->threshold, + reset, + mouAct->object_axis, + local, + mouAct->sensitivity, + mouAct->limit_x, + mouAct->limit_y); + baseact = tmpbaseact; + } else { + //cout << "\n Couldn't find mouse event manager..."; - should throw an error here... + } + break; + } default: ; /* generate some error */ } |