Change cargo scaling settings to be linear instead of logarithmic

This commit is contained in:
Jonathan G Rennison
2024-01-16 18:02:34 +00:00
parent c8ff26f2b8
commit 1e0bb019a7
21 changed files with 190 additions and 96 deletions

View File

@@ -21,6 +21,7 @@ static void TownZoneModeChanged(int32_t new_value);
static void TownZoneCustomValueChanged(int32_t new_value);
static bool OrderTownGrowthRate(SettingOnGuiCtrlData &data);
static bool IndustryCargoScaleGUI(SettingOnGuiCtrlData &data);
static const SettingTable _economy_settings{
[post-amble]
@@ -28,6 +29,7 @@ static const SettingTable _economy_settings{
[templates]
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
SDT_VAR2 = SDT_VAR2(GameSettings, $name, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
[validation]
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
@@ -146,45 +148,6 @@ strhelp = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT
strval = STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL
cat = SC_ADVANCED
[SDT_VAR]
var = economy.old_town_cargo_factor
type = SLE_INT8
flags = SF_PATCH
def = 0
min = -16
max = +8
interval = 1
str = STR_CONFIG_SETTING_TOWN_CARGO_FACTOR
strval = STR_JUST_INT
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_TOWN_CARGO_ADJ, 1, 1)
patxname = ""town_cargo_adj.economy.town_cargo_factor""
[SDT_VAR]
var = economy.town_cargo_scale_factor
type = SLE_INT16
flags = SF_DECIMAL1 | SF_DEC1SCALE | SF_PATCH
def = 0
min = -160
max = +80
interval = 1
str = STR_CONFIG_SETTING_TOWN_CARGO_FACTOR
strval = STR_DECIMAL1_WITH_SCALE
strhelp = STR_CONFIG_SETTING_TOWN_CARGO_FACTOR_HELPTEXT
patxname = ""town_cargo_adj.economy.town_cargo_scale_factor""
[SDT_VAR]
var = economy.industry_cargo_scale_factor
type = SLE_INT16
flags = SF_DECIMAL1 | SF_DEC1SCALE | SF_PATCH
def = 0
min = -50
max = +50
interval = 1
str = STR_CONFIG_SETTING_INDUSTRY_CARGO_FACTOR
strval = STR_DECIMAL1_WITH_SCALE
strhelp = STR_CONFIG_SETTING_INDUSTRY_CARGO_FACTOR_HELPTEXT
patxname = ""industry_cargo_adj.economy.industry_cargo_scale_factor""
[SDT_VAR]
var = economy.max_town_heightlevel
type = SLE_UINT8
@@ -739,6 +702,35 @@ strhelp = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT
post_cb = [](auto) { InvalidateWindowClassesData(WC_COMPANY_INFRASTRUCTURE); }
cat = SC_BASIC
[SDT_VAR]
var = economy.town_cargo_scale
type = SLE_UINT16
flags = SF_PATCH
def = 100
min = 1
max = 5000
interval = 10
str = STR_CONFIG_SETTING_TOWN_CARGO_SCALE
strhelp = STR_CONFIG_SETTING_TOWN_CARGO_SCALE_HELPTEXT
strval = STR_CONFIG_SETTING_CARGO_SCALE_VALUE
cat = SC_BASIC
post_cb = [](auto) { UpdateCargoScalers(); }
[SDT_VAR]
var = economy.industry_cargo_scale
type = SLE_UINT16
flags = SF_PATCH
def = 100
min = 5
max = 3000
interval = 10
str = STR_CONFIG_SETTING_INDUSTRY_CARGO_SCALE
strhelp = STR_CONFIG_SETTING_INDUSTRY_CARGO_SCALE_HELPTEXT
strval = STR_CONFIG_SETTING_CARGO_SCALE_VALUE
cat = SC_BASIC
post_cb = [](auto) { UpdateCargoScalers(); }
guiproc = IndustryCargoScaleGUI
[SDT_VAR]
var = economy.random_road_reconstruction
type = SLE_UINT16
@@ -787,3 +779,44 @@ strval = STR_CONFIG_SETTING_TICK_RATE_TRADITIONAL
cat = SC_EXPERT
post_cb = [](auto) { SetupTickRate(); }
patxname = ""economy.tick_rate""
## Old settings
[SDT_VAR2]
name = ""economy.old_town_cargo_factor""
var = old_economy.town_cargo_factor
type = SLE_INT8
flags = SF_PATCH
def = 0
min = -16
max = +8
interval = 1
strval = STR_JUST_INT
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_TOWN_CARGO_ADJ, 1, 1)
patxname = ""town_cargo_adj.economy.town_cargo_factor""
[SDT_VAR2]
name = ""economy.town_cargo_scale_factor""
var = old_economy.town_cargo_scale_factor
type = SLE_INT16
flags = SF_DECIMAL1 | SF_DEC1SCALE | SF_PATCH
def = 0
min = -160
max = +80
interval = 1
strval = STR_DECIMAL1_WITH_SCALE
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_TOWN_CARGO_ADJ, 2, 2)
patxname = ""town_cargo_adj.economy.town_cargo_scale_factor""
[SDT_VAR2]
name = ""economy.industry_cargo_scale_factor""
var = old_economy.industry_cargo_scale_factor
type = SLE_INT16
flags = SF_DECIMAL1 | SF_DEC1SCALE | SF_PATCH
def = 0
min = -50
max = +50
interval = 1
strval = STR_DECIMAL1_WITH_SCALE
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INDUSTRY_CARGO_ADJ, 1, 1)
patxname = ""industry_cargo_adj.economy.industry_cargo_scale_factor""