Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/gameengine/BlenderRoutines')
-rw-r--r--source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp1
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h166
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp3
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h2
4 files changed, 7 insertions, 165 deletions
diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
index 360a082b03b..445f2b8f0ba 100644
--- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
+++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
@@ -241,6 +241,7 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *c
ketsjiengine->SetUseFixedTime(usefixed);
ketsjiengine->SetTimingDisplay(frameRate, profile, properties);
ketsjiengine->SetRestrictAnimationFPS(restrictAnimFPS);
+ KX_KetsjiEngine::SetExitKey(ConvertKeyCode(startscene->gm.exitkey));
//set the global settings (carried over if restart/load new files)
ketsjiengine->SetGlobalSettings(&gs);
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h
index 1c91f498d32..93bf133635d 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderInputDevice.h
@@ -41,6 +41,7 @@
#include "wm_event_types.h"
#include "WM_types.h"
#include "SCA_IInputDevice.h"
+#include "BL_BlenderDataConversion.h"
#ifdef WITH_CXX_GUARDEDALLOC
#include "MEM_guardedalloc.h"
@@ -51,172 +52,9 @@
*/
class BL_BlenderInputDevice : public SCA_IInputDevice
{
- // this map is Blender specific: a conversion between blender and ketsji enums
- std::map<int,KX_EnumInputs> m_reverseKeyTranslateTable;
public:
BL_BlenderInputDevice()
{
-
- /* The reverse table. In order to not confuse ourselves, we */
- /* immediately convert all events that come in to KX codes. */
- m_reverseKeyTranslateTable[LEFTMOUSE ] = KX_LEFTMOUSE;
- m_reverseKeyTranslateTable[MIDDLEMOUSE ] = KX_MIDDLEMOUSE;
- m_reverseKeyTranslateTable[RIGHTMOUSE ] = KX_RIGHTMOUSE;
- m_reverseKeyTranslateTable[WHEELUPMOUSE ] = KX_WHEELUPMOUSE;
- m_reverseKeyTranslateTable[WHEELDOWNMOUSE ] = KX_WHEELDOWNMOUSE;
- m_reverseKeyTranslateTable[MOUSEX ] = KX_MOUSEX;
- m_reverseKeyTranslateTable[MOUSEY ] = KX_MOUSEY;
-
- // TIMERS
-
- m_reverseKeyTranslateTable[TIMER0 ] = KX_TIMER0;
- m_reverseKeyTranslateTable[TIMER1 ] = KX_TIMER1;
- m_reverseKeyTranslateTable[TIMER2 ] = KX_TIMER2;
-
- // SYSTEM
-#if 0
- /* **** XXX **** */
- m_reverseKeyTranslateTable[KEYBD ] = KX_KEYBD;
- m_reverseKeyTranslateTable[RAWKEYBD ] = KX_RAWKEYBD;
- m_reverseKeyTranslateTable[REDRAW ] = KX_REDRAW;
- m_reverseKeyTranslateTable[INPUTCHANGE ] = KX_INPUTCHANGE;
- m_reverseKeyTranslateTable[QFULL ] = KX_QFULL;
- m_reverseKeyTranslateTable[WINFREEZE ] = KX_WINFREEZE;
- m_reverseKeyTranslateTable[WINTHAW ] = KX_WINTHAW;
- m_reverseKeyTranslateTable[WINCLOSE ] = KX_WINCLOSE;
- m_reverseKeyTranslateTable[WINQUIT ] = KX_WINQUIT;
- m_reverseKeyTranslateTable[Q_FIRSTTIME ] = KX_Q_FIRSTTIME;
- /* **** XXX **** */
-#endif
- // standard keyboard
-
- m_reverseKeyTranslateTable[AKEY ] = KX_AKEY;
- m_reverseKeyTranslateTable[BKEY ] = KX_BKEY;
- m_reverseKeyTranslateTable[CKEY ] = KX_CKEY;
- m_reverseKeyTranslateTable[DKEY ] = KX_DKEY;
- m_reverseKeyTranslateTable[EKEY ] = KX_EKEY;
- m_reverseKeyTranslateTable[FKEY ] = KX_FKEY;
- m_reverseKeyTranslateTable[GKEY ] = KX_GKEY;
- //XXX clean up
-#ifdef WIN32
-#define HKEY 'h'
-#endif
- m_reverseKeyTranslateTable[HKEY ] = KX_HKEY;
- //XXX clean up
-#ifdef WIN32
-#undef HKEY
-#endif
- m_reverseKeyTranslateTable[IKEY ] = KX_IKEY;
- m_reverseKeyTranslateTable[JKEY ] = KX_JKEY;
- m_reverseKeyTranslateTable[KKEY ] = KX_KKEY;
- m_reverseKeyTranslateTable[LKEY ] = KX_LKEY;
- m_reverseKeyTranslateTable[MKEY ] = KX_MKEY;
- m_reverseKeyTranslateTable[NKEY ] = KX_NKEY;
- m_reverseKeyTranslateTable[OKEY ] = KX_OKEY;
- m_reverseKeyTranslateTable[PKEY ] = KX_PKEY;
- m_reverseKeyTranslateTable[QKEY ] = KX_QKEY;
- m_reverseKeyTranslateTable[RKEY ] = KX_RKEY;
- m_reverseKeyTranslateTable[SKEY ] = KX_SKEY;
- m_reverseKeyTranslateTable[TKEY ] = KX_TKEY;
- m_reverseKeyTranslateTable[UKEY ] = KX_UKEY;
- m_reverseKeyTranslateTable[VKEY ] = KX_VKEY;
- m_reverseKeyTranslateTable[WKEY ] = KX_WKEY;
- m_reverseKeyTranslateTable[XKEY ] = KX_XKEY;
- m_reverseKeyTranslateTable[YKEY ] = KX_YKEY;
- m_reverseKeyTranslateTable[ZKEY ] = KX_ZKEY;
-
- m_reverseKeyTranslateTable[ZEROKEY ] = KX_ZEROKEY;
- m_reverseKeyTranslateTable[ONEKEY ] = KX_ONEKEY;
- m_reverseKeyTranslateTable[TWOKEY ] = KX_TWOKEY;
- m_reverseKeyTranslateTable[THREEKEY ] = KX_THREEKEY;
- m_reverseKeyTranslateTable[FOURKEY ] = KX_FOURKEY;
- m_reverseKeyTranslateTable[FIVEKEY ] = KX_FIVEKEY;
- m_reverseKeyTranslateTable[SIXKEY ] = KX_SIXKEY;
- m_reverseKeyTranslateTable[SEVENKEY ] = KX_SEVENKEY;
- m_reverseKeyTranslateTable[EIGHTKEY ] = KX_EIGHTKEY;
- m_reverseKeyTranslateTable[NINEKEY ] = KX_NINEKEY;
-
- m_reverseKeyTranslateTable[CAPSLOCKKEY ] = KX_CAPSLOCKKEY;
-
- m_reverseKeyTranslateTable[LEFTCTRLKEY ] = KX_LEFTCTRLKEY;
- m_reverseKeyTranslateTable[LEFTALTKEY ] = KX_LEFTALTKEY;
- m_reverseKeyTranslateTable[RIGHTALTKEY ] = KX_RIGHTALTKEY;
- m_reverseKeyTranslateTable[RIGHTCTRLKEY ] = KX_RIGHTCTRLKEY;
- m_reverseKeyTranslateTable[RIGHTSHIFTKEY ] = KX_RIGHTSHIFTKEY;
- m_reverseKeyTranslateTable[LEFTSHIFTKEY ] = KX_LEFTSHIFTKEY;
-
- m_reverseKeyTranslateTable[ESCKEY ] = KX_ESCKEY;
- m_reverseKeyTranslateTable[TABKEY ] = KX_TABKEY;
- m_reverseKeyTranslateTable[RETKEY ] = KX_RETKEY;
- m_reverseKeyTranslateTable[SPACEKEY ] = KX_SPACEKEY;
- m_reverseKeyTranslateTable[LINEFEEDKEY ] = KX_LINEFEEDKEY;
- m_reverseKeyTranslateTable[BACKSPACEKEY ] = KX_BACKSPACEKEY;
- m_reverseKeyTranslateTable[DELKEY ] = KX_DELKEY;
- m_reverseKeyTranslateTable[SEMICOLONKEY ] = KX_SEMICOLONKEY;
- m_reverseKeyTranslateTable[PERIODKEY ] = KX_PERIODKEY;
- m_reverseKeyTranslateTable[COMMAKEY ] = KX_COMMAKEY;
- m_reverseKeyTranslateTable[QUOTEKEY ] = KX_QUOTEKEY;
- m_reverseKeyTranslateTable[ACCENTGRAVEKEY ] = KX_ACCENTGRAVEKEY;
- m_reverseKeyTranslateTable[MINUSKEY ] = KX_MINUSKEY;
- m_reverseKeyTranslateTable[SLASHKEY ] = KX_SLASHKEY;
- m_reverseKeyTranslateTable[BACKSLASHKEY ] = KX_BACKSLASHKEY;
- m_reverseKeyTranslateTable[EQUALKEY ] = KX_EQUALKEY;
- m_reverseKeyTranslateTable[LEFTBRACKETKEY ] = KX_LEFTBRACKETKEY;
- m_reverseKeyTranslateTable[RIGHTBRACKETKEY ] = KX_RIGHTBRACKETKEY;
-
- m_reverseKeyTranslateTable[LEFTARROWKEY ] = KX_LEFTARROWKEY;
- m_reverseKeyTranslateTable[DOWNARROWKEY ] = KX_DOWNARROWKEY;
- m_reverseKeyTranslateTable[RIGHTARROWKEY ] = KX_RIGHTARROWKEY;
- m_reverseKeyTranslateTable[UPARROWKEY ] = KX_UPARROWKEY;
-
- m_reverseKeyTranslateTable[PAD2 ] = KX_PAD2;
- m_reverseKeyTranslateTable[PAD4 ] = KX_PAD4;
- m_reverseKeyTranslateTable[PAD6 ] = KX_PAD6;
- m_reverseKeyTranslateTable[PAD8 ] = KX_PAD8;
-
- m_reverseKeyTranslateTable[PAD1 ] = KX_PAD1;
- m_reverseKeyTranslateTable[PAD3 ] = KX_PAD3;
- m_reverseKeyTranslateTable[PAD5 ] = KX_PAD5;
- m_reverseKeyTranslateTable[PAD7 ] = KX_PAD7;
- m_reverseKeyTranslateTable[PAD9 ] = KX_PAD9;
-
- m_reverseKeyTranslateTable[PADPERIOD ] = KX_PADPERIOD;
- m_reverseKeyTranslateTable[PADSLASHKEY ] = KX_PADSLASHKEY;
- m_reverseKeyTranslateTable[PADASTERKEY ] = KX_PADASTERKEY;
-
-
- m_reverseKeyTranslateTable[PAD0 ] = KX_PAD0;
- m_reverseKeyTranslateTable[PADMINUS ] = KX_PADMINUS;
- m_reverseKeyTranslateTable[PADENTER ] = KX_PADENTER;
- m_reverseKeyTranslateTable[PADPLUSKEY ] = KX_PADPLUSKEY;
-
-
- m_reverseKeyTranslateTable[F1KEY ] = KX_F1KEY;
- m_reverseKeyTranslateTable[F2KEY ] = KX_F2KEY;
- m_reverseKeyTranslateTable[F3KEY ] = KX_F3KEY;
- m_reverseKeyTranslateTable[F4KEY ] = KX_F4KEY;
- m_reverseKeyTranslateTable[F5KEY ] = KX_F5KEY;
- m_reverseKeyTranslateTable[F6KEY ] = KX_F6KEY;
- m_reverseKeyTranslateTable[F7KEY ] = KX_F7KEY;
- m_reverseKeyTranslateTable[F8KEY ] = KX_F8KEY;
- m_reverseKeyTranslateTable[F9KEY ] = KX_F9KEY;
- m_reverseKeyTranslateTable[F10KEY ] = KX_F10KEY;
- m_reverseKeyTranslateTable[F11KEY ] = KX_F11KEY;
- m_reverseKeyTranslateTable[F12KEY ] = KX_F12KEY;
- m_reverseKeyTranslateTable[F13KEY ] = KX_F13KEY;
- m_reverseKeyTranslateTable[F14KEY ] = KX_F14KEY;
- m_reverseKeyTranslateTable[F15KEY ] = KX_F15KEY;
- m_reverseKeyTranslateTable[F16KEY ] = KX_F16KEY;
- m_reverseKeyTranslateTable[F17KEY ] = KX_F17KEY;
- m_reverseKeyTranslateTable[F18KEY ] = KX_F18KEY;
- m_reverseKeyTranslateTable[F19KEY ] = KX_F19KEY;
-
- m_reverseKeyTranslateTable[PAUSEKEY ] = KX_PAUSEKEY;
- m_reverseKeyTranslateTable[INSERTKEY ] = KX_INSERTKEY;
- m_reverseKeyTranslateTable[HOMEKEY ] = KX_HOMEKEY;
- m_reverseKeyTranslateTable[PAGEUPKEY ] = KX_PAGEUPKEY;
- m_reverseKeyTranslateTable[PAGEDOWNKEY ] = KX_PAGEDOWNKEY;
- m_reverseKeyTranslateTable[ENDKEY ] = KX_ENDKEY;
}
virtual ~BL_BlenderInputDevice()
@@ -225,7 +63,7 @@ public:
}
KX_EnumInputs ToNative(unsigned short incode) {
- return m_reverseKeyTranslateTable[incode];
+ return ConvertKeyCode(incode);
}
virtual bool IsPressed(SCA_IInputDevice::KX_EnumInputs inputcode)=0;
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
index a6712c531fb..54c60096812 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.cpp
@@ -36,6 +36,7 @@
#endif
#include "KX_BlenderKeyboardDevice.h"
+#include "KX_KetsjiEngine.h"
KX_BlenderKeyboardDevice::KX_BlenderKeyboardDevice()
: m_hookesc(false)
@@ -106,7 +107,7 @@ bool KX_BlenderKeyboardDevice::ConvertBlenderEvent(unsigned short incode,short v
if (val == KM_PRESS)
{
- if (kxevent == KX_ESCKEY && val != 0 && !m_hookesc)
+ if (kxevent == KX_KetsjiEngine::GetExitKey() && val != 0 && !m_hookesc)
result = true;
if (kxevent == KX_PAUSEKEY && val && (IsPressed(KX_LEFTCTRLKEY) || IsPressed(KX_RIGHTCTRLKEY)))
result = true;
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
index 63a01db2fe0..3039e69efcd 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderKeyboardDevice.h
@@ -50,6 +50,8 @@ public:
virtual bool ConvertBlenderEvent(unsigned short incode,short val);
virtual void NextFrame();
virtual void HookEscape();
+private:
+ short m_exit_key;
#ifdef WITH_CXX_GUARDEDALLOC