mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
Setting for haptic feedback
This commit is contained in:
@@ -74,6 +74,8 @@
|
|||||||
"vcmi.systemOptions.longTouchMenu.entry" : "%d milliseconds",
|
"vcmi.systemOptions.longTouchMenu.entry" : "%d milliseconds",
|
||||||
"vcmi.systemOptions.framerateButton.hover" : "Show FPS",
|
"vcmi.systemOptions.framerateButton.hover" : "Show FPS",
|
||||||
"vcmi.systemOptions.framerateButton.help" : "{Show FPS}\n\nToggle the visibility of the Frames Per Second counter in the corner of the game window",
|
"vcmi.systemOptions.framerateButton.help" : "{Show FPS}\n\nToggle the visibility of the Frames Per Second counter in the corner of the game window",
|
||||||
|
"vcmi.systemOptions.hapticFeedbackButton.hover" : "Haptic feedback",
|
||||||
|
"vcmi.systemOptions.hapticFeedbackButton.help" : "{Haptic feedback}\n\nToggle the haptic feedback on touch inputs",
|
||||||
|
|
||||||
"vcmi.adventureOptions.infoBarPick.hover" : "Show Messages in Info Panel",
|
"vcmi.adventureOptions.infoBarPick.hover" : "Show Messages in Info Panel",
|
||||||
"vcmi.adventureOptions.infoBarPick.help" : "{Show Messages in Info Panel}\n\nWhenever possible, game messages from visiting map objects will be shown in the info panel, instead of popping up in a separate window.",
|
"vcmi.adventureOptions.infoBarPick.help" : "{Show Messages in Info Panel}\n\nWhenever possible, game messages from visiting map objects will be shown in the info panel, instead of popping up in a separate window.",
|
||||||
|
@@ -74,6 +74,8 @@
|
|||||||
"vcmi.systemOptions.longTouchMenu.entry" : "%d Millisekunden",
|
"vcmi.systemOptions.longTouchMenu.entry" : "%d Millisekunden",
|
||||||
"vcmi.systemOptions.framerateButton.hover" : "FPS anzeigen",
|
"vcmi.systemOptions.framerateButton.hover" : "FPS anzeigen",
|
||||||
"vcmi.systemOptions.framerateButton.help" : "{FPS anzeigen}\n\n Schaltet die Sichtbarkeit des Zählers für die Bilder pro Sekunde in der Ecke des Spielfensters um.",
|
"vcmi.systemOptions.framerateButton.help" : "{FPS anzeigen}\n\n Schaltet die Sichtbarkeit des Zählers für die Bilder pro Sekunde in der Ecke des Spielfensters um.",
|
||||||
|
"vcmi.systemOptions.hapticFeedbackButton.hover" : "Haptisches Feedback",
|
||||||
|
"vcmi.systemOptions.hapticFeedbackButton.help" : "{Haptisches Feedback}\n\nHaptisches Feedback bei Touch-Eingaben.",
|
||||||
|
|
||||||
"vcmi.adventureOptions.infoBarPick.hover" : "Meldungen im Infobereich anzeigen",
|
"vcmi.adventureOptions.infoBarPick.hover" : "Meldungen im Infobereich anzeigen",
|
||||||
"vcmi.adventureOptions.infoBarPick.help" : "{Meldungen im Infobereich anzeigen}\n\nWann immer möglich, werden Spielnachrichten von besuchten Kartenobjekten in der Infoleiste angezeigt, anstatt als Popup-Fenster zu erscheinen",
|
"vcmi.adventureOptions.infoBarPick.help" : "{Meldungen im Infobereich anzeigen}\n\nWann immer möglich, werden Spielnachrichten von besuchten Kartenobjekten in der Infoleiste angezeigt, anstatt als Popup-Fenster zu erscheinen",
|
||||||
|
@@ -39,6 +39,7 @@ InputSourceTouch::InputSourceTouch()
|
|||||||
params.useRelativeMode = settings["general"]["userRelativePointer"].Bool();
|
params.useRelativeMode = settings["general"]["userRelativePointer"].Bool();
|
||||||
params.relativeModeSpeedFactor = settings["general"]["relativePointerSpeedMultiplier"].Float();
|
params.relativeModeSpeedFactor = settings["general"]["relativePointerSpeedMultiplier"].Float();
|
||||||
params.longTouchTimeMilliseconds = settings["general"]["longTouchTimeMilliseconds"].Float();
|
params.longTouchTimeMilliseconds = settings["general"]["longTouchTimeMilliseconds"].Float();
|
||||||
|
params.hapticFeedback = settings["general"]["hapticFeedback"].Bool();
|
||||||
|
|
||||||
if (params.useRelativeMode)
|
if (params.useRelativeMode)
|
||||||
state = TouchState::RELATIVE_MODE;
|
state = TouchState::RELATIVE_MODE;
|
||||||
@@ -298,11 +299,13 @@ void InputSourceTouch::emitPinchEvent(const SDL_TouchFingerEvent & tfinger)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void InputSourceTouch::hapticFeedback() {
|
void InputSourceTouch::hapticFeedback() {
|
||||||
|
if(hapticFeedback)
|
||||||
#if defined(VCMI_ANDROID)
|
#if defined(VCMI_ANDROID)
|
||||||
CAndroidVMHelper vmHelper;
|
CAndroidVMHelper vmHelper;
|
||||||
vmHelper.callStaticVoidMethod(CAndroidVMHelper::NATIVE_METHODS_DEFAULT_CLASS, "hapticFeedback");
|
vmHelper.callStaticVoidMethod(CAndroidVMHelper::NATIVE_METHODS_DEFAULT_CLASS, "hapticFeedback");
|
||||||
#endif
|
#endif
|
||||||
#if defined(VCMI_IOS)
|
#if defined(VCMI_IOS)
|
||||||
iOS_utils::hapticFeedback();
|
iOS_utils::hapticFeedback();
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -79,6 +79,8 @@ struct TouchInputParameters
|
|||||||
uint32_t pinchSensitivityThreshold = 10;
|
uint32_t pinchSensitivityThreshold = 10;
|
||||||
|
|
||||||
bool useRelativeMode = false;
|
bool useRelativeMode = false;
|
||||||
|
|
||||||
|
bool hapticFeedback = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Class that handles touchscreen input from SDL events
|
/// Class that handles touchscreen input from SDL events
|
||||||
|
@@ -153,6 +153,10 @@ GeneralOptionsTab::GeneralOptionsTab()
|
|||||||
{
|
{
|
||||||
setBoolSetting("video", "showfps", value);
|
setBoolSetting("video", "showfps", value);
|
||||||
});
|
});
|
||||||
|
addCallback("hapticFeedbackChanged", [](bool value)
|
||||||
|
{
|
||||||
|
setBoolSetting("general", "hapticFeedback", value);
|
||||||
|
});
|
||||||
|
|
||||||
//moved from "other" tab that is disabled for now to avoid excessible tabs with barely any content
|
//moved from "other" tab that is disabled for now to avoid excessible tabs with barely any content
|
||||||
addCallback("availableCreaturesAsDwellingChanged", [=](int value)
|
addCallback("availableCreaturesAsDwellingChanged", [=](int value)
|
||||||
@@ -190,6 +194,9 @@ GeneralOptionsTab::GeneralOptionsTab()
|
|||||||
std::shared_ptr<CToggleButton> framerateCheckbox = widget<CToggleButton>("framerateCheckbox");
|
std::shared_ptr<CToggleButton> framerateCheckbox = widget<CToggleButton>("framerateCheckbox");
|
||||||
framerateCheckbox->setSelected(settings["video"]["showfps"].Bool());
|
framerateCheckbox->setSelected(settings["video"]["showfps"].Bool());
|
||||||
|
|
||||||
|
std::shared_ptr<CToggleButton> hapticFeedbackCheckbox = widget<CToggleButton>("hapticFeedbackCheckbox");
|
||||||
|
hapticFeedbackCheckbox->setSelected(settings["general"]["hapticFeedback"].Bool());
|
||||||
|
|
||||||
std::shared_ptr<CSlider> musicSlider = widget<CSlider>("musicSlider");
|
std::shared_ptr<CSlider> musicSlider = widget<CSlider>("musicSlider");
|
||||||
musicSlider->scrollTo(CCS->musich->getVolume());
|
musicSlider->scrollTo(CCS->musich->getVolume());
|
||||||
|
|
||||||
|
@@ -33,7 +33,8 @@
|
|||||||
"extraDump",
|
"extraDump",
|
||||||
"userRelativePointer",
|
"userRelativePointer",
|
||||||
"relativePointerSpeedMultiplier",
|
"relativePointerSpeedMultiplier",
|
||||||
"longTouchTimeMilliseconds"
|
"longTouchTimeMilliseconds",
|
||||||
|
"hapticFeedback"
|
||||||
],
|
],
|
||||||
"properties" : {
|
"properties" : {
|
||||||
"playerName" : {
|
"playerName" : {
|
||||||
@@ -101,6 +102,10 @@
|
|||||||
"longTouchTimeMilliseconds" : {
|
"longTouchTimeMilliseconds" : {
|
||||||
"type" : "number",
|
"type" : "number",
|
||||||
"default" : 1000
|
"default" : 1000
|
||||||
|
},
|
||||||
|
"hapticFeedback" : {
|
||||||
|
"type" : "boolean",
|
||||||
|
"default" : false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@@ -57,6 +57,10 @@
|
|||||||
"name": "longTouchLabel",
|
"name": "longTouchLabel",
|
||||||
"text": "vcmi.systemOptions.longTouchButton.hover",
|
"text": "vcmi.systemOptions.longTouchButton.hover",
|
||||||
"created" : "touchscreen"
|
"created" : "touchscreen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "vcmi.systemOptions.hapticFeedbackButton.hover",
|
||||||
|
"created" : "touchscreen"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -76,7 +80,7 @@
|
|||||||
"name": "scalingButton",
|
"name": "scalingButton",
|
||||||
"type": "buttonGear",
|
"type": "buttonGear",
|
||||||
"help": "vcmi.systemOptions.scalingButton",
|
"help": "vcmi.systemOptions.scalingButton",
|
||||||
"callback": "setGameScaling",
|
"callback": "setGameScaling"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "fullscreenBorderlessCheckbox",
|
"name": "fullscreenBorderlessCheckbox",
|
||||||
@@ -106,6 +110,12 @@
|
|||||||
"help": "vcmi.systemOptions.longTouchButton",
|
"help": "vcmi.systemOptions.longTouchButton",
|
||||||
"callback": "setLongTouchDuration",
|
"callback": "setLongTouchDuration",
|
||||||
"created" : "touchscreen"
|
"created" : "touchscreen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hapticFeedbackCheckbox",
|
||||||
|
"help": "vcmi.systemOptions.hapticFeedbackButton",
|
||||||
|
"callback": "hapticFeedbackChanged",
|
||||||
|
"created" : "touchscreen"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user