[colobot] 95/145: Added camera keybindings (#653)

Didier Raboud odyx at moszumanska.debian.org
Mon Jul 11 12:56:21 UTC 2016


This is an automated email from the git hooks/post-receive script.

odyx pushed a commit to branch debian/master
in repository colobot.

commit 2dd7ba7e9b36ec87f5612470fab121045673fb17
Author: krzys-h <krzys_h at interia.pl>
Date:   Sat May 28 15:40:54 2016 +0200

    Added camera keybindings (#653)
---
 po/colobot.pot                 | 15 +++++++++++++++
 po/de.po                       | 19 +++++++++++++++++++
 po/fr.po                       | 19 +++++++++++++++++++
 po/pl.po                       | 15 +++++++++++++++
 po/ru.po                       | 19 +++++++++++++++++++
 src/app/input.cpp              | 42 ++++++++++++++++++++++++++++--------------
 src/common/key.h               |  9 +++++++--
 src/common/restext.cpp         |  9 +++++++--
 src/graphics/engine/camera.cpp |  7 +------
 9 files changed, 130 insertions(+), 24 deletions(-)

diff --git a/po/colobot.pot b/po/colobot.pot
index 08625b6..1b62449 100644
--- a/po/colobot.pot
+++ b/po/colobot.pot
@@ -461,12 +461,27 @@ msgstr ""
 msgid "Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)"
 msgstr ""
 
+msgid "Camera left\\Turns the camera left"
+msgstr ""
+
+msgid "Camera right\\Turns the camera right"
+msgstr ""
+
+msgid "Camera up\\Turns the camera up"
+msgstr ""
+
+msgid "Camera down\\Turns the camera down"
+msgstr ""
+
 msgid "Camera closer\\Moves the camera forward"
 msgstr ""
 
 msgid "Camera back\\Moves the camera backward"
 msgstr ""
 
+msgid "Alternative camera mode\\Move sideways instead of rotating (in free camera)"
+msgstr ""
+
 msgid "Next object\\Selects the next object"
 msgstr ""
 
diff --git a/po/de.po b/po/de.po
index c49e5cf..453d152 100644
--- a/po/de.po
+++ b/po/de.po
@@ -115,6 +115,9 @@ msgstr "Insektenkönigin tödlich verwundet"
 msgid "Already carrying something"
 msgstr "Trägt schon etwas"
 
+msgid "Alternative camera mode\\Move sideways instead of rotating (in free camera)"
+msgstr ""
+
 msgid "Analysis already performed"
 msgstr "Analyse schon durchgeführt"
 
@@ -330,15 +333,31 @@ msgstr "Kameradrehung mit der Maus\\Die Kamera dreht wenn die Maus den Rand erre
 msgid "Camera closer\\Moves the camera forward"
 msgstr "Kamera näher\\Bewegung der Kamera vorwärts"
 
+#, fuzzy
+msgid "Camera down\\Turns the camera down"
+msgstr "Kamera näher\\Bewegung der Kamera vorwärts"
+
+#, fuzzy
+msgid "Camera left\\Turns the camera left"
+msgstr "Kamera näher\\Bewegung der Kamera vorwärts"
+
 msgid "Camera nearest"
 msgstr "Kamera näher"
 
+#, fuzzy
+msgid "Camera right\\Turns the camera right"
+msgstr "Drehung nach rechts\\Steuer rechts"
+
 msgid "Camera to left"
 msgstr "Kamera links"
 
 msgid "Camera to right"
 msgstr "Kamera rechts"
 
+#, fuzzy
+msgid "Camera up\\Turns the camera up"
+msgstr "Kamera (\\key camera;)"
+
 msgid "Can not produce not researched object"
 msgstr "Das erforschte Objekt kann nicht produziert werden"
 
diff --git a/po/fr.po b/po/fr.po
index 880f1d0..4d91974 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -108,6 +108,9 @@ msgstr "Pondeuse mortellement touchée"
 msgid "Already carrying something"
 msgstr "Porte déjà quelque chose"
 
+msgid "Alternative camera mode\\Move sideways instead of rotating (in free camera)"
+msgstr ""
+
 msgid "Analysis already performed"
 msgstr "Analyse déjà effectuée"
 
@@ -321,15 +324,31 @@ msgstr "Défilement dans les bords\\Défilement lorsque la souris touche les bor
 msgid "Camera closer\\Moves the camera forward"
 msgstr "Caméra plus proche\\Avance la caméra"
 
+#, fuzzy
+msgid "Camera down\\Turns the camera down"
+msgstr "Caméra plus proche\\Avance la caméra"
+
+#, fuzzy
+msgid "Camera left\\Turns the camera left"
+msgstr "Caméra plus proche\\Avance la caméra"
+
 msgid "Camera nearest"
 msgstr "Caméra plus proche"
 
+#, fuzzy
+msgid "Camera right\\Turns the camera right"
+msgstr "Tourner à droite\\Moteur à droite"
+
 msgid "Camera to left"
 msgstr "Caméra à gauche"
 
 msgid "Camera to right"
 msgstr "Caméra à droite"
 
+#, fuzzy
+msgid "Camera up\\Turns the camera up"
+msgstr "Caméra (\\key camera;)"
+
 msgid "Can not produce not researched object"
 msgstr "Impossible de créer un objet n'ayant pas été recherché"
 
diff --git a/po/pl.po b/po/pl.po
index 6796728..68cd35a 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -111,6 +111,9 @@ msgstr "Królowa Obcych została zabita"
 msgid "Already carrying something"
 msgstr "Nie można nieść więcej przedmiotów"
 
+msgid "Alternative camera mode\\Move sideways instead of rotating (in free camera)"
+msgstr "Alternatywny tryb kamery\\Poruszaj na boki zamiast obracać (w kamerze swobodnej)"
+
 msgid "Analysis already performed"
 msgstr "Analiza została już wykonana"
 
@@ -324,15 +327,27 @@ msgstr "Przewijanie kamery przy krawędzi\\Ekran jest przewijany gdy mysz dotkni
 msgid "Camera closer\\Moves the camera forward"
 msgstr "Kamera bliżej\\Przybliża kamerę"
 
+msgid "Camera down\\Turns the camera down"
+msgstr "Kamera w dół\\Obraca kamerę w dół"
+
+msgid "Camera left\\Turns the camera left"
+msgstr "Kamera w lewo\\Obraca kamerę w lewo"
+
 msgid "Camera nearest"
 msgstr "Camera nearest"
 
+msgid "Camera right\\Turns the camera right"
+msgstr "Kamera w prawo\\Obróć kamerę w prawo"
+
 msgid "Camera to left"
 msgstr "Camera to left"
 
 msgid "Camera to right"
 msgstr "Camera to right"
 
+msgid "Camera up\\Turns the camera up"
+msgstr "Kamera w górę\\Obróć kamerę w górę"
+
 msgid "Can not produce not researched object"
 msgstr "Nie można wyprodukować nie wynalezionego obiektu"
 
diff --git a/po/ru.po b/po/ru.po
index 563ba00..d6d4d05 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -113,6 +113,9 @@ msgstr "Королева чужих убита"
 msgid "Already carrying something"
 msgstr "Уже что-то несу"
 
+msgid "Alternative camera mode\\Move sideways instead of rotating (in free camera)"
+msgstr ""
+
 msgid "Analysis already performed"
 msgstr "Анализ уже выполнен"
 
@@ -328,15 +331,31 @@ msgstr "Прокрутка\\Прокрутка, когда указатель м
 msgid "Camera closer\\Moves the camera forward"
 msgstr "Приблизать камеру\\Перемещение камеры вперед"
 
+#, fuzzy
+msgid "Camera down\\Turns the camera down"
+msgstr "Приблизать камеру\\Перемещение камеры вперед"
+
+#, fuzzy
+msgid "Camera left\\Turns the camera left"
+msgstr "Приблизать камеру\\Перемещение камеры вперед"
+
 msgid "Camera nearest"
 msgstr "Приблизить камеру"
 
+#, fuzzy
+msgid "Camera right\\Turns the camera right"
+msgstr "Повернуть налево\\Поворот налево"
+
 msgid "Camera to left"
 msgstr "Камеру влево"
 
 msgid "Camera to right"
 msgstr "Камеру вправо"
 
+#, fuzzy
+msgid "Camera up\\Turns the camera up"
+msgstr "Камера (\\key camera;)"
+
 msgid "Can not produce not researched object"
 msgstr ""
 
diff --git a/src/app/input.cpp b/src/app/input.cpp
index 62bad06..87cedf3 100644
--- a/src/app/input.cpp
+++ b/src/app/input.cpp
@@ -49,8 +49,13 @@ CInput::CInput()
         { INPUT_SLOT_CAMERA,   "camera"  },
         { INPUT_SLOT_DESEL,    "desel"   },
         { INPUT_SLOT_ACTION,   "action"  },
-        { INPUT_SLOT_NEAR,     "near"    },
-        { INPUT_SLOT_AWAY,     "away"    },
+        { INPUT_SLOT_CAM_LEFT, "cleft"   },
+        { INPUT_SLOT_CAM_RIGHT,"cright"  },
+        { INPUT_SLOT_CAM_UP,   "cup"     },
+        { INPUT_SLOT_CAM_DOWN, "cdown"   },
+        { INPUT_SLOT_CAM_NEAR, "near"    },
+        { INPUT_SLOT_CAM_AWAY, "away"    },
+        { INPUT_SLOT_CAM_ALT,  "camalt"  },
         { INPUT_SLOT_NEXT,     "next"    },
         { INPUT_SLOT_HUMAN,    "human"   },
         { INPUT_SLOT_QUIT,     "quit"    },
@@ -64,8 +69,8 @@ CInput::CInput()
         { INPUT_SLOT_SPEED30,  "speed30" },
         { INPUT_SLOT_SPEED40,  "speed40" },
         { INPUT_SLOT_SPEED60,  "speed60" },
-        { INPUT_SLOT_PAUSE,    "pause" },
-        { INPUT_SLOT_CMDLINE,    "cmdline" },
+        { INPUT_SLOT_PAUSE,    "pause"   },
+        { INPUT_SLOT_CMDLINE,  "cmdline" },
     };
 
     m_mousePos = Math::Point();
@@ -125,10 +130,12 @@ void CInput::EventProcess(Event& event)
         if (data->slot == INPUT_SLOT_GUP  ) m_keyMotion.z =  1.0f;
         if (data->slot == INPUT_SLOT_GDOWN) m_keyMotion.z = -1.0f;
 
-        if (data->key  == KEY(KP_4)             ) m_cameraKeyMotion.x = -1.0f;
-        if (data->key  == KEY(KP_6)             ) m_cameraKeyMotion.x =  1.0f;
-        if (data->key  == KEY(KP_8)             ) m_cameraKeyMotion.y =  1.0f;
-        if (data->key  == KEY(KP_2)             ) m_cameraKeyMotion.y = -1.0f;
+        if (data->slot == INPUT_SLOT_CAM_LEFT ) m_cameraKeyMotion.x = -1.0f;
+        if (data->slot == INPUT_SLOT_CAM_RIGHT) m_cameraKeyMotion.x =  1.0f;
+        if (data->slot == INPUT_SLOT_CAM_UP   ) m_cameraKeyMotion.y =  1.0f;
+        if (data->slot == INPUT_SLOT_CAM_DOWN ) m_cameraKeyMotion.y = -1.0f;
+        if (data->slot == INPUT_SLOT_CAM_NEAR ) m_cameraKeyMotion.z = -1.0f;
+        if (data->slot == INPUT_SLOT_CAM_AWAY ) m_cameraKeyMotion.z =  1.0f;
     }
     else if (event.type == EVENT_KEY_UP)
     {
@@ -141,10 +148,12 @@ void CInput::EventProcess(Event& event)
         if (data->slot == INPUT_SLOT_GUP  ) m_keyMotion.z = 0.0f;
         if (data->slot == INPUT_SLOT_GDOWN) m_keyMotion.z = 0.0f;
 
-        if (data->key  == KEY(KP_4)             ) m_cameraKeyMotion.x = 0.0f;
-        if (data->key  == KEY(KP_6)             ) m_cameraKeyMotion.x = 0.0f;
-        if (data->key  == KEY(KP_8)             ) m_cameraKeyMotion.y = 0.0f;
-        if (data->key  == KEY(KP_2)             ) m_cameraKeyMotion.y = 0.0f;
+        if (data->slot == INPUT_SLOT_CAM_LEFT ) m_cameraKeyMotion.x = 0.0f;
+        if (data->slot == INPUT_SLOT_CAM_RIGHT) m_cameraKeyMotion.x = 0.0f;
+        if (data->slot == INPUT_SLOT_CAM_UP   ) m_cameraKeyMotion.y = 0.0f;
+        if (data->slot == INPUT_SLOT_CAM_DOWN ) m_cameraKeyMotion.y = 0.0f;
+        if (data->slot == INPUT_SLOT_CAM_NEAR ) m_cameraKeyMotion.z = 0.0f;
+        if (data->slot == INPUT_SLOT_CAM_AWAY ) m_cameraKeyMotion.z = 0.0f;
     }
     else if (event.type == EVENT_JOY_AXIS)
     {
@@ -255,8 +264,13 @@ void CInput::SetDefaultInputBindings()
     m_inputBindings[INPUT_SLOT_DESEL  ].primary   = KEY(KP_0);
     m_inputBindings[INPUT_SLOT_ACTION ].primary   = KEY(RETURN);
     m_inputBindings[INPUT_SLOT_ACTION ].secondary = KEY(e);
-    m_inputBindings[INPUT_SLOT_NEAR   ].primary   = KEY(KP_PLUS);
-    m_inputBindings[INPUT_SLOT_AWAY   ].primary   = KEY(KP_MINUS);
+    m_inputBindings[INPUT_SLOT_CAM_LEFT ].primary = KEY(KP_4);
+    m_inputBindings[INPUT_SLOT_CAM_RIGHT].primary = KEY(KP_6);
+    m_inputBindings[INPUT_SLOT_CAM_UP   ].primary = KEY(KP_8);
+    m_inputBindings[INPUT_SLOT_CAM_DOWN ].primary = KEY(KP_2);
+    m_inputBindings[INPUT_SLOT_CAM_NEAR ].primary = KEY(KP_PLUS);
+    m_inputBindings[INPUT_SLOT_CAM_AWAY ].primary = KEY(KP_MINUS);
+    m_inputBindings[INPUT_SLOT_CAM_ALT  ].primary = VIRTUAL_KMOD(ALT);
     m_inputBindings[INPUT_SLOT_NEXT   ].primary   = KEY(TAB);
     m_inputBindings[INPUT_SLOT_HUMAN  ].primary   = KEY(HOME);
     m_inputBindings[INPUT_SLOT_QUIT   ].primary   = KEY(ESCAPE);
diff --git a/src/common/key.h b/src/common/key.h
index f1209ed..d249860 100644
--- a/src/common/key.h
+++ b/src/common/key.h
@@ -87,8 +87,13 @@ enum InputSlot
     INPUT_SLOT_CAMERA,
     INPUT_SLOT_DESEL,
     INPUT_SLOT_ACTION,
-    INPUT_SLOT_NEAR,
-    INPUT_SLOT_AWAY,
+    INPUT_SLOT_CAM_LEFT,
+    INPUT_SLOT_CAM_RIGHT,
+    INPUT_SLOT_CAM_UP,
+    INPUT_SLOT_CAM_DOWN,
+    INPUT_SLOT_CAM_NEAR,
+    INPUT_SLOT_CAM_AWAY,
+    INPUT_SLOT_CAM_ALT,
     INPUT_SLOT_NEXT,
     INPUT_SLOT_HUMAN,
     INPUT_SLOT_QUIT,
diff --git a/src/common/restext.cpp b/src/common/restext.cpp
index ec88dc4..a9644a3 100644
--- a/src/common/restext.cpp
+++ b/src/common/restext.cpp
@@ -220,8 +220,13 @@ void InitializeRestext()
     stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_CAMERA]      = TR("Change camera\\Switches between onboard camera and following camera");
     stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_DESEL]       = TR("Previous object\\Selects the previous object");
     stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_ACTION]      = TR("Standard action\\Standard action of the bot (take/grab, shoot, sniff, etc)");
-    stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_NEAR]        = TR("Camera closer\\Moves the camera forward");
-    stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_AWAY]        = TR("Camera back\\Moves the camera backward");
+    stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_CAM_LEFT]    = TR("Camera left\\Turns the camera left");
+    stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_CAM_RIGHT]   = TR("Camera right\\Turns the camera right");
+    stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_CAM_UP]      = TR("Camera up\\Turns the camera up");
+    stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_CAM_DOWN]    = TR("Camera down\\Turns the camera down");
+    stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_CAM_NEAR]    = TR("Camera closer\\Moves the camera forward");
+    stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_CAM_AWAY]    = TR("Camera back\\Moves the camera backward");
+    stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_CAM_ALT]     = TR("Alternative camera mode\\Move sideways instead of rotating (in free camera)");
     stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_NEXT]        = TR("Next object\\Selects the next object");
     stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_HUMAN]       = TR("Select the astronaut\\Selects the astronaut");
     stringsEvent[EVENT_INTERFACE_KEY+INPUT_SLOT_QUIT]        = TR("Quit\\Quit the current mission or exercise");
diff --git a/src/graphics/engine/camera.cpp b/src/graphics/engine/camera.cpp
index 0b6157b..4462613 100644
--- a/src/graphics/engine/camera.cpp
+++ b/src/graphics/engine/camera.cpp
@@ -1210,7 +1210,7 @@ bool CCamera::EventFrameFree(const Event &event, bool keysAllowed)
     Math::Vector cameraMove = CalculateCameraMovement(event, keysAllowed);
 
     float factor = m_heightEye * 0.5f + 30.0f;
-    bool secondary = event.kmodState & KEY_MOD(CTRL) || event.mouseButtonsState & MOUSE_BUTTON_MIDDLE;
+    bool secondary = m_input->GetKeyState(INPUT_SLOT_CAM_ALT) || event.mouseButtonsState & MOUSE_BUTTON_MIDDLE; // TODO: make mouse button a keybinding
 
     // Forward/Backward
     m_eyePt = Math::LookatPoint(m_eyePt, m_directionH, m_directionV, -cameraMove.y * factor * 2);
@@ -1609,11 +1609,6 @@ Math::Vector CCamera::CalculateCameraMovement(const Event &event, bool keysAllow
             delta.y -= event.motionInput.y * event.rTime * 0.5f * m_speed;
             delta.z -= event.motionInput.z * event.rTime * 20.0f * m_speed;
         }
-
-        if (m_input->GetKeyState(INPUT_SLOT_NEAR))
-            delta.z -= event.rTime * 20.0f * m_speed;
-        if (m_input->GetKeyState(INPUT_SLOT_AWAY))
-            delta.z += event.rTime * 20.0f * m_speed;
     }
 
     if (delta.Length() > 0)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/colobot.git



More information about the Pkg-games-commits mailing list