Linkgraph: Allow overriding distribution mode on a per-cargo basis, in game

This commit is contained in:
Jonathan G Rennison
2019-04-30 23:11:11 +01:00
parent e7a916d2ce
commit 1ee33c46ef
7 changed files with 219 additions and 1 deletions

View File

@@ -81,6 +81,15 @@ static const SettingDescEnumEntry _linkgraph_mode_asymmetric[] = {
{ DT_ASYMMETRIC_NEAR, STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC_NEAREST },
{ 0, STR_NULL }
};
static const SettingDescEnumEntry _linkgraph_mode_per_cargo[] = {
{ DT_PER_CARGO_DEFAULT, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_DEFAULT },
{ DT_MANUAL, STR_CONFIG_SETTING_DISTRIBUTION_MANUAL },
{ DT_SYMMETRIC, STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC },
{ DT_ASYMMETRIC, STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC },
{ DT_ASYMMETRIC_EQ, STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC_EQ },
{ DT_ASYMMETRIC_NEAR, STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC_NEAREST },
{ 0, STR_NULL }
};
/* Some settings do not need to be synchronised when playing in multiplayer.
* These include for example the GUI settings and will not be saved with the
@@ -113,6 +122,8 @@ SDT_NULL = SDT_NULL($length, $from, $to, $extver),
SDT_XREF = SDT_XREF( $from, $to, $extver, $xref),
SDT_END = SDT_END()
SDT_LINKGRAPH_PER_CARGO = SDT_ENUM(GameSettings, linkgraph.distribution_per_cargo[$linkgraph_cargo], SLE_UINT8, $flags | SLF_NOT_IN_CONFIG, $guiflags | SGF_NO_NEWGAME, DT_PER_CARGO_DEFAULT, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT, $proc, $from, $to, SC_EXPERT, SlXvFeatureTest(XSLFTO_AND, XSLFI_LINKGRAPH_MODES), nullptr, _linkgraph_mode_per_cargo),
[defaults]
flags = 0
guiflags = 0
@@ -870,6 +881,135 @@ enumlist = _linkgraph_mode_asymmetric
str = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT
strhelp = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 0
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 1
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 2
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 3
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 4
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 5
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 6
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 7
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 8
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 9
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 10
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 11
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 12
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 13
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 14
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 15
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 16
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 17
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 18
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 19
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 20
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 21
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 22
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 23
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 24
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 25
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 26
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 27
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 28
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 29
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 30
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 31
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 32
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 33
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 34
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 35
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 36
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 37
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 38
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 39
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 40
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 41
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 42
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 43
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 44
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 45
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 46
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 47
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 48
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 49
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 50
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 51
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 52
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 53
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 54
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 55
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 56
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 57
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 58
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 59
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 60
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 61
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 62
[SDT_LINKGRAPH_PER_CARGO]
linkgraph_cargo = 63
[SDT_VAR]
base = GameSettings
var = linkgraph.accuracy