diff --git a/src/js/game/camera.js b/src/js/game/camera.js index 1125bf84..9503c839 100644 --- a/src/js/game/camera.js +++ b/src/js/game/camera.js @@ -901,8 +901,12 @@ export class Camera extends BasicSerializableObject { forceX += 1; } - this.center.x += moveAmount * forceX * this.root.app.settings.getMovementSpeed(); - this.center.y += moveAmount * forceY * this.root.app.settings.getMovementSpeed(); + let movementSpeed = this.root.app.settings.getMovementSpeed( + actionMapper.getBinding(KEYMAPPINGS.navigation.fastPan).isCurrentlyPressed() + ); + + this.center.x += moveAmount * forceX * movementSpeed; + this.center.y += moveAmount * forceY * movementSpeed; } } } diff --git a/src/js/game/key_action_mapper.js b/src/js/game/key_action_mapper.js index 58077f01..ea886a7a 100644 --- a/src/js/game/key_action_mapper.js +++ b/src/js/game/key_action_mapper.js @@ -36,6 +36,7 @@ export const KEYMAPPINGS = { centerMap: { keyCode: 32 }, // SPACE mapZoomIn: { keyCode: 187, repeated: true }, // "+" mapZoomOut: { keyCode: 189, repeated: true }, // "-" + fastPan: { keyCode: 16 }, //shift createMarker: { keyCode: key("M") }, }, diff --git a/src/js/profile/application_settings.js b/src/js/profile/application_settings.js index 87c2c244..5a3a6cbc 100644 --- a/src/js/profile/application_settings.js +++ b/src/js/profile/application_settings.js @@ -302,11 +302,14 @@ export class ApplicationSettings extends ReadWriteProxy { return 1; } - getMovementSpeed() { + /** + * @param {boolean} fastpan + */ + getMovementSpeed(fastpan = false) { const id = this.getAllSettings().movementSpeed; for (let i = 0; i < movementSpeeds.length; ++i) { if (movementSpeeds[i].id === id) { - return movementSpeeds[i].multiplier; + return movementSpeeds[fastpan && i + 1 < movementSpeeds.length ? i + 1 : i].multiplier; } } logger.error("Unknown movement speed id:", id);