mirror of
https://github.com/izzy2lost/libultraship.git
synced 2026-06-19 01:16:13 -07:00
rename Stick -> StickIndex (#754)
This commit is contained in:
@@ -236,7 +236,7 @@ void Controller::MoveMappingsToDifferentController(std::shared_ptr<Controller> 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<std::string> axisDirectionMappingIdsToRemove;
|
||||
for (auto [id, mapping] : mappings) {
|
||||
|
||||
@@ -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<Stick, std::string> stickToConfigStickName = { { LEFT_STICK, "LeftStick" },
|
||||
{ RIGHT_STICK, "RightStick" } };
|
||||
std::unordered_map<StickIndex, std::string> stickIndexToConfigStickIndexName = { { LEFT_STICK, "LeftStick" },
|
||||
{ RIGHT_STICK, "RightStick" } };
|
||||
|
||||
// todo: where should this live?
|
||||
std::unordered_map<Direction, std::string> 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<KeyboardKeyToAxisDirectionMapping>(mPortIndex, mStick, direction,
|
||||
mapping = std::make_shared<KeyboardKeyToAxisDirectionMapping>(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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
+30
-26
@@ -11,7 +11,8 @@
|
||||
|
||||
namespace Ship {
|
||||
std::shared_ptr<ControllerAxisDirectionMapping>
|
||||
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<SDLAxisDirectionToAxisDirectionMapping>(
|
||||
static_cast<ShipDeviceIndex>(shipDeviceIndex), portIndex, stick, static_cast<Direction>(direction),
|
||||
static_cast<ShipDeviceIndex>(shipDeviceIndex), portIndex, stickIndex, static_cast<Direction>(direction),
|
||||
sdlControllerAxis, axisDirection);
|
||||
}
|
||||
|
||||
@@ -53,9 +54,9 @@ AxisDirectionMappingFactory::CreateAxisDirectionMappingFromConfig(uint8_t portIn
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return std::make_shared<SDLButtonToAxisDirectionMapping>(static_cast<ShipDeviceIndex>(shipDeviceIndex),
|
||||
portIndex, stick, static_cast<Direction>(direction),
|
||||
sdlControllerButton);
|
||||
return std::make_shared<SDLButtonToAxisDirectionMapping>(
|
||||
static_cast<ShipDeviceIndex>(shipDeviceIndex), portIndex, stickIndex, static_cast<Direction>(direction),
|
||||
sdlControllerButton);
|
||||
}
|
||||
|
||||
if (mappingClass == "KeyboardKeyToAxisDirectionMapping") {
|
||||
@@ -70,20 +71,23 @@ AxisDirectionMappingFactory::CreateAxisDirectionMappingFromConfig(uint8_t portIn
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return std::make_shared<KeyboardKeyToAxisDirectionMapping>(portIndex, stick, static_cast<Direction>(direction),
|
||||
static_cast<KbScancode>(scancode));
|
||||
return std::make_shared<KeyboardKeyToAxisDirectionMapping>(
|
||||
portIndex, stickIndex, static_cast<Direction>(direction), static_cast<KbScancode>(scancode));
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::vector<std::shared_ptr<ControllerAxisDirectionMapping>>
|
||||
AxisDirectionMappingFactory::CreateDefaultKeyboardAxisDirectionMappings(uint8_t portIndex, Stick stick) {
|
||||
AxisDirectionMappingFactory::CreateDefaultKeyboardAxisDirectionMappings(uint8_t portIndex, StickIndex stickIndex) {
|
||||
std::vector<std::shared_ptr<ControllerAxisDirectionMapping>> mappings = {
|
||||
std::make_shared<KeyboardKeyToAxisDirectionMapping>(portIndex, stick, LEFT, LUS_DEFAULT_KB_MAPPING_STICKLEFT),
|
||||
std::make_shared<KeyboardKeyToAxisDirectionMapping>(portIndex, stick, RIGHT, LUS_DEFAULT_KB_MAPPING_STICKRIGHT),
|
||||
std::make_shared<KeyboardKeyToAxisDirectionMapping>(portIndex, stick, UP, LUS_DEFAULT_KB_MAPPING_STICKUP),
|
||||
std::make_shared<KeyboardKeyToAxisDirectionMapping>(portIndex, stick, DOWN, LUS_DEFAULT_KB_MAPPING_STICKDOWN)
|
||||
std::make_shared<KeyboardKeyToAxisDirectionMapping>(portIndex, stickIndex, LEFT,
|
||||
LUS_DEFAULT_KB_MAPPING_STICKLEFT),
|
||||
std::make_shared<KeyboardKeyToAxisDirectionMapping>(portIndex, stickIndex, RIGHT,
|
||||
LUS_DEFAULT_KB_MAPPING_STICKRIGHT),
|
||||
std::make_shared<KeyboardKeyToAxisDirectionMapping>(portIndex, stickIndex, UP, LUS_DEFAULT_KB_MAPPING_STICKUP),
|
||||
std::make_shared<KeyboardKeyToAxisDirectionMapping>(portIndex, stickIndex, DOWN,
|
||||
LUS_DEFAULT_KB_MAPPING_STICKDOWN)
|
||||
};
|
||||
|
||||
return mappings;
|
||||
@@ -91,7 +95,7 @@ AxisDirectionMappingFactory::CreateDefaultKeyboardAxisDirectionMappings(uint8_t
|
||||
|
||||
std::vector<std::shared_ptr<ControllerAxisDirectionMapping>>
|
||||
AxisDirectionMappingFactory::CreateDefaultSDLAxisDirectionMappings(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex,
|
||||
Stick stick) {
|
||||
StickIndex stickIndex) {
|
||||
auto sdlIndexMapping = std::dynamic_pointer_cast<ShipDeviceIndexToSDLDeviceIndexMapping>(
|
||||
Context::GetInstance()
|
||||
->GetControlDeck()
|
||||
@@ -102,21 +106,21 @@ AxisDirectionMappingFactory::CreateDefaultSDLAxisDirectionMappings(ShipDeviceInd
|
||||
}
|
||||
|
||||
std::vector<std::shared_ptr<ControllerAxisDirectionMapping>> mappings = {
|
||||
std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(shipDeviceIndex, portIndex, stick, LEFT,
|
||||
stick == LEFT_STICK ? 0 : 2, -1),
|
||||
std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(shipDeviceIndex, portIndex, stick, RIGHT,
|
||||
stick == LEFT_STICK ? 0 : 2, 1),
|
||||
std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(shipDeviceIndex, portIndex, stick, UP,
|
||||
stick == LEFT_STICK ? 1 : 3, -1),
|
||||
std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(shipDeviceIndex, portIndex, stick, DOWN,
|
||||
stick == LEFT_STICK ? 1 : 3, 1)
|
||||
std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(shipDeviceIndex, portIndex, stickIndex, LEFT,
|
||||
stickIndex == LEFT_STICK ? 0 : 2, -1),
|
||||
std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(shipDeviceIndex, portIndex, stickIndex, RIGHT,
|
||||
stickIndex == LEFT_STICK ? 0 : 2, 1),
|
||||
std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(shipDeviceIndex, portIndex, stickIndex, UP,
|
||||
stickIndex == LEFT_STICK ? 1 : 3, -1),
|
||||
std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(shipDeviceIndex, portIndex, stickIndex, DOWN,
|
||||
stickIndex == LEFT_STICK ? 1 : 3, 1)
|
||||
};
|
||||
|
||||
return mappings;
|
||||
}
|
||||
|
||||
std::shared_ptr<ControllerAxisDirectionMapping>
|
||||
AxisDirectionMappingFactory::CreateAxisDirectionMappingFromSDLInput(uint8_t portIndex, Stick stick,
|
||||
AxisDirectionMappingFactory::CreateAxisDirectionMappingFromSDLInput(uint8_t portIndex, StickIndex stickIndex,
|
||||
Direction direction) {
|
||||
std::unordered_map<ShipDeviceIndex, SDL_GameController*> sdlControllers;
|
||||
std::shared_ptr<ControllerAxisDirectionMapping> 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<SDL_GameControllerButton>(button))) {
|
||||
mapping =
|
||||
std::make_shared<SDLButtonToAxisDirectionMapping>(lusIndex, portIndex, stick, direction, button);
|
||||
mapping = std::make_shared<SDLButtonToAxisDirectionMapping>(lusIndex, portIndex, stickIndex, direction,
|
||||
button);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -166,8 +170,8 @@ AxisDirectionMappingFactory::CreateAxisDirectionMappingFromSDLInput(uint8_t port
|
||||
continue;
|
||||
}
|
||||
|
||||
mapping = std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(lusIndex, portIndex, stick, direction,
|
||||
axis, axisDirection);
|
||||
mapping = std::make_shared<SDLAxisDirectionToAxisDirectionMapping>(lusIndex, portIndex, stickIndex,
|
||||
direction, axis, axisDirection);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -9,15 +9,15 @@ namespace Ship {
|
||||
class AxisDirectionMappingFactory {
|
||||
public:
|
||||
static std::shared_ptr<ControllerAxisDirectionMapping>
|
||||
CreateAxisDirectionMappingFromConfig(uint8_t portIndex, Stick stick, std::string id);
|
||||
CreateAxisDirectionMappingFromConfig(uint8_t portIndex, StickIndex stickIndex, std::string id);
|
||||
|
||||
static std::vector<std::shared_ptr<ControllerAxisDirectionMapping>>
|
||||
CreateDefaultKeyboardAxisDirectionMappings(uint8_t portIndex, Stick stick);
|
||||
CreateDefaultKeyboardAxisDirectionMappings(uint8_t portIndex, StickIndex stickIndex);
|
||||
|
||||
static std::vector<std::shared_ptr<ControllerAxisDirectionMapping>>
|
||||
CreateDefaultSDLAxisDirectionMappings(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, Stick stick);
|
||||
CreateDefaultSDLAxisDirectionMappings(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, StickIndex stickIndex);
|
||||
|
||||
static std::shared_ptr<ControllerAxisDirectionMapping>
|
||||
CreateAxisDirectionMappingFromSDLInput(uint8_t portIndex, Stick stick, Direction direction);
|
||||
CreateAxisDirectionMappingFromSDLInput(uint8_t portIndex, StickIndex stickIndex, Direction direction);
|
||||
};
|
||||
} // namespace Ship
|
||||
|
||||
+4
-4
@@ -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();
|
||||
|
||||
+2
-1
@@ -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;
|
||||
|
||||
+4
-4
@@ -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);
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+4
-4
@@ -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);
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
@@ -1225,7 +1225,7 @@ void InputEditorWindow::DrawButtonDeviceIcons(uint8_t portIndex, std::set<CONTRO
|
||||
}
|
||||
}
|
||||
|
||||
void InputEditorWindow::DrawAnalogStickDeviceIcons(uint8_t portIndex, Stick stick) {
|
||||
void InputEditorWindow::DrawAnalogStickDeviceIcons(uint8_t portIndex, StickIndex stickIndex) {
|
||||
std::set<ShipDeviceIndex> 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<std::pair<ShipDeviceIndex, bool>> 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)) {
|
||||
|
||||
@@ -71,7 +71,7 @@ class InputEditorWindow : public GuiWindow {
|
||||
std::set<CONTROLLERBUTTONS_T> mButtonsBitmasks;
|
||||
std::set<CONTROLLERBUTTONS_T> mDpadBitmasks;
|
||||
void DrawButtonDeviceIcons(uint8_t portIndex, std::set<CONTROLLERBUTTONS_T> 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);
|
||||
|
||||
Reference in New Issue
Block a user