Add SettingOnGuiCtrlType mode for setting value dparam overrides
This commit is contained in:
@@ -1518,6 +1518,7 @@ static const void *ResolveObject(const GameSettings *settings_ptr, const IntSett
|
|||||||
*/
|
*/
|
||||||
void SettingEntry::SetValueDParams(uint first_param, int32_t value) const
|
void SettingEntry::SetValueDParams(uint first_param, int32_t value) const
|
||||||
{
|
{
|
||||||
|
const uint initial_first_param = first_param;
|
||||||
if (this->setting->IsBoolSetting()) {
|
if (this->setting->IsBoolSetting()) {
|
||||||
SetDParam(first_param++, value != 0 ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
|
SetDParam(first_param++, value != 0 ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
|
||||||
} else if (this->setting->flags & SF_DEC1SCALE) {
|
} 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);
|
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 {
|
enum SettingOnGuiCtrlType {
|
||||||
SOGCT_DESCRIPTION_TEXT, ///< Description text callback
|
SOGCT_DESCRIPTION_TEXT, ///< Description text callback
|
||||||
|
SOGCT_VALUE_DPARAMS, ///< Value dparam override callback
|
||||||
SOGCT_GUI_DROPDOWN_ORDER, ///< SF_GUI_DROPDOWN reordering callback
|
SOGCT_GUI_DROPDOWN_ORDER, ///< SF_GUI_DROPDOWN reordering callback
|
||||||
SOGCT_CFG_NAME, ///< Config file name override
|
SOGCT_CFG_NAME, ///< Config file name override
|
||||||
SOGCT_CFG_FALLBACK_NAME, ///< Config file name within group fallback
|
SOGCT_CFG_FALLBACK_NAME, ///< Config file name within group fallback
|
||||||
@@ -95,6 +96,7 @@ enum SettingOnGuiCtrlType {
|
|||||||
struct SettingOnGuiCtrlData {
|
struct SettingOnGuiCtrlData {
|
||||||
SettingOnGuiCtrlType type;
|
SettingOnGuiCtrlType type;
|
||||||
StringID text;
|
StringID text;
|
||||||
|
uint offset;
|
||||||
int val;
|
int val;
|
||||||
const char *str = nullptr;
|
const char *str = nullptr;
|
||||||
int output = 0;
|
int output = 0;
|
||||||
|
Reference in New Issue
Block a user