diff --git a/src/controller/controldevice/controller/Controller.cpp b/src/controller/controldevice/controller/Controller.cpp index 24abde1..330db2e 100644 --- a/src/controller/controldevice/controller/Controller.cpp +++ b/src/controller/controldevice/controller/Controller.cpp @@ -236,7 +236,7 @@ void Controller::MoveMappingsToDifferentController(std::shared_ptr n for (auto stick : { GetLeftStick(), GetRightStick() }) { auto newControllerStick = - stick->LeftOrRightStick() == LEFT_STICK ? newController->GetLeftStick() : newController->GetRightStick(); + stick->GetStickIndex() == LEFT_STICK ? newController->GetLeftStick() : newController->GetRightStick(); for (auto [direction, mappings] : stick->GetAllAxisDirectionMappings()) { std::vector axisDirectionMappingIdsToRemove; for (auto [id, mapping] : mappings) { diff --git a/src/controller/controldevice/controller/ControllerStick.cpp b/src/controller/controldevice/controller/ControllerStick.cpp index addff6a..655b668 100644 --- a/src/controller/controldevice/controller/ControllerStick.cpp +++ b/src/controller/controldevice/controller/ControllerStick.cpp @@ -21,8 +21,8 @@ #define MINIMUM_RADIUS_TO_MAP_NOTCH 0.9 namespace Ship { -ControllerStick::ControllerStick(uint8_t portIndex, Stick stick) - : mPortIndex(portIndex), mStick(stick), mUseKeydownEventToCreateNewMapping(false), +ControllerStick::ControllerStick(uint8_t portIndex, StickIndex stickIndex) + : mPortIndex(portIndex), mStickIndex(stickIndex), mUseKeydownEventToCreateNewMapping(false), mKeyboardScancodeForNewMapping(KbScancode::LUS_KB_UNKNOWN) { mSensitivityPercentage = DEFAULT_STICK_SENSITIVITY_PERCENTAGE; mSensitivity = 1.0f; @@ -69,8 +69,8 @@ void ControllerStick::ClearAllMappingsForDevice(ShipDeviceIndex lusIndex) { } // todo: where should this live? -std::unordered_map stickToConfigStickName = { { LEFT_STICK, "LeftStick" }, - { RIGHT_STICK, "RightStick" } }; +std::unordered_map stickIndexToConfigStickIndexName = { { LEFT_STICK, "LeftStick" }, + { RIGHT_STICK, "RightStick" } }; // todo: where should this live? std::unordered_map directionToConfigDirectionName = { @@ -89,7 +89,7 @@ void ControllerStick::SaveAxisDirectionMappingIdsToConfig() { const std::string axisDirectionMappingIdsCvarKey = StringHelper::Sprintf( CVAR_PREFIX_CONTROLLERS ".Port%d.%s.%sAxisDirectionMappingIds", mPortIndex + 1, - stickToConfigStickName[mStick].c_str(), directionToConfigDirectionName[direction].c_str()); + stickIndexToConfigStickIndexName[mStickIndex].c_str(), directionToConfigDirectionName[direction].c_str()); if (axisDirectionMappingIdListString == "") { CVarClear(axisDirectionMappingIdsCvarKey.c_str()); } else { @@ -123,13 +123,13 @@ void ControllerStick::AddAxisDirectionMapping(Direction direction, void ControllerStick::AddDefaultMappings(ShipDeviceIndex lusIndex) { for (auto mapping : - AxisDirectionMappingFactory::CreateDefaultSDLAxisDirectionMappings(lusIndex, mPortIndex, mStick)) { + AxisDirectionMappingFactory::CreateDefaultSDLAxisDirectionMappings(lusIndex, mPortIndex, mStickIndex)) { AddAxisDirectionMapping(mapping->GetDirection(), mapping); } if (lusIndex == ShipDeviceIndex::Keyboard) { for (auto mapping : - AxisDirectionMappingFactory::CreateDefaultKeyboardAxisDirectionMappings(mPortIndex, mStick)) { + AxisDirectionMappingFactory::CreateDefaultKeyboardAxisDirectionMappings(mPortIndex, mStickIndex)) { AddAxisDirectionMapping(mapping->GetDirection(), mapping); } } @@ -143,7 +143,7 @@ void ControllerStick::AddDefaultMappings(ShipDeviceIndex lusIndex) { } void ControllerStick::LoadAxisDirectionMappingFromConfig(std::string id) { - auto mapping = AxisDirectionMappingFactory::CreateAxisDirectionMappingFromConfig(mPortIndex, mStick, id); + auto mapping = AxisDirectionMappingFactory::CreateAxisDirectionMappingFromConfig(mPortIndex, mStickIndex, id); if (mapping == nullptr) { return; @@ -163,7 +163,7 @@ void ControllerStick::ReloadAllMappingsFromConfig() { for (auto direction : { LEFT, RIGHT, UP, DOWN }) { const std::string axisDirectionMappingIdsCvarKey = StringHelper::Sprintf( CVAR_PREFIX_CONTROLLERS ".Port%d.%s.%sAxisDirectionMappingIds", mPortIndex + 1, - stickToConfigStickName[mStick].c_str(), directionToConfigDirectionName[direction].c_str()); + stickIndexToConfigStickIndexName[mStickIndex].c_str(), directionToConfigDirectionName[direction].c_str()); std::stringstream axisDirectionMappingIdsStringStream( CVarGetString(axisDirectionMappingIdsCvarKey.c_str(), "")); @@ -173,20 +173,23 @@ void ControllerStick::ReloadAllMappingsFromConfig() { } } - SetSensitivity(CVarGetInteger(StringHelper::Sprintf(CVAR_PREFIX_CONTROLLERS ".Port%d.%s.SensitivityPercentage", - mPortIndex + 1, stickToConfigStickName[mStick].c_str()) - .c_str(), - DEFAULT_STICK_SENSITIVITY_PERCENTAGE)); + SetSensitivity( + CVarGetInteger(StringHelper::Sprintf(CVAR_PREFIX_CONTROLLERS ".Port%d.%s.SensitivityPercentage", mPortIndex + 1, + stickIndexToConfigStickIndexName[mStickIndex].c_str()) + .c_str(), + DEFAULT_STICK_SENSITIVITY_PERCENTAGE)); - SetDeadzone(CVarGetInteger(StringHelper::Sprintf(CVAR_PREFIX_CONTROLLERS ".Port%d.%s.DeadzonePercentage", - mPortIndex + 1, stickToConfigStickName[mStick].c_str()) - .c_str(), - DEFAULT_STICK_DEADZONE_PERCENTAGE)); + SetDeadzone( + CVarGetInteger(StringHelper::Sprintf(CVAR_PREFIX_CONTROLLERS ".Port%d.%s.DeadzonePercentage", mPortIndex + 1, + stickIndexToConfigStickIndexName[mStickIndex].c_str()) + .c_str(), + DEFAULT_STICK_DEADZONE_PERCENTAGE)); - SetNotchSnapAngle(CVarGetInteger(StringHelper::Sprintf(CVAR_PREFIX_CONTROLLERS ".Port%d.%s.NotchSnapAngle", - mPortIndex + 1, stickToConfigStickName[mStick].c_str()) - .c_str(), - 0)); + SetNotchSnapAngle( + CVarGetInteger(StringHelper::Sprintf(CVAR_PREFIX_CONTROLLERS ".Port%d.%s.NotchSnapAngle", mPortIndex + 1, + stickIndexToConfigStickIndexName[mStickIndex].c_str()) + .c_str(), + 0)); } double ControllerStick::GetClosestNotch(double angle, double approximationThreshold) { @@ -267,12 +270,13 @@ bool ControllerStick::AddOrEditAxisDirectionMappingFromRawPress(Direction direct mUseKeydownEventToCreateNewMapping = true; if (mKeyboardScancodeForNewMapping != LUS_KB_UNKNOWN) { - mapping = std::make_shared(mPortIndex, mStick, direction, + mapping = std::make_shared(mPortIndex, mStickIndex, direction, mKeyboardScancodeForNewMapping); } if (mapping == nullptr) { - mapping = AxisDirectionMappingFactory::CreateAxisDirectionMappingFromSDLInput(mPortIndex, mStick, direction); + mapping = + AxisDirectionMappingFactory::CreateAxisDirectionMappingFromSDLInput(mPortIndex, mStickIndex, direction); } if (mapping == nullptr) { @@ -339,7 +343,7 @@ void ControllerStick::SetSensitivity(uint8_t sensitivityPercentage) { mSensitivityPercentage = sensitivityPercentage; mSensitivity = sensitivityPercentage / 100.0f; CVarSetInteger(StringHelper::Sprintf(CVAR_PREFIX_CONTROLLERS ".Port%d.%s.SensitivityPercentage", mPortIndex + 1, - stickToConfigStickName[mStick].c_str()) + stickIndexToConfigStickIndexName[mStickIndex].c_str()) .c_str(), mSensitivityPercentage); CVarSave(); @@ -361,7 +365,7 @@ void ControllerStick::SetDeadzone(uint8_t deadzonePercentage) { mDeadzonePercentage = deadzonePercentage; mDeadzone = MAX_AXIS_RANGE * (deadzonePercentage / 100.0f); CVarSetInteger(StringHelper::Sprintf(CVAR_PREFIX_CONTROLLERS ".Port%d.%s.DeadzonePercentage", mPortIndex + 1, - stickToConfigStickName[mStick].c_str()) + stickIndexToConfigStickIndexName[mStickIndex].c_str()) .c_str(), mDeadzonePercentage); CVarSave(); @@ -382,7 +386,7 @@ bool ControllerStick::DeadzoneIsDefault() { void ControllerStick::SetNotchSnapAngle(uint8_t notchSnapAngle) { mNotchSnapAngle = notchSnapAngle; CVarSetInteger(StringHelper::Sprintf(CVAR_PREFIX_CONTROLLERS ".Port%d.%s.NotchSnapAngle", mPortIndex + 1, - stickToConfigStickName[mStick].c_str()) + stickIndexToConfigStickIndexName[mStickIndex].c_str()) .c_str(), mNotchSnapAngle); CVarSave(); @@ -415,7 +419,7 @@ ControllerStick::GetAllAxisDirectionMappings() { return mAxisDirectionMappings; } -Stick ControllerStick::LeftOrRightStick() { - return mStick; +StickIndex ControllerStick::GetStickIndex() { + return mStickIndex; } } // namespace Ship diff --git a/src/controller/controldevice/controller/ControllerStick.h b/src/controller/controldevice/controller/ControllerStick.h index d748151..8bc80ab 100644 --- a/src/controller/controldevice/controller/ControllerStick.h +++ b/src/controller/controldevice/controller/ControllerStick.h @@ -14,7 +14,7 @@ namespace Ship { class ControllerStick { public: - ControllerStick(uint8_t portIndex, Stick stick); + ControllerStick(uint8_t portIndex, StickIndex stickIndex); ~ControllerStick(); void ReloadAllMappingsFromConfig(); @@ -54,7 +54,7 @@ class ControllerStick { bool ProcessKeyboardEvent(KbEventType eventType, KbScancode scancode); bool HasMappingsForShipDeviceIndex(ShipDeviceIndex lusIndex); - Stick LeftOrRightStick(); + StickIndex GetStickIndex(); private: double GetClosestNotch(double angle, double approximationThreshold); @@ -62,7 +62,7 @@ class ControllerStick { float GetAxisDirectionValue(Direction direction); uint8_t mPortIndex; - Stick mStick; + StickIndex mStickIndex; uint8_t mSensitivityPercentage; float mSensitivity; diff --git a/src/controller/controldevice/controller/mapping/ControllerAxisDirectionMapping.cpp b/src/controller/controldevice/controller/mapping/ControllerAxisDirectionMapping.cpp index 698acc9..9fce493 100644 --- a/src/controller/controldevice/controller/mapping/ControllerAxisDirectionMapping.cpp +++ b/src/controller/controldevice/controller/mapping/ControllerAxisDirectionMapping.cpp @@ -5,8 +5,8 @@ namespace Ship { ControllerAxisDirectionMapping::ControllerAxisDirectionMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, - Stick stick, Direction direction) - : ControllerInputMapping(shipDeviceIndex), mPortIndex(portIndex), mStick(stick), mDirection(direction) { + StickIndex stickIndex, Direction direction) + : ControllerInputMapping(shipDeviceIndex), mPortIndex(portIndex), mStickIndex(stickIndex), mDirection(direction) { } ControllerAxisDirectionMapping::~ControllerAxisDirectionMapping() { diff --git a/src/controller/controldevice/controller/mapping/ControllerAxisDirectionMapping.h b/src/controller/controldevice/controller/mapping/ControllerAxisDirectionMapping.h index 1268e1a..5655049 100644 --- a/src/controller/controldevice/controller/mapping/ControllerAxisDirectionMapping.h +++ b/src/controller/controldevice/controller/mapping/ControllerAxisDirectionMapping.h @@ -8,12 +8,12 @@ #define MAX_AXIS_RANGE 85.0f namespace Ship { -enum Stick { LEFT_STICK, RIGHT_STICK }; +enum StickIndex { LEFT_STICK, RIGHT_STICK }; enum Direction { LEFT, RIGHT, UP, DOWN }; class ControllerAxisDirectionMapping : virtual public ControllerInputMapping { public: - ControllerAxisDirectionMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, Stick stick, + ControllerAxisDirectionMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, StickIndex stickIndex, Direction direction); ~ControllerAxisDirectionMapping(); virtual float GetNormalizedAxisDirectionValue() = 0; @@ -28,7 +28,7 @@ class ControllerAxisDirectionMapping : virtual public ControllerInputMapping { protected: uint8_t mPortIndex; - Stick mStick; + StickIndex mStickIndex; Direction mDirection; }; } // namespace Ship diff --git a/src/controller/controldevice/controller/mapping/factories/AxisDirectionMappingFactory.cpp b/src/controller/controldevice/controller/mapping/factories/AxisDirectionMappingFactory.cpp index e504edf..ab6a4a3 100644 --- a/src/controller/controldevice/controller/mapping/factories/AxisDirectionMappingFactory.cpp +++ b/src/controller/controldevice/controller/mapping/factories/AxisDirectionMappingFactory.cpp @@ -11,7 +11,8 @@ namespace Ship { std::shared_ptr -AxisDirectionMappingFactory::CreateAxisDirectionMappingFromConfig(uint8_t portIndex, Stick stick, std::string id) { +AxisDirectionMappingFactory::CreateAxisDirectionMappingFromConfig(uint8_t portIndex, StickIndex stickIndex, + std::string id) { const std::string mappingCvarKey = CVAR_PREFIX_CONTROLLERS ".AxisDirectionMappings." + id; const std::string mappingClass = CVarGetString(StringHelper::Sprintf("%s.AxisDirectionMappingClass", mappingCvarKey.c_str()).c_str(), ""); @@ -34,7 +35,7 @@ AxisDirectionMappingFactory::CreateAxisDirectionMappingFromConfig(uint8_t portIn } return std::make_shared( - static_cast(shipDeviceIndex), portIndex, stick, static_cast(direction), + static_cast(shipDeviceIndex), portIndex, stickIndex, static_cast(direction), sdlControllerAxis, axisDirection); } @@ -53,9 +54,9 @@ AxisDirectionMappingFactory::CreateAxisDirectionMappingFromConfig(uint8_t portIn return nullptr; } - return std::make_shared(static_cast(shipDeviceIndex), - portIndex, stick, static_cast(direction), - sdlControllerButton); + return std::make_shared( + static_cast(shipDeviceIndex), portIndex, stickIndex, static_cast(direction), + sdlControllerButton); } if (mappingClass == "KeyboardKeyToAxisDirectionMapping") { @@ -70,20 +71,23 @@ AxisDirectionMappingFactory::CreateAxisDirectionMappingFromConfig(uint8_t portIn return nullptr; } - return std::make_shared(portIndex, stick, static_cast(direction), - static_cast(scancode)); + return std::make_shared( + portIndex, stickIndex, static_cast(direction), static_cast(scancode)); } return nullptr; } std::vector> -AxisDirectionMappingFactory::CreateDefaultKeyboardAxisDirectionMappings(uint8_t portIndex, Stick stick) { +AxisDirectionMappingFactory::CreateDefaultKeyboardAxisDirectionMappings(uint8_t portIndex, StickIndex stickIndex) { std::vector> mappings = { - std::make_shared(portIndex, stick, LEFT, LUS_DEFAULT_KB_MAPPING_STICKLEFT), - std::make_shared(portIndex, stick, RIGHT, LUS_DEFAULT_KB_MAPPING_STICKRIGHT), - std::make_shared(portIndex, stick, UP, LUS_DEFAULT_KB_MAPPING_STICKUP), - std::make_shared(portIndex, stick, DOWN, LUS_DEFAULT_KB_MAPPING_STICKDOWN) + std::make_shared(portIndex, stickIndex, LEFT, + LUS_DEFAULT_KB_MAPPING_STICKLEFT), + std::make_shared(portIndex, stickIndex, RIGHT, + LUS_DEFAULT_KB_MAPPING_STICKRIGHT), + std::make_shared(portIndex, stickIndex, UP, LUS_DEFAULT_KB_MAPPING_STICKUP), + std::make_shared(portIndex, stickIndex, DOWN, + LUS_DEFAULT_KB_MAPPING_STICKDOWN) }; return mappings; @@ -91,7 +95,7 @@ AxisDirectionMappingFactory::CreateDefaultKeyboardAxisDirectionMappings(uint8_t std::vector> AxisDirectionMappingFactory::CreateDefaultSDLAxisDirectionMappings(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, - Stick stick) { + StickIndex stickIndex) { auto sdlIndexMapping = std::dynamic_pointer_cast( Context::GetInstance() ->GetControlDeck() @@ -102,21 +106,21 @@ AxisDirectionMappingFactory::CreateDefaultSDLAxisDirectionMappings(ShipDeviceInd } std::vector> mappings = { - std::make_shared(shipDeviceIndex, portIndex, stick, LEFT, - stick == LEFT_STICK ? 0 : 2, -1), - std::make_shared(shipDeviceIndex, portIndex, stick, RIGHT, - stick == LEFT_STICK ? 0 : 2, 1), - std::make_shared(shipDeviceIndex, portIndex, stick, UP, - stick == LEFT_STICK ? 1 : 3, -1), - std::make_shared(shipDeviceIndex, portIndex, stick, DOWN, - stick == LEFT_STICK ? 1 : 3, 1) + std::make_shared(shipDeviceIndex, portIndex, stickIndex, LEFT, + stickIndex == LEFT_STICK ? 0 : 2, -1), + std::make_shared(shipDeviceIndex, portIndex, stickIndex, RIGHT, + stickIndex == LEFT_STICK ? 0 : 2, 1), + std::make_shared(shipDeviceIndex, portIndex, stickIndex, UP, + stickIndex == LEFT_STICK ? 1 : 3, -1), + std::make_shared(shipDeviceIndex, portIndex, stickIndex, DOWN, + stickIndex == LEFT_STICK ? 1 : 3, 1) }; return mappings; } std::shared_ptr -AxisDirectionMappingFactory::CreateAxisDirectionMappingFromSDLInput(uint8_t portIndex, Stick stick, +AxisDirectionMappingFactory::CreateAxisDirectionMappingFromSDLInput(uint8_t portIndex, StickIndex stickIndex, Direction direction) { std::unordered_map sdlControllers; std::shared_ptr mapping = nullptr; @@ -142,8 +146,8 @@ AxisDirectionMappingFactory::CreateAxisDirectionMappingFromSDLInput(uint8_t port for (auto [lusIndex, controller] : sdlControllers) { for (int32_t button = SDL_CONTROLLER_BUTTON_A; button < SDL_CONTROLLER_BUTTON_MAX; button++) { if (SDL_GameControllerGetButton(controller, static_cast(button))) { - mapping = - std::make_shared(lusIndex, portIndex, stick, direction, button); + mapping = std::make_shared(lusIndex, portIndex, stickIndex, direction, + button); break; } } @@ -166,8 +170,8 @@ AxisDirectionMappingFactory::CreateAxisDirectionMappingFromSDLInput(uint8_t port continue; } - mapping = std::make_shared(lusIndex, portIndex, stick, direction, - axis, axisDirection); + mapping = std::make_shared(lusIndex, portIndex, stickIndex, + direction, axis, axisDirection); break; } } diff --git a/src/controller/controldevice/controller/mapping/factories/AxisDirectionMappingFactory.h b/src/controller/controldevice/controller/mapping/factories/AxisDirectionMappingFactory.h index 126b573..98887bb 100644 --- a/src/controller/controldevice/controller/mapping/factories/AxisDirectionMappingFactory.h +++ b/src/controller/controldevice/controller/mapping/factories/AxisDirectionMappingFactory.h @@ -9,15 +9,15 @@ namespace Ship { class AxisDirectionMappingFactory { public: static std::shared_ptr - CreateAxisDirectionMappingFromConfig(uint8_t portIndex, Stick stick, std::string id); + CreateAxisDirectionMappingFromConfig(uint8_t portIndex, StickIndex stickIndex, std::string id); static std::vector> - CreateDefaultKeyboardAxisDirectionMappings(uint8_t portIndex, Stick stick); + CreateDefaultKeyboardAxisDirectionMappings(uint8_t portIndex, StickIndex stickIndex); static std::vector> - CreateDefaultSDLAxisDirectionMappings(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, Stick stick); + CreateDefaultSDLAxisDirectionMappings(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, StickIndex stickIndex); static std::shared_ptr - CreateAxisDirectionMappingFromSDLInput(uint8_t portIndex, Stick stick, Direction direction); + CreateAxisDirectionMappingFromSDLInput(uint8_t portIndex, StickIndex stickIndex, Direction direction); }; } // namespace Ship diff --git a/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToAxisDirectionMapping.cpp b/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToAxisDirectionMapping.cpp index b3cb357..063432e 100644 --- a/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToAxisDirectionMapping.cpp +++ b/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToAxisDirectionMapping.cpp @@ -6,10 +6,10 @@ #include "Context.h" namespace Ship { -KeyboardKeyToAxisDirectionMapping::KeyboardKeyToAxisDirectionMapping(uint8_t portIndex, Stick stick, +KeyboardKeyToAxisDirectionMapping::KeyboardKeyToAxisDirectionMapping(uint8_t portIndex, StickIndex stickIndex, Direction direction, KbScancode scancode) : ControllerInputMapping(ShipDeviceIndex::Keyboard), KeyboardKeyToAnyMapping(scancode), - ControllerAxisDirectionMapping(ShipDeviceIndex::Keyboard, portIndex, stick, direction) { + ControllerAxisDirectionMapping(ShipDeviceIndex::Keyboard, portIndex, stickIndex, direction) { } float KeyboardKeyToAxisDirectionMapping::GetNormalizedAxisDirectionValue() { @@ -21,14 +21,14 @@ float KeyboardKeyToAxisDirectionMapping::GetNormalizedAxisDirectionValue() { } std::string KeyboardKeyToAxisDirectionMapping::GetAxisDirectionMappingId() { - return StringHelper::Sprintf("P%d-S%d-D%d-KB%d", mPortIndex, mStick, mDirection, mKeyboardScancode); + return StringHelper::Sprintf("P%d-S%d-D%d-KB%d", mPortIndex, mStickIndex, mDirection, mKeyboardScancode); } void KeyboardKeyToAxisDirectionMapping::SaveToConfig() { const std::string mappingCvarKey = CVAR_PREFIX_CONTROLLERS ".AxisDirectionMappings." + GetAxisDirectionMappingId(); CVarSetString(StringHelper::Sprintf("%s.AxisDirectionMappingClass", mappingCvarKey.c_str()).c_str(), "KeyboardKeyToAxisDirectionMapping"); - CVarSetInteger(StringHelper::Sprintf("%s.Stick", mappingCvarKey.c_str()).c_str(), mStick); + CVarSetInteger(StringHelper::Sprintf("%s.Stick", mappingCvarKey.c_str()).c_str(), mStickIndex); CVarSetInteger(StringHelper::Sprintf("%s.Direction", mappingCvarKey.c_str()).c_str(), mDirection); CVarSetInteger(StringHelper::Sprintf("%s.KeyboardScancode", mappingCvarKey.c_str()).c_str(), mKeyboardScancode); CVarSave(); diff --git a/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToAxisDirectionMapping.h b/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToAxisDirectionMapping.h index 51a6b59..000076f 100644 --- a/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToAxisDirectionMapping.h +++ b/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToAxisDirectionMapping.h @@ -4,7 +4,8 @@ namespace Ship { class KeyboardKeyToAxisDirectionMapping final : public KeyboardKeyToAnyMapping, public ControllerAxisDirectionMapping { public: - KeyboardKeyToAxisDirectionMapping(uint8_t portIndex, Stick stick, Direction direction, KbScancode scancode); + KeyboardKeyToAxisDirectionMapping(uint8_t portIndex, StickIndex stickIndex, Direction direction, + KbScancode scancode); float GetNormalizedAxisDirectionValue() override; std::string GetAxisDirectionMappingId() override; uint8_t GetMappingType() override; diff --git a/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToAxisDirectionMapping.cpp b/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToAxisDirectionMapping.cpp index e81ca58..7916dee 100644 --- a/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToAxisDirectionMapping.cpp +++ b/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToAxisDirectionMapping.cpp @@ -9,12 +9,12 @@ namespace Ship { SDLAxisDirectionToAxisDirectionMapping::SDLAxisDirectionToAxisDirectionMapping(ShipDeviceIndex shipDeviceIndex, - uint8_t portIndex, Stick stick, + uint8_t portIndex, StickIndex stickIndex, Direction direction, int32_t sdlControllerAxis, int32_t axisDirection) : ControllerInputMapping(shipDeviceIndex), - ControllerAxisDirectionMapping(shipDeviceIndex, portIndex, stick, direction), + ControllerAxisDirectionMapping(shipDeviceIndex, portIndex, stickIndex, direction), SDLAxisDirectionToAnyMapping(shipDeviceIndex, sdlControllerAxis, axisDirection) { } @@ -39,7 +39,7 @@ float SDLAxisDirectionToAxisDirectionMapping::GetNormalizedAxisDirectionValue() } std::string SDLAxisDirectionToAxisDirectionMapping::GetAxisDirectionMappingId() { - return StringHelper::Sprintf("P%d-S%d-D%d-LUSI%d-SDLA%d-AD%s", mPortIndex, mStick, mDirection, + return StringHelper::Sprintf("P%d-S%d-D%d-LUSI%d-SDLA%d-AD%s", mPortIndex, mStickIndex, mDirection, ControllerInputMapping::mShipDeviceIndex, mControllerAxis, mAxisDirection == 1 ? "P" : "N"); } @@ -48,7 +48,7 @@ void SDLAxisDirectionToAxisDirectionMapping::SaveToConfig() { const std::string mappingCvarKey = CVAR_PREFIX_CONTROLLERS ".AxisDirectionMappings." + GetAxisDirectionMappingId(); CVarSetString(StringHelper::Sprintf("%s.AxisDirectionMappingClass", mappingCvarKey.c_str()).c_str(), "SDLAxisDirectionToAxisDirectionMapping"); - CVarSetInteger(StringHelper::Sprintf("%s.Stick", mappingCvarKey.c_str()).c_str(), mStick); + CVarSetInteger(StringHelper::Sprintf("%s.Stick", mappingCvarKey.c_str()).c_str(), mStickIndex); CVarSetInteger(StringHelper::Sprintf("%s.Direction", mappingCvarKey.c_str()).c_str(), mDirection); CVarSetInteger(StringHelper::Sprintf("%s.ShipDeviceIndex", mappingCvarKey.c_str()).c_str(), ControllerInputMapping::mShipDeviceIndex); diff --git a/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToAxisDirectionMapping.h b/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToAxisDirectionMapping.h index d6786a1..133bb1e 100644 --- a/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToAxisDirectionMapping.h +++ b/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToAxisDirectionMapping.h @@ -5,7 +5,7 @@ namespace Ship { class SDLAxisDirectionToAxisDirectionMapping final : public ControllerAxisDirectionMapping, public SDLAxisDirectionToAnyMapping { public: - SDLAxisDirectionToAxisDirectionMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, Stick stick, + SDLAxisDirectionToAxisDirectionMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, StickIndex stickIndex, Direction direction, int32_t sdlControllerAxis, int32_t axisDirection); float GetNormalizedAxisDirectionValue() override; std::string GetAxisDirectionMappingId() override; diff --git a/src/controller/controldevice/controller/mapping/sdl/SDLButtonToAxisDirectionMapping.cpp b/src/controller/controldevice/controller/mapping/sdl/SDLButtonToAxisDirectionMapping.cpp index b74acae..5693a49 100644 --- a/src/controller/controldevice/controller/mapping/sdl/SDLButtonToAxisDirectionMapping.cpp +++ b/src/controller/controldevice/controller/mapping/sdl/SDLButtonToAxisDirectionMapping.cpp @@ -9,10 +9,10 @@ namespace Ship { SDLButtonToAxisDirectionMapping::SDLButtonToAxisDirectionMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, - Stick stick, Direction direction, + StickIndex stickIndex, Direction direction, int32_t sdlControllerButton) : ControllerInputMapping(shipDeviceIndex), - ControllerAxisDirectionMapping(shipDeviceIndex, portIndex, stick, direction), + ControllerAxisDirectionMapping(shipDeviceIndex, portIndex, stickIndex, direction), SDLButtonToAnyMapping(shipDeviceIndex, sdlControllerButton) { } @@ -26,7 +26,7 @@ float SDLButtonToAxisDirectionMapping::GetNormalizedAxisDirectionValue() { } std::string SDLButtonToAxisDirectionMapping::GetAxisDirectionMappingId() { - return StringHelper::Sprintf("P%d-S%d-D%d-LUSI%d-SDLB%d", mPortIndex, mStick, mDirection, + return StringHelper::Sprintf("P%d-S%d-D%d-LUSI%d-SDLB%d", mPortIndex, mStickIndex, mDirection, ControllerInputMapping::mShipDeviceIndex, mControllerButton); } @@ -34,7 +34,7 @@ void SDLButtonToAxisDirectionMapping::SaveToConfig() { const std::string mappingCvarKey = CVAR_PREFIX_CONTROLLERS ".AxisDirectionMappings." + GetAxisDirectionMappingId(); CVarSetString(StringHelper::Sprintf("%s.AxisDirectionMappingClass", mappingCvarKey.c_str()).c_str(), "SDLButtonToAxisDirectionMapping"); - CVarSetInteger(StringHelper::Sprintf("%s.Stick", mappingCvarKey.c_str()).c_str(), mStick); + CVarSetInteger(StringHelper::Sprintf("%s.Stick", mappingCvarKey.c_str()).c_str(), mStickIndex); CVarSetInteger(StringHelper::Sprintf("%s.Direction", mappingCvarKey.c_str()).c_str(), mDirection); CVarSetInteger(StringHelper::Sprintf("%s.ShipDeviceIndex", mappingCvarKey.c_str()).c_str(), ControllerInputMapping::mShipDeviceIndex); diff --git a/src/controller/controldevice/controller/mapping/sdl/SDLButtonToAxisDirectionMapping.h b/src/controller/controldevice/controller/mapping/sdl/SDLButtonToAxisDirectionMapping.h index 79467b8..2b1faa4 100644 --- a/src/controller/controldevice/controller/mapping/sdl/SDLButtonToAxisDirectionMapping.h +++ b/src/controller/controldevice/controller/mapping/sdl/SDLButtonToAxisDirectionMapping.h @@ -4,7 +4,7 @@ namespace Ship { class SDLButtonToAxisDirectionMapping final : public ControllerAxisDirectionMapping, public SDLButtonToAnyMapping { public: - SDLButtonToAxisDirectionMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, Stick stick, + SDLButtonToAxisDirectionMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, StickIndex stickIndex, Direction direction, int32_t sdlControllerButton); float GetNormalizedAxisDirectionValue() override; std::string GetAxisDirectionMappingId() override; diff --git a/src/window/gui/InputEditorWindow.cpp b/src/window/gui/InputEditorWindow.cpp index 16e241e..c2d2d7f 100644 --- a/src/window/gui/InputEditorWindow.cpp +++ b/src/window/gui/InputEditorWindow.cpp @@ -1225,7 +1225,7 @@ void InputEditorWindow::DrawButtonDeviceIcons(uint8_t portIndex, std::set allLusDeviceIndices; allLusDeviceIndices.insert(ShipDeviceIndex::Keyboard); for (auto [lusIndex, mapping] : Context::GetInstance() @@ -1238,7 +1238,7 @@ void InputEditorWindow::DrawAnalogStickDeviceIcons(uint8_t portIndex, Stick stic std::vector> lusDeviceIndiciesWithMappings; for (auto lusIndex : allLusDeviceIndices) { auto controllerStick = - stick == Stick::LEFT_STICK + stickIndex == StickIndex::LEFT_STICK ? Context::GetInstance()->GetControlDeck()->GetControllerByPort(portIndex)->GetLeftStick() : Context::GetInstance()->GetControlDeck()->GetControllerByPort(portIndex)->GetRightStick(); if (controllerStick->HasMappingsForShipDeviceIndex(lusIndex)) { diff --git a/src/window/gui/InputEditorWindow.h b/src/window/gui/InputEditorWindow.h index 1848249..d2c28eb 100644 --- a/src/window/gui/InputEditorWindow.h +++ b/src/window/gui/InputEditorWindow.h @@ -71,7 +71,7 @@ class InputEditorWindow : public GuiWindow { std::set mButtonsBitmasks; std::set mDpadBitmasks; void DrawButtonDeviceIcons(uint8_t portIndex, std::set bitmasks); - void DrawAnalogStickDeviceIcons(uint8_t portIndex, Stick stick); + void DrawAnalogStickDeviceIcons(uint8_t portIndex, StickIndex stickIndex); void DrawRumbleDeviceIcons(uint8_t portIndex); void DrawGyroDeviceIcons(uint8_t portIndex); void DrawLEDDeviceIcons(uint8_t portIndex);