mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-10 12:39:53 +00:00
Add camera control customization options.
This commit is contained in:
parent
dede171886
commit
bee8977e45
@ -172,6 +172,14 @@ void CSMPrefs::State::declare()
|
||||
inputButtons.add (left).add (cLeft).add (right).add (cRight).add (middle).add (cMiddle);
|
||||
declareEnum ("p-navi", "Primary Camera Navigation Button", left).addValues (inputButtons);
|
||||
declareEnum ("s-navi", "Secondary Camera Navigation Button", cLeft).addValues (inputButtons);
|
||||
declareDouble ("p-navi-sensitivity", "Camera Sensitivity", -1/750.).setRange(-2.0, 2.0);
|
||||
declareDouble ("s-navi-sensitivity", "Secondary Camera Movement Sensitivity", 50.0).setRange(1.0, 1000.0);
|
||||
declareDouble ("navi-wheel-factor", "Camera Zoom Sensitivity", 8).setRange(-100.0, 100.0);
|
||||
declareDouble ("navi-free-lin-speed", "Free Camera Linear Speed", 1000.0).setRange(1.0, 10000.0);
|
||||
declareDouble ("navi-free-rot-speed", "Free Camera Rotational Speed", 3.14 / 2).setRange(0.001, 6.28);
|
||||
declareDouble ("navi-free-speed-mult", "Free Camera Speed Multiplier (from Modifier)", 8).setRange(0.001, 1000.0);
|
||||
declareDouble ("navi-orbit-rot-speed", "Orbital Camera Rotational Speed", 3.14 / 4).setRange(0.001, 6.28);
|
||||
declareDouble ("navi-orbit-speed-mult", "Orbital Camera Speed Multiplier (from Modifier)", 4).setRange(0.001, 1000.0);
|
||||
declareEnum ("p-edit", "Primary Editing Button", right).addValues (inputButtons);
|
||||
declareEnum ("s-edit", "Secondary Editing Button", cRight).addValues (inputButtons);
|
||||
declareEnum ("p-select", "Primary Selection Button", middle).addValues (inputButtons);
|
||||
|
@ -328,7 +328,45 @@ void SceneWidget::update(double dt)
|
||||
|
||||
void SceneWidget::settingChanged (const CSMPrefs::Setting *setting)
|
||||
{
|
||||
storeMappingSetting(setting);
|
||||
if (*setting=="3D Scene Input/p-navi-sensitivity")
|
||||
{
|
||||
mFreeCamControl->setCameraSensitivity(setting->toDouble());
|
||||
mOrbitCamControl->setCameraSensitivity(setting->toDouble());
|
||||
}
|
||||
else if (*setting=="3D Scene Input/s-navi-sensitivity")
|
||||
{
|
||||
mFreeCamControl->setSecondaryMovementMultiplier(setting->toDouble());
|
||||
mOrbitCamControl->setSecondaryMovementMultiplier(setting->toDouble());
|
||||
}
|
||||
else if (*setting=="3D Scene Input/navi-wheel-factor")
|
||||
{
|
||||
mFreeCamControl->setWheelMovementMultiplier(setting->toDouble());
|
||||
mOrbitCamControl->setWheelMovementMultiplier(setting->toDouble());
|
||||
}
|
||||
else if (*setting=="3D Scene Input/navi-free-lin-speed")
|
||||
{
|
||||
mFreeCamControl->setLinearSpeed(setting->toDouble());
|
||||
}
|
||||
else if (*setting=="3D Scene Input/navi-free-rot-speed")
|
||||
{
|
||||
mFreeCamControl->setRotationalSpeed(setting->toDouble());
|
||||
}
|
||||
else if (*setting=="3D Scene Input/navi-free-speed-mult")
|
||||
{
|
||||
mFreeCamControl->setSpeedMultiplier(setting->toDouble());
|
||||
}
|
||||
else if (*setting=="3D Scene Input/navi-orbit-rot-speed")
|
||||
{
|
||||
mOrbitCamControl->setOrbitSpeed(setting->toDouble());
|
||||
}
|
||||
else if (*setting=="3D Scene Input/navi-orbit-speed-mult")
|
||||
{
|
||||
mOrbitCamControl->setOrbitSpeedMultiplier(setting->toDouble());
|
||||
}
|
||||
else
|
||||
{
|
||||
storeMappingSetting(setting);
|
||||
}
|
||||
}
|
||||
|
||||
void SceneWidget::selectNavigationMode (const std::string& mode)
|
||||
|
Loading…
x
Reference in New Issue
Block a user