Add SettingOnGuiCtrlType mode for setting value dparam overrides

pull/642/head
Jonathan G Rennison 5 months ago
parent 1e0bb019a7
commit 53d29852e4

@ -1518,6 +1518,7 @@ static const void *ResolveObject(const GameSettings *settings_ptr, const IntSett
*/
void SettingEntry::SetValueDParams(uint first_param, int32_t value) const
{
const uint initial_first_param = first_param;
if (this->setting->IsBoolSetting()) {
SetDParam(first_param++, value != 0 ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
} else if (this->setting->flags & SF_DEC1SCALE) {
@ -1547,6 +1548,13 @@ void SettingEntry::SetValueDParams(uint first_param, int32_t value) const
}
SetDParam(first_param++, value);
}
if (this->setting->guiproc != nullptr) {
SettingOnGuiCtrlData data;
data.type = SOGCT_VALUE_DPARAMS;
data.offset = initial_first_param;
data.val = value;
this->setting->guiproc(data);
}
}
/**

@ -85,6 +85,7 @@ enum SettingType {
enum SettingOnGuiCtrlType {
SOGCT_DESCRIPTION_TEXT, ///< Description text callback
SOGCT_VALUE_DPARAMS, ///< Value dparam override callback
SOGCT_GUI_DROPDOWN_ORDER, ///< SF_GUI_DROPDOWN reordering callback
SOGCT_CFG_NAME, ///< Config file name override
SOGCT_CFG_FALLBACK_NAME, ///< Config file name within group fallback
@ -95,6 +96,7 @@ enum SettingOnGuiCtrlType {
struct SettingOnGuiCtrlData {
SettingOnGuiCtrlType type;
StringID text;
uint offset;
int val;
const char *str = nullptr;
int output = 0;

Loading…
Cancel
Save