From 88225d388104d94d4a928504e6318eaa4cd27a45 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 10 Apr 2024 14:33:42 -0400 Subject: [PATCH] Switched back to having member variable in KeyBoardInputHandler for moveCommandScalar --- OPHD/Command/Commands.cpp | 8 +++++--- OPHD/Command/KeyboardInputHandler.cpp | 26 ++++++++++---------------- OPHD/Command/KeyboardInputHandler.h | 1 + 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/OPHD/Command/Commands.cpp b/OPHD/Command/Commands.cpp index db297bc53..1aa4483c2 100644 --- a/OPHD/Command/Commands.cpp +++ b/OPHD/Command/Commands.cpp @@ -8,19 +8,21 @@ class MoveCommand : public Command { public: - MoveCommand(MapView& mapView, NAS2D::Vector vector) : + MoveCommand(MapView& mapView, NAS2D::Vector vector, int* mMoveCommandScalar) : mMapView(mapView), - mVector(vector) + mVector(vector), + mMoveCommandScalar_(mMoveCommandScalar) {} virtual void execute() override { - mMapView.moveView(MapOffset{mVector, 0}); + mMapView.moveView(MapOffset{mVector * (*mMoveCommandScalar_), 0}); } private: MapView& mMapView; NAS2D::Vector mVector; + int* mMoveCommandScalar_ = nullptr; }; class SignalCommand : public Command diff --git a/OPHD/Command/KeyboardInputHandler.cpp b/OPHD/Command/KeyboardInputHandler.cpp index c152a5402..53268ae75 100644 --- a/OPHD/Command/KeyboardInputHandler.cpp +++ b/OPHD/Command/KeyboardInputHandler.cpp @@ -9,22 +9,14 @@ KeyboardInputHandler::KeyboardInputHandler(MapView& mapView, NAS2D::Signal<>* reportsUiSignal, CheatMenu* cheatMenu, WindowStack* windowStack) : mMapView(&mapView) { - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::Shift][NAS2D::EventHandler::KeyCode::KEY_w] = new MoveCommand(*mMapView, DirectionNorthWest * 5); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::Shift][NAS2D::EventHandler::KeyCode::KEY_UP] = new MoveCommand(*mMapView, DirectionNorthWest * 5); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::Shift][NAS2D::EventHandler::KeyCode::KEY_s] = new MoveCommand(*mMapView, DirectionSouthEast * 5); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::Shift][NAS2D::EventHandler::KeyCode::KEY_DOWN] = new MoveCommand(*mMapView, DirectionSouthEast * 5); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::Shift][NAS2D::EventHandler::KeyCode::KEY_a] = new MoveCommand(*mMapView, DirectionSouthWest * 5); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::Shift][NAS2D::EventHandler::KeyCode::KEY_LEFT] = new MoveCommand(*mMapView, DirectionSouthWest * 5); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::Shift][NAS2D::EventHandler::KeyCode::KEY_d] = new MoveCommand(*mMapView, DirectionNorthEast * 5); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::Shift][NAS2D::EventHandler::KeyCode::KEY_RIGHT] = new MoveCommand(*mMapView, DirectionNorthEast * 5); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_w] = new MoveCommand(*mMapView, DirectionNorthWest); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_UP] = new MoveCommand(*mMapView, DirectionNorthWest); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_s] = new MoveCommand(*mMapView, DirectionSouthEast); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_DOWN] = new MoveCommand(*mMapView, DirectionSouthEast); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_a] = new MoveCommand(*mMapView, DirectionSouthWest); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_LEFT] = new MoveCommand(*mMapView, DirectionSouthWest); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_d] = new MoveCommand(*mMapView, DirectionNorthEast); - mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_RIGHT] = new MoveCommand(*mMapView, DirectionNorthEast); + mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_w] = new MoveCommand(*mMapView, DirectionNorthWest, &mMoveCommandScalar); + mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_UP] = new MoveCommand(*mMapView, DirectionNorthWest, &mMoveCommandScalar); + mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_s] = new MoveCommand(*mMapView, DirectionSouthEast, &mMoveCommandScalar); + mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_DOWN] = new MoveCommand(*mMapView, DirectionSouthEast, &mMoveCommandScalar); + mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_a] = new MoveCommand(*mMapView, DirectionSouthWest, &mMoveCommandScalar); + mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_LEFT] = new MoveCommand(*mMapView, DirectionSouthWest, &mMoveCommandScalar); + mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_d] = new MoveCommand(*mMapView, DirectionNorthEast, &mMoveCommandScalar); + mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_RIGHT] = new MoveCommand(*mMapView, DirectionNorthEast, &mMoveCommandScalar); mKeyModifierMap[NAS2D::EventHandler::KeyModifier::None][NAS2D::EventHandler::KeyCode::KEY_F1] = new SignalCommand(reportsUiSignal); mKeyModifierMap[NAS2D::EventHandler::KeyModifier::Shift | NAS2D::EventHandler::KeyModifier::Ctrl][NAS2D::EventHandler::KeyCode::KEY_F10] = new ShowCheatMenuCommand(cheatMenu, windowStack); } @@ -33,6 +25,8 @@ KeyboardInputHandler::KeyboardInputHandler(MapView& mapView, NAS2D::Signal<>* re void KeyboardInputHandler::handleInput(NAS2D::EventHandler::KeyCode key, NAS2D::EventHandler::KeyModifier keyModifiers) { auto keyModifiersFitered = NAS2D::EventHandler::KeyModifier::None; + mMoveCommandScalar = NAS2D::Utility::get().shift(keyModifiers) ? 5 : 1; + NAS2D::Utility::get().shift(keyModifiers) ? keyModifiersFitered |= NAS2D::EventHandler::KeyModifier::Shift : keyModifiersFitered; NAS2D::Utility::get().control(keyModifiers) ? keyModifiersFitered |= NAS2D::EventHandler::KeyModifier::Ctrl : keyModifiersFitered; diff --git a/OPHD/Command/KeyboardInputHandler.h b/OPHD/Command/KeyboardInputHandler.h index bb7d3f1a2..e73117bdb 100644 --- a/OPHD/Command/KeyboardInputHandler.h +++ b/OPHD/Command/KeyboardInputHandler.h @@ -21,6 +21,7 @@ class KeyboardInputHandler private: MapView* mMapView; + int mMoveCommandScalar; std::unordered_map> mKeyModifierMap;