summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actions/commands.cpp14
-rw-r--r--src/actions/commands.h1
-rw-r--r--src/input/inputaction.h1
-rw-r--r--src/input/inputactionmap.h9
4 files changed, 25 insertions, 0 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp
index eb10e8a77..dd93da0e8 100644
--- a/src/actions/commands.cpp
+++ b/src/actions/commands.cpp
@@ -34,6 +34,7 @@
#include "being/playerrelations.h"
#include "gui/chatconsts.h"
+#include "gui/viewport.h"
#include "gui/windows/chatwindow.h"
#include "gui/windows/socialwindow.h"
@@ -472,6 +473,19 @@ impHandler(navigateTo)
return true;
}
+impHandler(moveCamera)
+{
+ int x = 0;
+ int y = 0;
+
+ if (!viewport)
+ return false;
+
+ if (parse2Int(event.args, x, y))
+ viewport->moveCameraToPosition(x * mapTileSize, y * mapTileSize);
+ return true;
+}
+
impHandler(imitation)
{
if (!localPlayer)
diff --git a/src/actions/commands.h b/src/actions/commands.h
index a8143275b..0aa226cb8 100644
--- a/src/actions/commands.h
+++ b/src/actions/commands.h
@@ -50,6 +50,7 @@ namespace Actions
decHandler(follow);
decHandler(navigate);
decHandler(navigateTo);
+ decHandler(moveCamera);
decHandler(imitation);
decHandler(sendMail);
decHandler(info);
diff --git a/src/input/inputaction.h b/src/input/inputaction.h
index f7b061e88..fb5db9913 100644
--- a/src/input/inputaction.h
+++ b/src/input/inputaction.h
@@ -499,6 +499,7 @@ namespace InputAction
CHAT_ADD,
WHISPER_TEXT,
NAVIGATE_TO,
+ CAMERA_MOVE,
TOTAL
};
} // namespace InputAction
diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h
index e9457058b..4b9d61047 100644
--- a/src/input/inputactionmap.h
+++ b/src/input/inputactionmap.h
@@ -4234,6 +4234,15 @@ static const InputActionData inputActionData[InputAction::TOTAL] = {
InputCondition::INGAME,
"navigateto",
true},
+ {"keyCameraMove",
+ InputType::UNKNOWN, InputAction::NO_VALUE,
+ InputType::UNKNOWN, InputAction::NO_VALUE,
+ Input::GRP_DEFAULT,
+ &Actions::moveCamera,
+ InputAction::NO_VALUE, 50,
+ InputCondition::INGAME,
+ "movecamera|cameramove",
+ true},
};
#endif // INPUT_INPUTACTIONMAP_H