Split save/load settings into separate INI files
Matching upstream for all settings
This commit is contained in:
@@ -21,8 +21,6 @@
|
||||
|
||||
#include "../safeguards.h"
|
||||
|
||||
const SettingTable &GetSettingsTableInternal();
|
||||
|
||||
namespace upstream_sl {
|
||||
|
||||
/**
|
||||
@@ -34,7 +32,7 @@ namespace upstream_sl {
|
||||
static std::vector<SaveLoad> GetSettingsDesc(bool is_loading)
|
||||
{
|
||||
std::vector<SaveLoad> saveloads;
|
||||
for (auto &sd : GetSettingsTableInternal()) {
|
||||
for (auto &sd : IterateSettingTables(GetSaveLoadSettingsTables())) {
|
||||
if (sd->flags & SF_NOT_IN_SAVE) continue;
|
||||
if (is_loading && !SlXvIsFeaturePresent(XSLFI_TABLE_PATS) && (sd->flags & SF_PATCH)) continue;
|
||||
if (!sd->save.ext_feature_test.IsFeaturePresent(_sl_version, sd->save.version_from, sd->save.version_to)) continue;
|
||||
@@ -170,7 +168,7 @@ static void LoadSettings(void *object, const SaveLoadCompatTable &slct)
|
||||
if (!IsSavegameVersionBefore(SLV_RIFF_TO_ARRAY) && SlIterateArray() != -1) SlErrorCorrupt("Too many settings entries");
|
||||
|
||||
/* Ensure all IntSettings are valid (min/max could have changed between versions etc). */
|
||||
for (auto &sd : GetSettingsTableInternal()) {
|
||||
for (auto &sd : IterateSettingTables(GetSaveLoadSettingsTables())) {
|
||||
if (sd->flags & SF_NOT_IN_SAVE) continue;
|
||||
if ((sd->flags & SF_NO_NETWORK_SYNC) && _networking && !_network_server) continue;
|
||||
if (!sd->save.ext_feature_test.IsFeaturePresent(_sl_xv_feature_static_versions, MAX_LOAD_SAVEGAME_VERSION, sd->save.version_from, sd->save.version_to)) continue;
|
||||
|
@@ -124,14 +124,35 @@ static bool _fallback_gui_zoom_max = false;
|
||||
* As such, they are not part of this list.
|
||||
*/
|
||||
static const SettingTable _generic_setting_tables[] = {
|
||||
_settings,
|
||||
_difficulty_settings,
|
||||
_economy_settings,
|
||||
_game_settings,
|
||||
_gui_settings,
|
||||
_linkgraph_settings,
|
||||
_locale_settings,
|
||||
_multimedia_settings,
|
||||
_network_settings,
|
||||
_news_display_settings,
|
||||
_pathfinding_settings,
|
||||
_script_settings,
|
||||
_world_settings,
|
||||
_scenario_settings,
|
||||
};
|
||||
|
||||
/**
|
||||
* List of all the save/load (PATS/PATX) setting tables.
|
||||
*/
|
||||
static const std::initializer_list<SettingTable> _saveload_setting_tables{
|
||||
_difficulty_settings,
|
||||
_economy_settings,
|
||||
_game_settings,
|
||||
_linkgraph_settings,
|
||||
_locale_settings,
|
||||
_pathfinding_settings,
|
||||
_script_settings,
|
||||
_world_settings,
|
||||
};
|
||||
|
||||
void IterateSettingsTables(std::function<void(const SettingTable &, void *)> handler)
|
||||
{
|
||||
handler(_misc_settings, nullptr);
|
||||
@@ -207,17 +228,6 @@ enum IniFileVersion : uint32 {
|
||||
|
||||
const uint16 INIFILE_VERSION = (IniFileVersion)(IFV_MAX_VERSION - 1); ///< Current ini-file version of OpenTTD.
|
||||
|
||||
/**
|
||||
* Get the setting at the given index into the settings table.
|
||||
* @param index The index to look for.
|
||||
* @return The setting at the given index, or nullptr when the index is invalid.
|
||||
*/
|
||||
const SettingDesc *GetSettingDescription(uint index)
|
||||
{
|
||||
if (index >= _settings.size()) return nullptr;
|
||||
return _settings.begin()[index].get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the index value of a ONEofMANY type in a string separated by |
|
||||
* @param str the current value of the setting for which a value needs found
|
||||
@@ -2805,14 +2815,6 @@ CommandCost CmdChangeSetting(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
|
||||
return CommandCost();
|
||||
}
|
||||
|
||||
const char *GetSettingNameByIndex(uint32 idx)
|
||||
{
|
||||
const SettingDesc *sd = GetSettingDescription(idx);
|
||||
if (sd == nullptr) return nullptr;
|
||||
|
||||
return sd->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Change one of the per-company settings.
|
||||
* @param tile unused
|
||||
@@ -2961,24 +2963,16 @@ void StringSettingDesc::ChangeValue(const void *object, std::string &newval, Sav
|
||||
if (_save_config) SaveToConfig(ini_save_flags);
|
||||
}
|
||||
|
||||
uint GetSettingIndexByFullName(const char *name)
|
||||
uint GetSettingIndexByFullName(const SettingTable &table, const char *name)
|
||||
{
|
||||
uint index = 0;
|
||||
for (auto &sd : _settings) {
|
||||
for (auto &sd : table) {
|
||||
if (sd->name != nullptr && strcmp(sd->name, name) == 0) return index;
|
||||
index++;
|
||||
}
|
||||
return UINT32_MAX;
|
||||
}
|
||||
|
||||
const SettingDesc *GetSettingFromFullName(const char *name)
|
||||
{
|
||||
for (auto &sd : _settings) {
|
||||
if (sd->name != nullptr && strcmp(sd->name, name) == 0) return sd.get();
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/* Those 2 functions need to be here, else we have to make some stuff non-static
|
||||
* and besides, it is also better to keep stuff like this at the same place */
|
||||
void IConsoleSetSetting(const char *name, const char *value, bool force_newgame)
|
||||
@@ -3129,13 +3123,13 @@ std::vector<LoadSettingsItem> _settings_compat_items;
|
||||
* @param object can be either nullptr in which case we load global variables or
|
||||
* a pointer to a struct which is getting saved
|
||||
*/
|
||||
static void LoadSettings(const SettingTable &settings, std::initializer_list<SettingsCompat> compat, std::vector<LoadSettingsItem> &items, void *object)
|
||||
static void LoadSettings(std::initializer_list<SettingTable> settings, std::initializer_list<SettingsCompat> compat, std::vector<LoadSettingsItem> &items, void *object)
|
||||
{
|
||||
if (items.empty()) {
|
||||
/* Populate setting references */
|
||||
|
||||
btree::btree_multimap<std::string_view, const SettingDesc *> names;
|
||||
for (auto &osd : settings) {
|
||||
for (auto &osd : IterateSettingTables(settings)) {
|
||||
if (osd->flags & SF_NOT_IN_SAVE) continue;
|
||||
if (osd->name == nullptr) continue;
|
||||
names.insert({osd->name, osd.get()});
|
||||
@@ -3212,11 +3206,11 @@ static void LoadSettings(const SettingTable &settings, std::initializer_list<Set
|
||||
* Prepare a sorted list of settings to be potentially be loaded out of the PATX chunk
|
||||
* This is to enable efficient lookup of settings by name
|
||||
*/
|
||||
static std::vector<const SettingDesc *> MakeSettingsPatxList(const SettingTable &settings)
|
||||
static std::vector<const SettingDesc *> MakeSettingsPatxList(std::initializer_list<SettingTable> settings)
|
||||
{
|
||||
std::vector<const SettingDesc *> sorted_patx_settings;
|
||||
|
||||
for (auto &sd : settings) {
|
||||
for (auto &sd : IterateSettingTables(settings)) {
|
||||
if (sd->patx_name == nullptr) continue;
|
||||
sorted_patx_settings.push_back(sd.get());
|
||||
}
|
||||
@@ -3260,13 +3254,15 @@ static const SaveLoad _settings_ext_save_desc[] = {
|
||||
|
||||
/**
|
||||
* Load handler for settings which go in the PATX chunk
|
||||
* @param osd SettingDesc struct containing all information
|
||||
* @param object can be either nullptr in which case we load global variables or
|
||||
* a pointer to a struct which is getting saved
|
||||
*/
|
||||
static void LoadSettingsPatx(const SettingTable &settings, void *object)
|
||||
static void LoadSettingsPatx(void *object)
|
||||
{
|
||||
std::vector<const SettingDesc *> sorted_patx_settings = MakeSettingsPatxList(settings);
|
||||
static std::vector<const SettingDesc *> sorted_patx_settings;
|
||||
if (sorted_patx_settings.empty()) {
|
||||
sorted_patx_settings = MakeSettingsPatxList(_saveload_setting_tables);
|
||||
}
|
||||
|
||||
SettingsExtLoad current_setting;
|
||||
|
||||
@@ -3474,7 +3470,7 @@ static void Load_OPTS()
|
||||
* a networking environment. This ensures for example that the local
|
||||
* autosave-frequency stays when joining a network-server */
|
||||
PrepareOldDiffCustom();
|
||||
LoadSettings(_old_gameopt_settings, _gameopt_compat, _gameopt_compat_items, &_settings_game);
|
||||
LoadSettings({ _old_gameopt_settings }, _gameopt_compat, _gameopt_compat_items, &_settings_game);
|
||||
HandleOldDiffCustom(true);
|
||||
}
|
||||
|
||||
@@ -3483,22 +3479,22 @@ static void Load_PATS()
|
||||
/* Copy over default setting since some might not get loaded in
|
||||
* a networking environment. This ensures for example that the local
|
||||
* currency setting stays when joining a network-server */
|
||||
LoadSettings(_settings, _settings_compat, _settings_compat_items, &_settings_game);
|
||||
LoadSettings(_saveload_setting_tables, _settings_compat, _settings_compat_items, &_settings_game);
|
||||
}
|
||||
|
||||
static void Check_PATS()
|
||||
{
|
||||
LoadSettings(_settings, _settings_compat, _settings_compat_items, &_load_check_data.settings);
|
||||
LoadSettings(_saveload_setting_tables, _settings_compat, _settings_compat_items, &_load_check_data.settings);
|
||||
}
|
||||
|
||||
static void Load_PATX()
|
||||
{
|
||||
LoadSettingsPatx(_settings, &_settings_game);
|
||||
LoadSettingsPatx(&_settings_game);
|
||||
}
|
||||
|
||||
static void Check_PATX()
|
||||
{
|
||||
LoadSettingsPatx(_settings, &_load_check_data.settings);
|
||||
LoadSettingsPatx(&_load_check_data.settings);
|
||||
}
|
||||
|
||||
struct PATSChunkInfo
|
||||
@@ -3545,7 +3541,12 @@ void SetupTimeSettings()
|
||||
_settings_time = (_game_mode == GM_MENU || _settings_client.gui.override_time_settings) ? _settings_client.gui : _settings_game.game_time;
|
||||
}
|
||||
|
||||
const SettingTable &GetSettingsTableInternal()
|
||||
std::initializer_list<SettingTable> GetSaveLoadSettingsTables()
|
||||
{
|
||||
return _settings;
|
||||
return _saveload_setting_tables;
|
||||
}
|
||||
|
||||
const SettingTable &GetLinkGraphSettingTable()
|
||||
{
|
||||
return _linkgraph_settings;
|
||||
}
|
||||
|
@@ -47,7 +47,6 @@ void SyncCompanySettings();
|
||||
|
||||
void SetupTimeSettings();
|
||||
|
||||
const char *GetSettingNameByIndex(uint32 idx);
|
||||
const char *GetCompanySettingNameByIndex(uint32 idx);
|
||||
|
||||
#endif /* SETTINGS_FUNC_H */
|
||||
|
@@ -55,9 +55,6 @@
|
||||
|
||||
#include "safeguards.h"
|
||||
|
||||
uint GetSettingIndexByFullName(const char *name);
|
||||
const SettingDesc *GetSettingDescription(uint index);
|
||||
|
||||
extern void FlushDeparturesWindowTextCaches();
|
||||
|
||||
static const StringID _autosave_dropdown[] = {
|
||||
@@ -2444,10 +2441,11 @@ static SettingsContainer &GetSettingsTree()
|
||||
cdist->Add(new SettingEntry("linkgraph.distribution_default"));
|
||||
SettingsPage *cdist_override = cdist->Add(new SettingsPage(STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST_PER_CARGO_OVERRIDE));
|
||||
{
|
||||
uint base_index = GetSettingIndexByFullName("linkgraph.distribution_per_cargo[0]");
|
||||
const SettingTable &linkgraph_table = GetLinkGraphSettingTable();
|
||||
uint base_index = GetSettingIndexByFullName(linkgraph_table, "linkgraph.distribution_per_cargo[0]");
|
||||
assert(base_index != UINT32_MAX);
|
||||
for (CargoID c = 0; c < NUM_CARGO; c++) {
|
||||
cdist_override->Add(new CargoDestPerCargoSettingEntry(c, GetSettingDescription(base_index + c)->AsIntSetting()));
|
||||
cdist_override->Add(new CargoDestPerCargoSettingEntry(c, GetSettingDescription(linkgraph_table, base_index + c)->AsIntSetting()));
|
||||
}
|
||||
}
|
||||
cdist->Add(new SettingEntry("linkgraph.accuracy"));
|
||||
|
@@ -13,6 +13,7 @@
|
||||
#include "sl/saveload_types.h"
|
||||
|
||||
#include <functional>
|
||||
#include <initializer_list>
|
||||
#include <vector>
|
||||
|
||||
enum SaveToConfigFlags : uint32;
|
||||
@@ -351,6 +352,71 @@ bool SetSettingValue(const IntSettingDesc *sd, int32 value, bool force_newgame =
|
||||
bool SetSettingValue(const StringSettingDesc *sd, const std::string value, bool force_newgame = false);
|
||||
|
||||
void IterateSettingsTables(std::function<void(const SettingTable &, void *)> handler);
|
||||
std::initializer_list<SettingTable> GetSaveLoadSettingsTables();
|
||||
const SettingTable &GetLinkGraphSettingTable();
|
||||
uint GetSettingIndexByFullName(const SettingTable &table, const char *name);
|
||||
|
||||
/**
|
||||
* Get the setting at the given index into a settings table.
|
||||
* @param table The settings table.
|
||||
* @param index The index to look for.
|
||||
* @return The setting at the given index, or nullptr when the index is invalid.
|
||||
*/
|
||||
inline const SettingDesc *GetSettingDescription(const SettingTable &table, uint index)
|
||||
{
|
||||
if (index >= table.size()) return nullptr;
|
||||
return table.begin()[index].get();
|
||||
}
|
||||
|
||||
struct SettingTablesIterator {
|
||||
typedef const std::unique_ptr<const SettingDesc> value_type;
|
||||
typedef const std::unique_ptr<const SettingDesc> *pointer;
|
||||
typedef const std::unique_ptr<const SettingDesc> &reference;
|
||||
typedef size_t difference_type;
|
||||
typedef std::forward_iterator_tag iterator_category;
|
||||
|
||||
explicit SettingTablesIterator(std::initializer_list<SettingTable> &src, std::initializer_list<SettingTable>::iterator outer)
|
||||
: src(src), outer(outer)
|
||||
{
|
||||
this->ResetInner();
|
||||
this->ValidateIndex();
|
||||
};
|
||||
|
||||
explicit SettingTablesIterator(std::initializer_list<SettingTable> &src, std::initializer_list<SettingTable>::iterator outer, SettingTable::iterator inner)
|
||||
: src(src), outer(outer), inner(inner) {}
|
||||
|
||||
bool operator==(const SettingTablesIterator &other) const { return this->outer == other.outer && this->inner == other.inner; }
|
||||
bool operator!=(const SettingTablesIterator &other) const { return !(*this == other); }
|
||||
const std::unique_ptr<const SettingDesc> &operator*() const { return *this->inner; }
|
||||
SettingTablesIterator &operator++() { ++this->inner; this->ValidateIndex(); return *this; }
|
||||
|
||||
private:
|
||||
std::initializer_list<SettingTable> &src;
|
||||
std::initializer_list<SettingTable>::iterator outer;
|
||||
SettingTable::iterator inner;
|
||||
|
||||
void ResetInner()
|
||||
{
|
||||
this->inner = (this->outer != this->src.end()) ? this->outer->begin() : SettingTable::iterator();
|
||||
}
|
||||
|
||||
void ValidateIndex()
|
||||
{
|
||||
while (this->outer != this->src.end() && this->inner == this->outer->end()) {
|
||||
++this->outer;
|
||||
this->ResetInner();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/* Wrapper to iterate the settings within a set of settings tables: std::initializer_list<SettingTable> */
|
||||
struct IterateSettingTables {
|
||||
std::initializer_list<SettingTable> tables;
|
||||
|
||||
IterateSettingTables(std::initializer_list<SettingTable> tables) : tables(tables) {}
|
||||
SettingTablesIterator begin() { return SettingTablesIterator(this->tables, this->tables.begin()); }
|
||||
SettingTablesIterator end() { return SettingTablesIterator(this->tables, this->tables.end(), SettingTable::iterator()); }
|
||||
};
|
||||
|
||||
enum class SettingsCompatType : uint8 {
|
||||
Null,
|
||||
|
@@ -20,8 +20,6 @@
|
||||
typedef LinkGraph::BaseNode Node;
|
||||
typedef LinkGraph::BaseEdge Edge;
|
||||
|
||||
const SettingDesc *GetSettingDescription(uint index);
|
||||
|
||||
static uint16 _num_nodes;
|
||||
|
||||
/**
|
||||
@@ -58,19 +56,14 @@ void GetLinkGraphJobDayLengthScaleAfterLoad(LinkGraphJob *lgj)
|
||||
SaveLoadTable GetLinkGraphJobDesc()
|
||||
{
|
||||
static std::vector<SaveLoad> saveloads;
|
||||
static const char *prefix = "linkgraph.";
|
||||
|
||||
/* Build the SaveLoad array on first call and don't touch it later on */
|
||||
if (saveloads.size() == 0) {
|
||||
size_t offset_gamesettings = cpp_offsetof(GameSettings, linkgraph);
|
||||
size_t offset_component = cpp_offsetof(LinkGraphJob, settings);
|
||||
|
||||
size_t prefixlen = strlen(prefix);
|
||||
|
||||
int setting = 0;
|
||||
const SettingDesc *desc = GetSettingDescription(setting);
|
||||
while (desc != nullptr) {
|
||||
if (desc->name != nullptr && strncmp(desc->name, prefix, prefixlen) == 0) {
|
||||
const SettingTable &linkgraph_table = GetLinkGraphSettingTable();
|
||||
for (const auto &desc : linkgraph_table) {
|
||||
SaveLoad sl = desc->save;
|
||||
if (GetVarMemType(sl.conv) != SLE_VAR_NULL) {
|
||||
char *&address = reinterpret_cast<char *&>(sl.address);
|
||||
@@ -79,8 +72,6 @@ SaveLoadTable GetLinkGraphJobDesc()
|
||||
}
|
||||
saveloads.push_back(sl);
|
||||
}
|
||||
desc = GetSettingDescription(++setting);
|
||||
}
|
||||
|
||||
const SaveLoad job_desc[] = {
|
||||
SLE_VAR(LinkGraphJob, join_date_ticks, SLE_INT32),
|
||||
|
@@ -13,6 +13,9 @@ static size_t ConvertLandscape(const char *value);
|
||||
/* Callback function used in _settings[] as well as _gui_settings[] */
|
||||
static void UpdateTimeSettings(int32 new_value);
|
||||
|
||||
/* Callback function used for various settings */
|
||||
static bool CheckTTDPatchSettingFlag(uint flag);
|
||||
|
||||
|
||||
/****************************
|
||||
* OTTD specific INI stuff
|
||||
|
@@ -4,7 +4,12 @@ set(TABLE_BINARY_DIR ${GENERATED_BINARY_DIR}/table)
|
||||
set(TABLE_INI_SOURCE_FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/company_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/currency_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/difficulty_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/economy_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/game_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gui_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/linkgraph_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/locale_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/misc_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/multimedia_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/network_settings.ini
|
||||
@@ -12,10 +17,12 @@ set(TABLE_INI_SOURCE_FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/network_secrets_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/news_display_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/old_gameopt_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pathfinding_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/scenario_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/script_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/win32_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/window_settings.ini
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/world_settings.ini
|
||||
)
|
||||
|
||||
if (HOST_BINARY_DIR)
|
||||
|
@@ -8,9 +8,9 @@
|
||||
; company changes them, it changes for all players.
|
||||
|
||||
[pre-amble]
|
||||
static void UpdateAllServiceInterval(int32 new_value);
|
||||
static bool CanUpdateServiceInterval(VehicleType type, int32 &new_value);
|
||||
static void UpdateServiceInterval(VehicleType type, int32 new_value);
|
||||
static void UpdateAllServiceInterval(int32_t new_value);
|
||||
static bool CanUpdateServiceInterval(VehicleType type, int32_t &new_value);
|
||||
static void UpdateServiceInterval(VehicleType type, int32_t new_value);
|
||||
|
||||
static const SettingTable _company_settings{
|
||||
[post-amble]
|
||||
|
@@ -34,7 +34,6 @@ startup = false
|
||||
extver = SlXvFeatureTest()
|
||||
|
||||
|
||||
|
||||
[SDT_VAR]
|
||||
var = rate
|
||||
type = SLE_UINT16
|
||||
|
369
src/table/settings/difficulty_settings.ini
Normal file
369
src/table/settings/difficulty_settings.ini
Normal file
@@ -0,0 +1,369 @@
|
||||
; This file is part of OpenTTD.
|
||||
; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
|
||||
; Difficulty settings as stored in the main configuration file ("openttd.cfg")
|
||||
; and in the savegame PATS chunk.
|
||||
|
||||
[pre-amble]
|
||||
static const uint GAME_DIFFICULTY_NUM = 18;
|
||||
static const std::array<std::string, GAME_DIFFICULTY_NUM> _old_diff_settings{"max_no_competitors", "competitor_start_time", "number_towns", "industry_density", "max_loan", "initial_interest", "vehicle_costs", "competitor_speed", "competitor_intelligence", "vehicle_breakdowns", "subsidy_multiplier", "construction_cost", "terrain_type", "quantity_sea_lakes", "economy", "line_reverse_mode", "disasters", "town_council_tolerance"};
|
||||
static uint16 _old_diff_custom[GAME_DIFFICULTY_NUM];
|
||||
uint8 _old_diff_level; ///< Old difficulty level from old savegames
|
||||
|
||||
static void DifficultyNoiseChange(int32_t new_value);
|
||||
static void MaxNoAIsChange(int32_t new_value);
|
||||
static bool TownCouncilToleranceAdjust(int32 &new_value);
|
||||
static void DifficultyMoneyCheatMultiplayerChange(int32 new_value);
|
||||
static void DifficultyRenameTownsMultiplayerChange(int32 new_value);
|
||||
static void DifficultyOverrideTownSettingsMultiplayerChange(int32 new_value);
|
||||
|
||||
static const SettingDescEnumEntry _town_council_approval[] = {
|
||||
{ 0, STR_CITY_APPROVAL_LENIENT },
|
||||
{ 1, STR_CITY_APPROVAL_TOLERANT },
|
||||
{ 2, STR_CITY_APPROVAL_HOSTILE },
|
||||
{ 3, STR_CITY_APPROVAL_PERMISSIVE },
|
||||
{ 0, STR_NULL }
|
||||
};
|
||||
|
||||
static const SettingDescEnumEntry _vehicle_breakdown_modes[] = {
|
||||
{ 0, STR_DISASTER_NONE },
|
||||
{ 64, STR_VERY_REDUCED },
|
||||
{ 1, STR_DISASTER_REDUCED },
|
||||
{ 2, STR_DISASTER_NORMAL },
|
||||
{ 0, STR_NULL }
|
||||
};
|
||||
|
||||
static const SettingTable _difficulty_settings{
|
||||
[post-amble]
|
||||
};
|
||||
[templates]
|
||||
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
||||
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_ENUM = SDT_ENUM(GameSettings, $var, $type, $flags, $def, $str, $strhelp, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname, $enumlist),
|
||||
|
||||
[validation]
|
||||
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||
|
||||
[defaults]
|
||||
flags = SF_NONE
|
||||
interval = 0
|
||||
str = STR_NULL
|
||||
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||
strval = STR_NULL
|
||||
pre_cb = nullptr
|
||||
post_cb = nullptr
|
||||
guiproc = nullptr
|
||||
load = nullptr
|
||||
from = SL_MIN_VERSION
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
startup = false
|
||||
extver = SlXvFeatureTest()
|
||||
patxname = nullptr
|
||||
enumlist = <this parameter must be set>
|
||||
|
||||
|
||||
; Saved settings variables.
|
||||
; The next 18 entries are important for savegame compatibility. Do NOT remove those. See HandleOldDiffCustom() for more details.
|
||||
[SDT_VAR]
|
||||
var = difficulty.max_no_competitors
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
def = 0
|
||||
min = 0
|
||||
max = MAX_COMPANIES - 1
|
||||
interval = 1
|
||||
post_cb = MaxNoAIsChange
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.competitors_interval
|
||||
type = SLE_UINT16
|
||||
def = 10
|
||||
min = MIN_COMPETITORS_INTERVAL
|
||||
max = MAX_COMPETITORS_INTERVAL
|
||||
interval = 1
|
||||
patxname = ""difficulty.competitors_interval""
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.competitor_start_time
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
to = SLV_110
|
||||
def = 2
|
||||
min = 0
|
||||
max = 3
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.number_towns
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_NEWGAME_ONLY
|
||||
def = 2
|
||||
min = 0
|
||||
max = 4
|
||||
interval = 1
|
||||
strval = STR_NUM_VERY_LOW
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.industry_density
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = ID_NORMAL
|
||||
min = 0
|
||||
max = ID_END - 1
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_INDUSTRY_DENSITY
|
||||
strhelp = STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT
|
||||
strval = STR_FUNDING_ONLY
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.max_loan
|
||||
type = SLE_UINT32
|
||||
from = SLV_97
|
||||
flags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_CURRENCY | SF_GUI_0_IS_SPECIAL
|
||||
def = 300000
|
||||
min = LOAN_INTERVAL
|
||||
max = 2000000000
|
||||
pre_cb = [](auto &new_value) { new_value = (new_value + LOAN_INTERVAL / 2) / LOAN_INTERVAL * LOAN_INTERVAL; return true; }
|
||||
interval = LOAN_INTERVAL
|
||||
str = STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN
|
||||
strhelp = STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_VALUE
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.initial_interest
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO
|
||||
def = 2
|
||||
min = 2
|
||||
max = 4
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_INTEREST_RATE
|
||||
strhelp = STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.vehicle_costs
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_DROPDOWN
|
||||
def = 0
|
||||
min = 0
|
||||
max = 2
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_RUNNING_COSTS
|
||||
strhelp = STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT
|
||||
strval = STR_SEA_LEVEL_LOW
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.vehicle_costs_in_depot
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = 1
|
||||
min = 1
|
||||
max = 8
|
||||
str = STR_CONFIG_SETTING_RUNNING_COSTS_IN_DEPOT
|
||||
strhelp = STR_CONFIG_SETTING_RUNNING_COSTS_IN_DEPOT_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_RUNNING_COSTS_IN_DEPOT_VALUE
|
||||
patxname = ""difficulty.vehicle_costs_in_depot""
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.vehicle_costs_when_stopped
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = 1
|
||||
min = 1
|
||||
max = 8
|
||||
str = STR_CONFIG_SETTING_RUNNING_COSTS_WHEN_STOPPED
|
||||
strhelp = STR_CONFIG_SETTING_RUNNING_COSTS_WHEN_STOPPED_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_RUNNING_COSTS_WHEN_STOPPED_VALUE
|
||||
strval = STR_CONFIG_SETTING_RUNNING_COSTS_IN_DEPOT_VALUE
|
||||
patxname = ""difficulty.vehicle_costs_when_stopped""
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.competitor_speed
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 2
|
||||
min = 0
|
||||
max = 4
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_CONSTRUCTION_SPEED
|
||||
strhelp = STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT
|
||||
strval = STR_AI_SPEED_VERY_SLOW
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.competitor_intelligence
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
to = SLV_110
|
||||
def = 0
|
||||
min = 0
|
||||
max = 2
|
||||
|
||||
[SDT_ENUM]
|
||||
var = difficulty.vehicle_breakdowns
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
def = 1
|
||||
enumlist = _vehicle_breakdown_modes
|
||||
str = STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS
|
||||
strhelp = STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.subsidy_multiplier
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 2
|
||||
min = 0
|
||||
max = 3
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER
|
||||
strhelp = STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT
|
||||
strval = STR_SUBSIDY_X1_5
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.subsidy_duration
|
||||
type = SLE_UINT16
|
||||
from = SLV_CUSTOM_SUBSIDY_DURATION
|
||||
flags = SF_GUI_0_IS_SPECIAL
|
||||
def = 1
|
||||
min = 0
|
||||
max = 5000
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_SUBSIDY_DURATION
|
||||
strhelp = STR_CONFIG_SETTING_SUBSIDY_DURATION_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_SUBSIDY_DURATION_VALUE
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.construction_cost
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_NEWGAME_ONLY | SF_SCENEDIT_TOO | SF_GUI_DROPDOWN
|
||||
def = 0
|
||||
min = 0
|
||||
max = 2
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_CONSTRUCTION_COSTS
|
||||
strhelp = STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT
|
||||
strval = STR_SEA_LEVEL_LOW
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.terrain_type
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_GUI_DROPDOWN | SF_NEWGAME_ONLY
|
||||
def = 1
|
||||
min = 0
|
||||
max = 5
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TERRAIN_TYPE
|
||||
strhelp = STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT
|
||||
strval = STR_TERRAIN_TYPE_VERY_FLAT
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = difficulty.quantity_sea_lakes
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_NEWGAME_ONLY
|
||||
def = 0
|
||||
min = 0
|
||||
max = 4
|
||||
interval = 1
|
||||
strval = STR_SEA_LEVEL_VERY_LOW
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = difficulty.economy
|
||||
from = SLV_97
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_RECESSIONS
|
||||
strhelp = STR_CONFIG_SETTING_RECESSIONS_HELPTEXT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = difficulty.line_reverse_mode
|
||||
from = SLV_97
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_TRAIN_REVERSING
|
||||
strhelp = STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = difficulty.disasters
|
||||
from = SLV_97
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_DISASTERS
|
||||
strhelp = STR_CONFIG_SETTING_DISASTERS_HELPTEXT
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_ENUM]
|
||||
var = difficulty.town_council_tolerance
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_ENUM_PRE_CB_VALIDATE
|
||||
def = 0
|
||||
enumlist = _town_council_approval
|
||||
str = STR_CONFIG_SETTING_CITY_APPROVAL
|
||||
strhelp = STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT
|
||||
pre_cb = TownCouncilToleranceAdjust
|
||||
post_cb = DifficultyNoiseChange
|
||||
|
||||
[SDT_BOOL]
|
||||
var = difficulty.money_cheat_in_multiplayer
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_MONEY_CHEAT_MULTIPLAYER
|
||||
strhelp = STR_CONFIG_SETTING_MONEY_CHEAT_MULTIPLAYER_HELPTEXT
|
||||
post_cb = DifficultyMoneyCheatMultiplayerChange
|
||||
cat = SC_EXPERT
|
||||
patxname = ""cheat.difficulty.money_cheat_in_multiplayer""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = difficulty.rename_towns_in_multiplayer
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_RENAME_TOWNS_MULTIPLAYER
|
||||
strhelp = STR_CONFIG_SETTING_RENAME_TOWNS_MULTIPLAYER_HELPTEXT
|
||||
post_cb = DifficultyRenameTownsMultiplayerChange
|
||||
cat = SC_EXPERT
|
||||
patxname = ""cheat.difficulty.rename_towns_in_multiplayer""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = difficulty.override_town_settings_in_multiplayer
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_OVERRIDE_TOWN_SETTINGS_MULTIPLAYER
|
||||
strhelp = STR_CONFIG_SETTING_OVERRIDE_TOWN_SETTINGS_MULTIPLAYER_HELPTEXT
|
||||
post_cb = DifficultyOverrideTownSettingsMultiplayerChange
|
||||
cat = SC_EXPERT
|
||||
patxname = ""cheat.difficulty.override_town_settings_in_multiplayer""
|
||||
|
||||
[SDTG_VAR]
|
||||
name = ""diff_level""
|
||||
var = _old_diff_level
|
||||
type = SLE_UINT8
|
||||
flags = SF_NOT_IN_CONFIG
|
||||
from = SLV_97
|
||||
to = SLV_178
|
||||
def = 3
|
||||
min = 0
|
||||
max = 3
|
||||
cat = SC_BASIC
|
||||
|
789
src/table/settings/economy_settings.ini
Normal file
789
src/table/settings/economy_settings.ini
Normal file
@@ -0,0 +1,789 @@
|
||||
; This file is part of OpenTTD.
|
||||
; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
|
||||
; Economy settings as stored in the main configuration file ("openttd.cfg")
|
||||
; and in the savegame PATS chunk.
|
||||
|
||||
[pre-amble]
|
||||
static void TownFoundingChanged(int32_t new_value);
|
||||
static void InvalidateCompanyWindow(int32 new_value);
|
||||
static bool DayLengthPreChange(int32 &new_value);
|
||||
static void DayLengthChanged(int32 new_value);
|
||||
static bool CheckSharingRail(int32 &new_value);
|
||||
static void SharingRailChanged(int32 new_value);
|
||||
static bool CheckSharingRoad(int32 &new_value);
|
||||
static bool CheckSharingWater(int32 &new_value);
|
||||
static bool CheckSharingAir(int32 &new_value);
|
||||
static void TownZoneModeChanged(int32 new_value);
|
||||
static void TownZoneCustomValueChanged(int32 new_value);
|
||||
|
||||
static bool OrderTownGrowthRate(SettingOnGuiCtrlData &data);
|
||||
|
||||
static const SettingTable _economy_settings{
|
||||
[post-amble]
|
||||
};
|
||||
[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),
|
||||
|
||||
[validation]
|
||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||
|
||||
[defaults]
|
||||
flags = SF_NONE
|
||||
interval = 0
|
||||
str = STR_NULL
|
||||
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||
strval = STR_NULL
|
||||
pre_cb = nullptr
|
||||
post_cb = nullptr
|
||||
guiproc = nullptr
|
||||
load = nullptr
|
||||
from = SL_MIN_VERSION
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
startup = false
|
||||
extver = SlXvFeatureTest()
|
||||
patxname = nullptr
|
||||
enumlist = <this parameter must be set>
|
||||
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_layout
|
||||
type = SLE_UINT8
|
||||
from = SLV_59
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = TL_ORIGINAL
|
||||
min = TL_BEGIN
|
||||
max = NUM_TLS - 1
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_LAYOUT
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT
|
||||
post_cb = TownFoundingChanged
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.allow_town_roads
|
||||
from = SLV_113
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT
|
||||
pre_cb = [](int32 &new_value) -> bool { return CheckTTDPatchSettingFlag(0x62); }
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.found_town
|
||||
type = SLE_UINT8
|
||||
from = SLV_128
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = TF_FORBIDDEN
|
||||
min = TF_BEGIN
|
||||
max = TF_END - 1
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_FOUNDING
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN
|
||||
post_cb = TownFoundingChanged
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.allow_town_level_crossings
|
||||
from = SLV_143
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_build_tunnels
|
||||
type = SLE_UINT8
|
||||
flags = SF_GUI_DROPDOWN | SF_PATCH
|
||||
def = TTM_ALLOWED
|
||||
min = TTM_BEGIN
|
||||
max = TTM_END - 1
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_TUNNELS
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_TUNNELS_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_TOWN_TUNNELS_FORBIDDEN
|
||||
cat = SC_BASIC
|
||||
patxname = ""economy.town_build_tunnels""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_max_road_slope
|
||||
type = SLE_UINT8
|
||||
flags = SF_GUI_0_IS_SPECIAL | SF_PATCH
|
||||
def = 4
|
||||
min = 0
|
||||
max = 8
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_MAX_ROAD_SLOPE
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_MAX_ROAD_SLOPE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_TOWN_MAX_ROAD_SLOPE_VALUE
|
||||
cat = SC_BASIC
|
||||
patxname = ""economy.town_max_road_slope""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.allow_town_bridges
|
||||
flags = SF_PATCH
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_ALLOW_TOWN_BRIDGES
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_TOWN_BRIDGES_HELPTEXT
|
||||
cat = SC_BASIC
|
||||
patxname = ""economy.allow_town_bridges""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_cargogen_mode
|
||||
type = SLE_UINT8
|
||||
from = SLV_TOWN_CARGOGEN
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = TCGM_BITCOUNT
|
||||
min = TCGM_BEGIN
|
||||
max = TCGM_END - 1
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_CARGOGENMODE
|
||||
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
|
||||
flags = SF_PATCH
|
||||
def = MAX_MAP_HEIGHT_LIMIT
|
||||
min = 2
|
||||
max = MAX_MAP_HEIGHT_LIMIT
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_ABOVE_HEIGHT
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_ABOVE_HEIGHT_HELPTEXT
|
||||
strval = STR_JUST_INT
|
||||
cat = SC_BASIC
|
||||
patxname = ""max_town_heightlevel.economy.max_town_heightlevel""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.min_town_land_area
|
||||
type = SLE_UINT16
|
||||
flags = SF_GUI_0_IS_SPECIAL | SF_PATCH
|
||||
def = 0
|
||||
min = 0
|
||||
max = 400
|
||||
interval = 5
|
||||
str = STR_CONFIG_SETTING_MIN_TOWN_LAND_AREA
|
||||
strhelp = STR_CONFIG_SETTING_MIN_TOWN_LAND_AREA_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_MIN_LAND_AREA_VALUE
|
||||
cat = SC_BASIC
|
||||
patxname = ""max_town_heightlevel.economy.min_town_land_area""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.min_city_land_area
|
||||
type = SLE_UINT16
|
||||
flags = SF_GUI_0_IS_SPECIAL | SF_PATCH
|
||||
def = 75
|
||||
min = 0
|
||||
max = 400
|
||||
interval = 5
|
||||
str = STR_CONFIG_SETTING_MIN_CITY_LAND_AREA
|
||||
strhelp = STR_CONFIG_SETTING_MIN_CITY_LAND_AREA_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_MIN_LAND_AREA_VALUE
|
||||
cat = SC_BASIC
|
||||
patxname = ""max_town_heightlevel.economy.min_city_land_area""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.station_noise_level
|
||||
from = SLV_96
|
||||
flags = SF_NO_NETWORK
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_NOISE_LEVEL
|
||||
strhelp = STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT
|
||||
post_cb = [](auto new_value) { InvalidateWindowClassesData(WC_TOWN_VIEW, new_value); }
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.inflation
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_INFLATION
|
||||
strhelp = STR_CONFIG_SETTING_INFLATION_HELPTEXT
|
||||
cat = SC_BASIC
|
||||
pre_cb = [](int32 &new_value) -> bool { return CheckTTDPatchSettingFlag(0x81); }
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.inflation_fixed_dates
|
||||
flags = SF_PATCH
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_INFLATION_FIXED_DATES
|
||||
strhelp = STR_CONFIG_SETTING_INFLATION_FIXED_DATES_HELPTEXT
|
||||
patxname = ""inflation_fixed_dates.economy.inflation_fixed_dates""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.day_length_factor
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = 1
|
||||
min = 1
|
||||
max = 125
|
||||
str = STR_CONFIG_SETTING_DAY_LENGTH_FACTOR
|
||||
strhelp = STR_CONFIG_SETTING_DAY_LENGTH_FACTOR_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
pre_cb = DayLengthPreChange
|
||||
post_cb = DayLengthChanged
|
||||
cat = SC_BASIC
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_VARIABLE_DAY_LENGTH)
|
||||
patxname = ""variable_day_length.economy.day_length_factor""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.multiple_industry_per_town
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_MULTIPINDTOWN
|
||||
strhelp = STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.bribe
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_BRIBE
|
||||
strhelp = STR_CONFIG_SETTING_BRIBE_HELPTEXT
|
||||
post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.exclusive_rights
|
||||
from = SLV_79
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT
|
||||
post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.fund_buildings
|
||||
from = SLV_165
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT
|
||||
post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.fund_roads
|
||||
from = SLV_160
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_ALLOW_FUND_ROAD
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT
|
||||
post_cb = [](auto) { SetWindowClassesDirty(WC_TOWN_AUTHORITY); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.give_money
|
||||
from = SLV_79
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.type
|
||||
type = SLE_UINT8
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = ET_SMOOTH
|
||||
min = ET_BEGIN
|
||||
max = ET_END - 1
|
||||
str = STR_CONFIG_SETTING_ECONOMY_TYPE
|
||||
strhelp = STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_INDUSTRY_VIEW); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.allow_shares
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_ALLOW_SHARES
|
||||
strhelp = STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT
|
||||
post_cb = InvalidateCompanyWindow
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.min_years_for_shares
|
||||
type = SLE_UINT8
|
||||
from = SLV_TRADING_AGE
|
||||
flags = SF_GUI_0_IS_SPECIAL
|
||||
def = 6
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES
|
||||
strhelp = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.feeder_payment_share
|
||||
type = SLE_UINT8
|
||||
from = SLV_134
|
||||
def = 75
|
||||
min = 0
|
||||
max = 100
|
||||
str = STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE
|
||||
strhelp = STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_growth_rate
|
||||
type = SLE_INT8
|
||||
from = SLV_54
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 2
|
||||
min = -2
|
||||
max = 4
|
||||
str = STR_CONFIG_SETTING_TOWN_GROWTH
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_TOWN_GROWTH_EXTREME_SLOW
|
||||
guiproc = OrderTownGrowthRate
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.town_zone_calc_mode
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_TOWN_ZONE_CALC_MODE
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_ZONE_CALC_MODE_HELPTEXT
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneModeChanged
|
||||
patxname = ""town_zone.economy.town_zone_calc_mode""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_zone_0_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 15
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_ZONE_0_MULT
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_ZONE_0_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.town_zone_0_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_zone_1_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 9
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_ZONE_1_MULT
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_ZONE_1_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.town_zone_1_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_zone_2_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 0
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_ZONE_2_MULT
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_ZONE_2_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.town_zone_2_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_zone_3_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 5
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_ZONE_3_MULT
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_ZONE_3_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.town_zone_3_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_zone_4_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 3
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TOWN_ZONE_4_MULT
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_ZONE_4_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.town_zone_4_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.city_zone_0_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 15
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_CITY_ZONE_0_MULT
|
||||
strhelp = STR_CONFIG_SETTING_CITY_ZONE_0_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.city_zone_0_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.city_zone_1_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 9
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_CITY_ZONE_1_MULT
|
||||
strhelp = STR_CONFIG_SETTING_CITY_ZONE_1_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.city_zone_1_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.city_zone_2_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 0
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_CITY_ZONE_2_MULT
|
||||
strhelp = STR_CONFIG_SETTING_CITY_ZONE_2_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.city_zone_2_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.city_zone_3_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 5
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_CITY_ZONE_3_MULT
|
||||
strhelp = STR_CONFIG_SETTING_CITY_ZONE_3_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.city_zone_3_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.city_zone_4_mult
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 3
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_CITY_ZONE_4_MULT
|
||||
strhelp = STR_CONFIG_SETTING_CITY_ZONE_4_MULT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_EXPERT
|
||||
post_cb = TownZoneCustomValueChanged
|
||||
patxname = ""town_zone.economy.city_zone_4_mult""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_growth_cargo_transported
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = 0
|
||||
min = 0
|
||||
max = 100
|
||||
interval = 10
|
||||
str = STR_CONFIG_SETTING_TOWN_GROWTH_CARGO_TRANSPORTED
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_GROWTH_CARGO_TRANSPORTED_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
cat = SC_EXPERT
|
||||
patxname = ""town_growth.economy.town_growth_cargo_transported""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.larger_towns
|
||||
type = SLE_UINT8
|
||||
from = SLV_54
|
||||
flags = SF_GUI_0_IS_SPECIAL
|
||||
def = 4
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_LARGER_TOWNS
|
||||
strhelp = STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_LARGER_TOWNS_VALUE
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.initial_city_size
|
||||
type = SLE_UINT8
|
||||
from = SLV_56
|
||||
def = 2
|
||||
min = 1
|
||||
max = 10
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER
|
||||
strhelp = STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.mod_road_rebuild
|
||||
from = SLV_77
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_min_distance
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 20
|
||||
min = 15
|
||||
max = 500
|
||||
interval = 5
|
||||
str = STR_CONFIG_SETTING_TOWN_MIN_DISTANCE
|
||||
strhelp = STR_CONFIG_SETTING_TOWN_MIN_DISTANCE_HELPTEXT
|
||||
strval = STR_JUST_INT
|
||||
patxname = ""town_min_distance.economy.town_min_distance""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.infrastructure_sharing[0]
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_SHARING_RAIL
|
||||
pre_cb = CheckSharingRail
|
||||
post_cb = SharingRailChanged
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.economy.infrastructure_sharing.rail""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.infrastructure_sharing[1]
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_SHARING_ROAD
|
||||
pre_cb = CheckSharingRoad
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.economy.infrastructure_sharing.road""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.infrastructure_sharing[2]
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_SHARING_WATER
|
||||
pre_cb = CheckSharingWater
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.economy.infrastructure_sharing.water""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.infrastructure_sharing[3]
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_SHARING_AIR
|
||||
pre_cb = CheckSharingAir
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.economy.infrastructure_sharing.air""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.sharing_fee[0]
|
||||
type = SLE_UINT
|
||||
flags = SF_GUI_CURRENCY | SF_PATCH
|
||||
def = 100
|
||||
min = 0
|
||||
max = 1000000
|
||||
interval = 10
|
||||
str = STR_CONFIG_SETTING_SHARING_FEE_RAIL
|
||||
strhelp = STR_CONFIG_SETTING_SHARING_FEE_HELPTEXT
|
||||
strval = STR_JUST_CURRENCY_LONG
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.economy.sharing_fee.rail""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.sharing_fee[1]
|
||||
type = SLE_UINT
|
||||
flags = SF_GUI_CURRENCY | SF_PATCH
|
||||
def = 100
|
||||
min = 0
|
||||
max = 1000000
|
||||
interval = 10
|
||||
str = STR_CONFIG_SETTING_SHARING_FEE_ROAD
|
||||
strhelp = STR_CONFIG_SETTING_SHARING_FEE_HELPTEXT
|
||||
strval = STR_JUST_CURRENCY_LONG
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.economy.sharing_fee.road""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.sharing_fee[2]
|
||||
type = SLE_UINT
|
||||
flags = SF_GUI_CURRENCY | SF_PATCH
|
||||
def = 100
|
||||
min = 0
|
||||
max = 1000000
|
||||
interval = 10
|
||||
str = STR_CONFIG_SETTING_SHARING_FEE_WATER
|
||||
strhelp = STR_CONFIG_SETTING_SHARING_FEE_HELPTEXT
|
||||
strval = STR_JUST_CURRENCY_LONG
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.economy.sharing_fee.water""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.sharing_fee[3]
|
||||
type = SLE_UINT
|
||||
flags = SF_GUI_CURRENCY | SF_PATCH
|
||||
def = 100
|
||||
min = 0
|
||||
max = 1000000
|
||||
interval = 10
|
||||
str = STR_CONFIG_SETTING_SHARING_FEE_AIR
|
||||
strhelp = STR_CONFIG_SETTING_SHARING_FEE_HELPTEXT
|
||||
strval = STR_JUST_CURRENCY_LONG
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.economy.sharing_fee.air""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.sharing_payment_in_debt
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_SHARING_PAYMENT_IN_DEBT
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.economy.sharing_payment_in_debt""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.dist_local_authority
|
||||
type = SLE_UINT8
|
||||
def = 20
|
||||
min = 5
|
||||
max = 60
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_noise_population[0]
|
||||
type = SLE_UINT16
|
||||
from = SLV_96
|
||||
def = 800
|
||||
min = 200
|
||||
max = 65535
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_noise_population[1]
|
||||
type = SLE_UINT16
|
||||
from = SLV_96
|
||||
def = 2000
|
||||
min = 400
|
||||
max = 65535
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.town_noise_population[2]
|
||||
type = SLE_UINT16
|
||||
from = SLV_96
|
||||
def = 4000
|
||||
min = 800
|
||||
max = 65535
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.infrastructure_maintenance
|
||||
from = SLV_166
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE
|
||||
strhelp = STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT
|
||||
post_cb = [](auto) { InvalidateWindowClassesData(WC_COMPANY_INFRASTRUCTURE); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.random_road_reconstruction
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 0
|
||||
min = 0
|
||||
max = 1000
|
||||
str = STR_CONFIG_SETTING_RANDOM_ROAD_RECONSTRUCTION
|
||||
strhelp = STR_CONFIG_SETTING_RANDOM_ROAD_RECONSTRUCTION_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
cat = SC_BASIC
|
||||
patxname = ""economy.random_road_reconstruction""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = economy.disable_inflation_newgrf_flag
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
cat = SC_EXPERT
|
||||
patxname = ""economy.disable_inflation_newgrf_flag""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.payment_algorithm
|
||||
type = SLE_UINT8
|
||||
flags = SF_GUI_DROPDOWN | SF_PATCH
|
||||
def = CPA_MODERN
|
||||
min = CPA_BEGIN
|
||||
max = CPA_END - 1
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_CARGO_PAYMENT_ALGORITHM
|
||||
strhelp = STR_CONFIG_SETTING_CARGO_PAYMENT_ALGORITHM_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_CARGO_PAYMENT_ALGORITHM_TRADITIONAL
|
||||
cat = SC_BASIC
|
||||
patxname = ""economy.payment_algorithm""
|
||||
|
||||
[SDT_VAR]
|
||||
var = economy.tick_rate
|
||||
type = SLE_UINT8
|
||||
flags = SF_GUI_DROPDOWN | SF_PATCH
|
||||
def = TRM_TRADITIONAL
|
||||
min = TRM_BEGIN
|
||||
max = TRM_END - 1
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TICK_RATE
|
||||
strhelp = STR_CONFIG_SETTING_TICK_RATE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_TICK_RATE_TRADITIONAL
|
||||
cat = SC_EXPERT
|
||||
post_cb = [](auto) { SetupTickRate(); }
|
||||
patxname = ""economy.tick_rate""
|
748
src/table/settings/game_settings.ini
Normal file
748
src/table/settings/game_settings.ini
Normal file
@@ -0,0 +1,748 @@
|
||||
; This file is part of OpenTTD.
|
||||
; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
|
||||
; Game settings as stored in the main configuration file ("openttd.cfg")
|
||||
; and in the savegame PATS chunk.
|
||||
; Game settings are everything related to vehicles, stations, orders, etc.
|
||||
|
||||
[pre-amble]
|
||||
static constexpr std::initializer_list<const char*> _roadsides{"left", "right"};
|
||||
|
||||
static void StationSpreadChanged(int32_t new_value);
|
||||
static void UpdateConsists(int32_t new_value);
|
||||
static void TrainAccelerationModelChanged(int32_t new_value);
|
||||
static bool CheckTrainBrakingModelChange(int32 &new_value);
|
||||
static void TrainBrakingModelChanged(int32 new_value);
|
||||
static void RoadVehAccelerationModelChanged(int32_t new_value);
|
||||
static void TrainSlopeSteepnessChanged(int32_t new_value);
|
||||
static void RoadVehSlopeSteepnessChanged(int32_t new_value);
|
||||
static bool CheckRoadSide(int32_t &new_value);
|
||||
static void RoadSideChanged(int32 new_value);
|
||||
static bool CheckDynamicEngines(int32_t &new_value);
|
||||
static void StationCatchmentChanged(int32_t new_value);
|
||||
static void MaxVehiclesChanged(int32_t new_value);
|
||||
static void ImprovedBreakdownsSettingChanged(int32 new_value);
|
||||
static void TrainSpeedAdaptationChanged(int32 new_value);
|
||||
|
||||
static const SettingDescEnumEntry _train_braking_model[] = {
|
||||
{ TBM_ORIGINAL, STR_CONFIG_SETTING_ORIGINAL },
|
||||
{ TBM_REALISTIC, STR_CONFIG_SETTING_TRAIN_BRAKING_REALISTIC },
|
||||
{ 0, STR_NULL }
|
||||
};
|
||||
|
||||
static const SettingDescEnumEntry _realistic_braking_aspect_limited[] = {
|
||||
{ TRBALM_OFF, STR_CONFIG_SETTING_OFF },
|
||||
{ TRBALM_ON, STR_CONFIG_SETTING_TRAIN_BRAKING_ASPECT_LIMITED_ON },
|
||||
{ 0, STR_NULL }
|
||||
};
|
||||
|
||||
static const SettingDescEnumEntry _station_delivery_mode[] = {
|
||||
{ SD_NEAREST_FIRST, STR_CONFIG_SETTING_ORIGINAL},
|
||||
{ SD_BALANCED, STR_CONFIG_SETTING_DELIVERY_BALANCED},
|
||||
{ 0, STR_NULL }
|
||||
};
|
||||
|
||||
static const SettingTable _game_settings{
|
||||
[post-amble]
|
||||
};
|
||||
[templates]
|
||||
SDTG_BOOL = SDTG_BOOL($name, $flags, $var, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
||||
SDTG_VAR = SDTG_VAR($name, $type, $flags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
||||
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
||||
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
||||
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $load, $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_ENUM = SDT_ENUM(GameSettings, $var, $type, $flags, $def, $str, $strhelp, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname, $enumlist),
|
||||
|
||||
[validation]
|
||||
SDTG_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||
|
||||
[defaults]
|
||||
flags = SF_NONE
|
||||
interval = 0
|
||||
str = STR_NULL
|
||||
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||
strval = STR_NULL
|
||||
pre_cb = nullptr
|
||||
post_cb = nullptr
|
||||
guiproc = nullptr
|
||||
load = nullptr
|
||||
from = SL_MIN_VERSION
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
startup = false
|
||||
extver = SlXvFeatureTest()
|
||||
patxname = nullptr
|
||||
enumlist = <this parameter must be set>
|
||||
|
||||
|
||||
[SDT_BOOL]
|
||||
var = order.old_timetable_separation
|
||||
flags = SF_PATCH
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE, 1, 3)
|
||||
patxname = ""auto_timetables.order.timetable_separation""
|
||||
|
||||
[SDT_VAR]
|
||||
var = order.old_timetable_separation_rate
|
||||
flags = SF_PATCH
|
||||
type = SLE_UINT8
|
||||
def = 100
|
||||
min = 0
|
||||
max = 100
|
||||
interval = 10
|
||||
str = STR_CONFIG_SETTING_TIMETABLE_SEPARATION_RATE
|
||||
strhelp = STR_CONFIG_SETTING_TIMETABLE_SEPARATION_RATE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
cat = SC_EXPERT
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_AUTO_TIMETABLE, 1, 2)
|
||||
patxname = ""auto_timetables.order.timetable_separation_rate""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = order.no_servicing_if_no_breakdowns
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_NOSERVICE
|
||||
strhelp = STR_CONFIG_SETTING_NOSERVICE_HELPTEXT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = order.improved_load
|
||||
flags = SF_NO_NETWORK
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = order.selectgoods
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = order.serviceathelipad
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_SERVICEATHELIPAD
|
||||
strhelp = STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = order.nonstop_only
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_NONSTOP_ORDER_ONLY
|
||||
strhelp = STR_CONFIG_SETTING_NONSTOP_ORDER_ONLY_HELPTEXT
|
||||
cat = SC_EXPERT
|
||||
patxname = ""nonstop_only.order.nonstop_only""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = order.gradual_loading
|
||||
from = SLV_40
|
||||
flags = SF_NO_NETWORK
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = order.old_occupancy_smoothness
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = 75
|
||||
min = 0
|
||||
max = 100
|
||||
interval = 10
|
||||
str = STR_CONFIG_OCCUPANCY_SMOOTHNESS
|
||||
strhelp = STR_CONFIG_OCCUPANCY_SMOOTHNESS_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
cat = SC_EXPERT
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_ORDER_OCCUPANCY, 1, 1)
|
||||
patxname = ""order_occupancy.order.occupancy_smoothness""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = station.never_expire_airports
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS
|
||||
strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT
|
||||
pre_cb = [](int32 &new_value) -> bool { return CheckTTDPatchSettingFlag(0x0C); }
|
||||
|
||||
[SDT_VAR]
|
||||
var = station.station_spread
|
||||
type = SLE_UINT8
|
||||
def = 12
|
||||
min = 4
|
||||
max = 64
|
||||
str = STR_CONFIG_SETTING_STATION_SPREAD
|
||||
strhelp = STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_TILE_LENGTH
|
||||
post_cb = StationSpreadChanged
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = station.modified_catchment
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_CATCHMENT
|
||||
strhelp = STR_CONFIG_SETTING_CATCHMENT_HELPTEXT
|
||||
post_cb = StationCatchmentChanged
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = station.catchment_increase
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = 0
|
||||
min = 0
|
||||
max = 5
|
||||
str = STR_CONFIG_SETTING_CATCHMENT_INCREASE
|
||||
strhelp = STR_CONFIG_SETTING_CATCHMENT_INCREASE_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
post_cb = StationCatchmentChanged
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_STATION_CATCHMENT_INC)
|
||||
patxname = ""station_catchment_inc.station.catchment_increase""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = station.cargo_class_rating_wait_time
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_STATION_RATING_CARGO_CLASS_WAIT_TIME
|
||||
strhelp = STR_CONFIG_SETTING_STATION_RATING_CARGO_CLASS_WAIT_TIME_HELPTEXT
|
||||
patxname = ""station_rating.station.cargo_class_rating_wait_time""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = station.station_size_rating_cargo_amount
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_STATION_RATING_SIZE_CARGO_AMOUNT
|
||||
strhelp = STR_CONFIG_SETTING_STATION_RATING_SIZE_CARGO_AMOUNT_HELPTEXT
|
||||
patxname = ""station_rating.station.station_size_rating_cargo_amount""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = station.serve_neutral_industries
|
||||
def = true
|
||||
from = SLV_SERVE_NEUTRAL_INDUSTRIES
|
||||
str = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES
|
||||
strhelp = STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT
|
||||
post_cb = StationCatchmentChanged
|
||||
|
||||
[SDT_ENUM]
|
||||
var = station.station_delivery_mode
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = SD_NEAREST_FIRST
|
||||
enumlist = _station_delivery_mode
|
||||
str = STR_CONFIG_SETTING_CARGO_DELIVERY_MODE
|
||||
strhelp = STR_CONFIG_SETTING_CARGO_DELIVERY_MODE_HELPTEXT
|
||||
patxname = ""station.station_delivery_mode""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = station.adjacent_stations
|
||||
from = SLV_62
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = station.distant_join_stations
|
||||
from = SLV_106
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS
|
||||
strhelp = STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT
|
||||
post_cb = [](auto) { CloseWindowById(WC_SELECT_STATION, 0); }
|
||||
|
||||
[SDT_OMANY]
|
||||
var = vehicle.road_side
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_GUI_DROPDOWN | SF_NO_NETWORK
|
||||
def = 1
|
||||
max = 1
|
||||
full = _roadsides
|
||||
str = STR_CONFIG_SETTING_ROAD_SIDE
|
||||
strhelp = STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_ROAD_SIDE_LEFT
|
||||
pre_cb = CheckRoadSide
|
||||
post_cb = RoadSideChanged
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.train_acceleration_model
|
||||
type = SLE_UINT8
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 1
|
||||
min = 0
|
||||
max = 1
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL
|
||||
strhelp = STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_ORIGINAL
|
||||
post_cb = TrainAccelerationModelChanged
|
||||
|
||||
[SDT_ENUM]
|
||||
var = vehicle.train_braking_model
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = TBM_ORIGINAL
|
||||
enumlist = _train_braking_model
|
||||
str = STR_CONFIG_SETTING_TRAIN_BRAKING_MODEL
|
||||
strhelp = STR_CONFIG_SETTING_TRAIN_BRAKING_MODEL_HELPTEXT
|
||||
pre_cb = CheckTrainBrakingModelChange
|
||||
post_cb = TrainBrakingModelChanged
|
||||
cat = SC_EXPERT
|
||||
patxname = ""realistic_braking.vehicle.train_braking_model""
|
||||
|
||||
[SDT_ENUM]
|
||||
var = vehicle.realistic_braking_aspect_limited
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = TRBALM_OFF
|
||||
enumlist = _realistic_braking_aspect_limited
|
||||
str = STR_CONFIG_SETTING_REALISTIC_BRAKING_ASPECT_LIMITED
|
||||
strhelp = STR_CONFIG_SETTING_REALISTIC_BRAKING_ASPECT_LIMITED_HELPTEXT
|
||||
cat = SC_EXPERT
|
||||
patxname = ""realistic_braking.vehicle.realistic_braking_aspect_limited""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.limit_train_acceleration
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_LIMIT_TRAIN_ACCELERATION
|
||||
strhelp = STR_CONFIG_SETTING_LIMIT_TRAIN_ACCELERATION_HELPTEXT
|
||||
cat = SC_EXPERT
|
||||
patxname = ""realistic_braking.vehicle.limit_train_acceleration""
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.roadveh_acceleration_model
|
||||
type = SLE_UINT8
|
||||
from = SLV_139
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 1
|
||||
min = 0
|
||||
max = 1
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL
|
||||
strhelp = STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_ORIGINAL
|
||||
post_cb = RoadVehAccelerationModelChanged
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.train_slope_steepness
|
||||
type = SLE_UINT8
|
||||
from = SLV_133
|
||||
def = 3
|
||||
min = 0
|
||||
max = 10
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS
|
||||
strhelp = STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
post_cb = TrainSlopeSteepnessChanged
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.roadveh_slope_steepness
|
||||
type = SLE_UINT8
|
||||
from = SLV_139
|
||||
def = 7
|
||||
min = 0
|
||||
max = 10
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS
|
||||
strhelp = STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
post_cb = RoadVehSlopeSteepnessChanged
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.through_load_speed_limit
|
||||
type = SLE_UINT16
|
||||
flags = SF_GUI_VELOCITY | SF_PATCH
|
||||
def = 15
|
||||
min = 5
|
||||
max = 500
|
||||
interval = 5
|
||||
str = STR_CONFIG_SETTING_THROUGH_LOAD_SPEED_LIMIT
|
||||
strhelp = STR_CONFIG_SETTING_THROUGH_LOAD_SPEED_LIMIT_HELPTEXT
|
||||
strval = STR_JUST_VELOCITY
|
||||
cat = SC_EXPERT
|
||||
patxname = ""vehicle.through_load_speed_limit""
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.rail_depot_speed_limit
|
||||
type = SLE_UINT16
|
||||
flags = SF_GUI_VELOCITY | SF_PATCH
|
||||
def = 61
|
||||
min = 5
|
||||
max = 100
|
||||
interval = 5
|
||||
str = STR_CONFIG_SETTING_RAIL_DEPOT_SPEED_LIMIT
|
||||
strhelp = STR_CONFIG_SETTING_RAIL_DEPOT_SPEED_LIMIT_HELPTEXT
|
||||
strval = STR_JUST_VELOCITY
|
||||
cat = SC_EXPERT
|
||||
patxname = ""vehicle.rail_depot_speed_limit""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.non_leading_engines_keep_name
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_NON_LEADING_ENGINES_KEEP_NAME
|
||||
strhelp = STR_CONFIG_SETTING_NON_LEADING_ENGINES_KEEP_NAME_HELPTEXT
|
||||
cat = SC_ADVANCED
|
||||
patxname = ""vehicle.non_leading_engines_keep_name""
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.max_train_length
|
||||
type = SLE_UINT8
|
||||
from = SLV_159
|
||||
def = 7
|
||||
min = 1
|
||||
max = 64
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_TRAIN_LENGTH
|
||||
strhelp = STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_TILE_LENGTH
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.smoke_amount
|
||||
type = SLE_UINT8
|
||||
from = SLV_145
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 1
|
||||
min = 0
|
||||
max = 2
|
||||
str = STR_CONFIG_SETTING_SMOKE_AMOUNT
|
||||
strhelp = STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_NONE
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.never_expire_vehicles
|
||||
flags = SF_NO_NETWORK
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES
|
||||
strhelp = STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.no_expire_vehicles_after
|
||||
type = SLE_INT32
|
||||
flags = SF_NO_NETWORK | SF_GUI_0_IS_SPECIAL | SF_PATCH
|
||||
def = 0
|
||||
min = MIN_YEAR
|
||||
max = MAX_YEAR
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER
|
||||
strhelp = STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_VALUE
|
||||
cat = SC_EXPERT
|
||||
patxname = ""vehicle.no_expire_vehicles_after""
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.no_introduce_vehicles_after
|
||||
type = SLE_INT32
|
||||
flags = SF_NO_NETWORK | SF_GUI_0_IS_SPECIAL | SF_PATCH
|
||||
def = 0
|
||||
min = MIN_YEAR
|
||||
max = MAX_YEAR
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_NO_INTRODUCE_VEHICLES_AFTER
|
||||
strhelp = STR_CONFIG_SETTING_NO_INTRODUCE_VEHICLES_AFTER_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_NO_INTRODUCE_VEHICLES_AFTER_VALUE
|
||||
cat = SC_EXPERT
|
||||
patxname = ""vehicle.no_introduce_vehicles_after""
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.max_trains
|
||||
type = SLE_UINT16
|
||||
def = 500
|
||||
min = 0
|
||||
max = 10000
|
||||
str = STR_CONFIG_SETTING_MAX_TRAINS
|
||||
strhelp = STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
post_cb = MaxVehiclesChanged
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.max_roadveh
|
||||
type = SLE_UINT16
|
||||
def = 500
|
||||
min = 0
|
||||
max = 10000
|
||||
str = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES
|
||||
strhelp = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
post_cb = MaxVehiclesChanged
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.max_aircraft
|
||||
type = SLE_UINT16
|
||||
def = 200
|
||||
min = 0
|
||||
max = 10000
|
||||
str = STR_CONFIG_SETTING_MAX_AIRCRAFT
|
||||
strhelp = STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
post_cb = MaxVehiclesChanged
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.max_ships
|
||||
type = SLE_UINT16
|
||||
def = 300
|
||||
min = 0
|
||||
max = 10000
|
||||
str = STR_CONFIG_SETTING_MAX_SHIPS
|
||||
strhelp = STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
post_cb = MaxVehiclesChanged
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.wagon_speed_limits
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_WAGONSPEEDLIMITS
|
||||
strhelp = STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT
|
||||
pre_cb = [](int32 &new_value) -> bool { return CheckTTDPatchSettingFlag(0x5D); }
|
||||
post_cb = UpdateConsists
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.slow_road_vehicles_in_curves
|
||||
flags = SF_PATCH
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_SLOW_ROAD_VEHICLES_IN_CURVES
|
||||
strhelp = STR_CONFIG_SETTING_SLOW_ROAD_VEHICLES_IN_CURVES_HELPTEXT
|
||||
cat = SC_BASIC
|
||||
patxname = ""slow_road_vehicles_in_curves.vehicle.slow_road_vehicles_in_curves""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.train_speed_adaptation
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_TRAIN_SPEED_ADAPTATION
|
||||
strhelp = STR_CONFIG_SETTING_TRAIN_SPEED_ADAPTATION_HELPTEXT
|
||||
cat = SC_EXPERT
|
||||
post_cb = TrainSpeedAdaptationChanged
|
||||
patxname = ""train_speed_adaptation.vehicle.train_speed_adaptation""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.disable_elrails
|
||||
from = SLV_38
|
||||
flags = SF_NO_NETWORK
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_DISABLE_ELRAILS
|
||||
strhelp = STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT
|
||||
post_cb = SettingsDisableElrail
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.freight_trains
|
||||
type = SLE_UINT8
|
||||
from = SLV_39
|
||||
def = 1
|
||||
min = 1
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_FREIGHT_TRAINS
|
||||
strhelp = STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
pre_cb = [](int32 &new_value) -> bool { return CheckTTDPatchSettingFlag(0x58); }
|
||||
post_cb = UpdateConsists
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.plane_speed
|
||||
type = SLE_UINT8
|
||||
from = SLV_90
|
||||
flags = SF_NO_NETWORK
|
||||
def = 4
|
||||
min = 1
|
||||
max = 4
|
||||
str = STR_CONFIG_SETTING_PLANE_SPEED
|
||||
strhelp = STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PLANE_SPEED_VALUE
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.dynamic_engines
|
||||
from = SLV_95
|
||||
flags = SF_NO_NETWORK
|
||||
def = true
|
||||
pre_cb = CheckDynamicEngines
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.plane_crashes
|
||||
type = SLE_UINT8
|
||||
from = SLV_138
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 2
|
||||
min = 0
|
||||
max = 2
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_PLANE_CRASHES
|
||||
strhelp = STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PLANE_CRASHES_NONE
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.improved_breakdowns
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_IMPROVED_BREAKDOWNS
|
||||
post_cb = ImprovedBreakdownsSettingChanged
|
||||
patxname = ""improved_breakdowns.vehicle.improved_breakdowns""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.ship_collision_avoidance
|
||||
flags = SF_PATCH
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_SHIP_COLLISION_AVOIDANCE
|
||||
strhelp = STR_CONFIG_SETTING_SHIP_COLLISION_AVOIDANCE_HELPTEXT
|
||||
patxname = ""ship_collision_avoidance.vehicle.ship_collision_avoidance""
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.no_train_crash_other_company
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY
|
||||
strhelp = STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY_HELPTEXT
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||
patxname = ""infra_sharing.vehicle.no_train_crash_other_company""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.roadveh_articulated_overtaking
|
||||
flags = SF_PATCH
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_ROADVEH_ARTICULATED_OVERTAKING
|
||||
strhelp = STR_CONFIG_SETTING_ROADVEH_ARTICULATED_OVERTAKING_HELPTEXT
|
||||
patxname = ""roadveh_articulated_overtaking.vehicle.roadveh_articulated_overtaking""
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.roadveh_cant_quantum_tunnel
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_ROADVEH_CANT_QUANTUM_TUNNEL
|
||||
strhelp = STR_CONFIG_SETTING_ROADVEH_CANT_QUANTUM_TUNNEL_HELPTEXT
|
||||
patxname = ""roadveh_cant_quantum_tunnel.vehicle.roadveh_cant_quantum_tunnel""
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.drive_through_train_depot
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_DRIVE_THROUGH_TRAIN_DEPOT
|
||||
strhelp = STR_CONFIG_SETTING_DRIVE_THROUGH_TRAIN_DEPOT_HELPTEXT
|
||||
patxname = ""drive_through_train_depot.vehicle.drive_through_train_depot""
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.extend_vehicle_life
|
||||
type = SLE_UINT8
|
||||
def = 0
|
||||
min = 0
|
||||
max = 100
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.adjacent_crossings
|
||||
flags = SF_PATCH
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_ADJACENT_CROSSINGS
|
||||
strhelp = STR_CONFIG_SETTING_ADJACENT_CROSSINGS_HELPTEXT
|
||||
cat = SC_BASIC
|
||||
patxname = ""adjacent_crossings.vehicle.adjacent_crossings""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.safer_crossings
|
||||
flags = SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_SAFER_CROSSINGS
|
||||
strhelp = STR_CONFIG_SETTING_SAFER_CROSSINGS_HELPTEXT
|
||||
cat = SC_BASIC
|
||||
patxname = ""safer_crossings.vehicle.safer_crossings""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = vehicle.pay_for_repair
|
||||
def = true
|
||||
flags = SF_PATCH
|
||||
str = STR_CONFIG_SETTING_PAY_FOR_REPAIR_VEHICLE
|
||||
strhelp = STR_CONFIG_SETTING_PAY_FOR_REPAIR_VEHICLE_HELPTEXT
|
||||
cat = SC_EXPERT
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_VEHICLE_REPAIR_COST)
|
||||
patxname = ""vehicle_repair_cost.vehicle.pay_for_repair""
|
||||
|
||||
[SDT_VAR]
|
||||
var = vehicle.repair_cost
|
||||
type = SLE_UINT8
|
||||
flags = SF_PATCH
|
||||
def = 100
|
||||
min = 1
|
||||
max = 255
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_REPAIR_COST
|
||||
strhelp = STR_CONFIG_SETTING_REPAIR_COST_HELPTEXT
|
||||
strval = STR_JUST_INT
|
||||
cat = SC_EXPERT
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_VEHICLE_REPAIR_COST)
|
||||
patxname = ""vehicle_repair_cost.vehicle.repair_cost""
|
||||
|
||||
## Old vehicle settings.
|
||||
|
||||
[SDTG_BOOL]
|
||||
name = ""vehicle.servint_ispercent""
|
||||
flags = SF_NO_NETWORK
|
||||
var = _old_vds.servint_ispercent
|
||||
def = false
|
||||
to = SLV_120
|
||||
|
||||
[SDTG_VAR]
|
||||
name = ""vehicle.servint_trains""
|
||||
type = SLE_UINT16
|
||||
flags = SF_GUI_0_IS_SPECIAL
|
||||
var = _old_vds.servint_trains
|
||||
def = 150
|
||||
min = 5
|
||||
max = 800
|
||||
to = SLV_120
|
||||
|
||||
[SDTG_VAR]
|
||||
name = ""vehicle.servint_roadveh""
|
||||
type = SLE_UINT16
|
||||
flags = SF_GUI_0_IS_SPECIAL
|
||||
var = _old_vds.servint_roadveh
|
||||
def = 150
|
||||
min = 5
|
||||
max = 800
|
||||
to = SLV_120
|
||||
|
||||
[SDTG_VAR]
|
||||
name = ""vehicle.servint_ships""
|
||||
type = SLE_UINT16
|
||||
flags = SF_GUI_0_IS_SPECIAL
|
||||
var = _old_vds.servint_ships
|
||||
def = 360
|
||||
min = 5
|
||||
max = 800
|
||||
to = SLV_120
|
||||
|
||||
[SDTG_VAR]
|
||||
name = ""vehicle.servint_aircraft""
|
||||
type = SLE_UINT16
|
||||
flags = SF_GUI_0_IS_SPECIAL
|
||||
var = _old_vds.servint_aircraft
|
||||
def = 150
|
||||
min = 5
|
||||
max = 800
|
||||
to = SLV_120
|
||||
|
||||
## These were once in the "gui" section, but they really are related to orders.
|
||||
|
||||
[SDTC_BOOL]
|
||||
var = gui.sg_full_load_any
|
||||
from = SLV_22
|
||||
to = SLV_93
|
||||
def = true
|
||||
|
||||
[SDTC_BOOL]
|
||||
var = gui.sg_new_nonstop
|
||||
from = SLV_22
|
||||
to = SLV_93
|
||||
def = false
|
@@ -1116,7 +1116,7 @@ strhelp = STR_CONFIG_SETTING_WARN_NO_DEPOT_ORDER_HELPTEXT
|
||||
|
||||
[SDTC_BOOL]
|
||||
var = gui.lost_vehicle_warn
|
||||
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH
|
||||
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_WARN_LOST_VEHICLE
|
||||
strhelp = STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT
|
||||
|
331
src/table/settings/linkgraph_settings.ini
Normal file
331
src/table/settings/linkgraph_settings.ini
Normal file
@@ -0,0 +1,331 @@
|
||||
; This file is part of OpenTTD.
|
||||
; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
|
||||
; Linkgraph settings as stored in the main configuration file ("openttd.cfg")
|
||||
; and in the savegame PATS chunk and in the linkgraph chunks for each job running.
|
||||
|
||||
[pre-amble]
|
||||
|
||||
static int64 LinkGraphDistModeXrefChillPP(int64 val);
|
||||
static bool LinkGraphDistributionSettingGUI(SettingOnGuiCtrlData &data);
|
||||
|
||||
static const SettingDescEnumEntry _linkgraph_mode_symmetric[] = {
|
||||
{ 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 }
|
||||
};
|
||||
|
||||
static const SettingDescEnumEntry _linkgraph_mode_asymmetric[] = {
|
||||
{ DT_MANUAL, STR_CONFIG_SETTING_DISTRIBUTION_MANUAL },
|
||||
{ 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 }
|
||||
};
|
||||
|
||||
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 }
|
||||
};
|
||||
|
||||
static const SettingTable _linkgraph_settings{
|
||||
[post-amble]
|
||||
};
|
||||
[templates]
|
||||
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_ENUM = SDT_ENUM(GameSettings, $var, $type, $flags, $def, $str, $strhelp, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname, $enumlist),
|
||||
SDT_NAMED_NULL = SDT_NAMED_NULL($name, $length, $from, $to, $extver, $patxname),
|
||||
SDT_LINKGRAPH_PER_CARGO = SDT_ENUM(GameSettings, linkgraph.distribution_per_cargo[$linkgraph_cargo], SLE_UINT8, $flags | SF_NOT_IN_CONFIG | SF_NO_NEWGAME | SF_PATCH, DT_PER_CARGO_DEFAULT, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT, $pre_cb, $post_cb, $from, $to, SlXvFeatureTest(XSLFTO_AND, XSLFI_LINKGRAPH_MODES), SC_EXPERT, LinkGraphDistributionSettingGUI, false, nullptr, _linkgraph_mode_per_cargo),
|
||||
|
||||
[validation]
|
||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||
|
||||
[defaults]
|
||||
flags = SF_NONE
|
||||
interval = 0
|
||||
str = STR_NULL
|
||||
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||
strval = STR_NULL
|
||||
pre_cb = nullptr
|
||||
post_cb = nullptr
|
||||
guiproc = nullptr
|
||||
load = nullptr
|
||||
from = SL_MIN_VERSION
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
startup = false
|
||||
extver = SlXvFeatureTest()
|
||||
patxname = nullptr
|
||||
enumlist = <this parameter must be set>
|
||||
|
||||
|
||||
[SDT_VAR]
|
||||
var = linkgraph.recalc_interval
|
||||
type = SLE_UINT16
|
||||
from = SLV_183
|
||||
def = 8
|
||||
min = 4
|
||||
max = 90
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL
|
||||
strval = STR_CONFIG_SETTING_SECONDS_VALUE
|
||||
strhelp = STR_CONFIG_SETTING_LINKGRAPH_RECALC_INTERVAL_HELPTEXT
|
||||
|
||||
[SDT_VAR]
|
||||
var = linkgraph.recalc_time
|
||||
type = SLE_UINT16
|
||||
from = SLV_183
|
||||
def = 32
|
||||
min = 1
|
||||
max = 9000
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME
|
||||
strval = STR_CONFIG_SETTING_SECONDS_VALUE
|
||||
strhelp = STR_CONFIG_SETTING_LINKGRAPH_RECALC_TIME_HELPTEXT
|
||||
|
||||
[SDT_NAMED_NULL]
|
||||
name = ""linkgraph.recalc_not_scaled_by_daylength""
|
||||
length = 1
|
||||
extver = SlXvFeatureTest([](uint16 version, bool version_in_range, const std::array<uint16, XSLFI_SIZE> &feature_versions) -> bool { return version_in_range && SlXvIsFeaturePresent(feature_versions, XSLFI_LINKGRAPH_DAY_SCALE, 1, 1) && !SlXvIsFeaturePresent(feature_versions, XSLFI_JOKERPP); })
|
||||
patxname = ""linkgraph_day_scale.linkgraph.recalc_not_scaled_by_daylength""
|
||||
|
||||
[SDT_ENUM]
|
||||
var = linkgraph.distribution_pax
|
||||
type = SLE_UINT8
|
||||
from = SLV_183
|
||||
def = DT_MANUAL
|
||||
enumlist = _linkgraph_mode_symmetric
|
||||
str = STR_CONFIG_SETTING_DISTRIBUTION_PAX
|
||||
strhelp = STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT
|
||||
guiproc = LinkGraphDistributionSettingGUI
|
||||
|
||||
[SDT_ENUM]
|
||||
var = linkgraph.distribution_mail
|
||||
type = SLE_UINT8
|
||||
from = SLV_183
|
||||
def = DT_MANUAL
|
||||
enumlist = _linkgraph_mode_symmetric
|
||||
str = STR_CONFIG_SETTING_DISTRIBUTION_MAIL
|
||||
strhelp = STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT
|
||||
guiproc = LinkGraphDistributionSettingGUI
|
||||
|
||||
[SDT_ENUM]
|
||||
var = linkgraph.distribution_armoured
|
||||
type = SLE_UINT8
|
||||
from = SLV_183
|
||||
def = DT_MANUAL
|
||||
enumlist = _linkgraph_mode_symmetric
|
||||
str = STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED
|
||||
strhelp = STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT
|
||||
guiproc = LinkGraphDistributionSettingGUI
|
||||
|
||||
[SDT_ENUM]
|
||||
var = linkgraph.distribution_default
|
||||
type = SLE_UINT8
|
||||
from = SLV_183
|
||||
def = DT_MANUAL
|
||||
enumlist = _linkgraph_mode_asymmetric
|
||||
str = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT
|
||||
strhelp = STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT
|
||||
guiproc = LinkGraphDistributionSettingGUI
|
||||
|
||||
[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]
|
||||
var = linkgraph.accuracy
|
||||
type = SLE_UINT8
|
||||
from = SLV_183
|
||||
def = 16
|
||||
min = 2
|
||||
max = 64
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_LINKGRAPH_ACCURACY
|
||||
strval = STR_JUST_COMMA
|
||||
strhelp = STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT
|
||||
|
||||
[SDT_VAR]
|
||||
var = linkgraph.demand_distance
|
||||
type = SLE_UINT8
|
||||
from = SLV_183
|
||||
def = 100
|
||||
min = 0
|
||||
max = 255
|
||||
interval = 5
|
||||
str = STR_CONFIG_SETTING_DEMAND_DISTANCE
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
strhelp = STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT
|
||||
|
||||
[SDT_VAR]
|
||||
var = linkgraph.demand_size
|
||||
type = SLE_UINT8
|
||||
from = SLV_183
|
||||
def = 100
|
||||
min = 0
|
||||
max = 100
|
||||
interval = 5
|
||||
str = STR_CONFIG_SETTING_DEMAND_SIZE
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
strhelp = STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT
|
||||
|
||||
[SDT_VAR]
|
||||
var = linkgraph.short_path_saturation
|
||||
type = SLE_UINT8
|
||||
from = SLV_183
|
||||
def = 80
|
||||
min = 0
|
||||
max = 250
|
||||
interval = 5
|
||||
str = STR_CONFIG_SETTING_SHORT_PATH_SATURATION
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
strhelp = STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT
|
||||
|
||||
[SDT_VAR]
|
||||
var = linkgraph.aircraft_link_scale
|
||||
type = SLE_UINT16
|
||||
flags = SF_PATCH
|
||||
def = 100
|
||||
min = 100
|
||||
max = 1000
|
||||
interval = 50
|
||||
str = STR_CONFIG_SETTING_AIRCRAFT_PATH_COST
|
||||
strval = STR_CONFIG_SETTING_PERCENTAGE
|
||||
strhelp = STR_CONFIG_SETTING_AIRCRAFT_PATH_COST_HELPTEXT
|
||||
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_LINKGRAPH_AIRCRAFT)
|
209
src/table/settings/locale_settings.ini
Normal file
209
src/table/settings/locale_settings.ini
Normal file
@@ -0,0 +1,209 @@
|
||||
; This file is part of OpenTTD.
|
||||
; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
|
||||
; Locale settings as stored in the main configuration file ("openttd.cfg") and
|
||||
; in the savegame PATS chunk. These settings are not sync'd over the network.
|
||||
|
||||
[pre-amble]
|
||||
uint8_t _old_units; ///< Old units from old savegames
|
||||
|
||||
static constexpr std::initializer_list<const char*> _locale_currencies{"GBP", "USD", "EUR", "JPY", "ATS", "BEF", "CHF", "CZK", "DEM", "DKK", "ESP", "FIM", "FRF", "GRD", "HUF", "ISK", "ITL", "NLG", "NOK", "PLN", "RON", "RUR", "SIT", "SEK", "TRY", "SKK", "BRL", "EEK", "LTL", "KRW", "ZAR", "custom", "GEL", "IRR", "RUB", "MXN", "NTD", "CNY", "HKD", "INR", "IDR", "MYR"};
|
||||
static constexpr std::initializer_list<const char*> _locale_units{"imperial", "metric", "si", "gameunits"};
|
||||
|
||||
static_assert(_locale_currencies.size() == CURRENCY_END);
|
||||
|
||||
static void VelocityUnitsChanged(int32 new_value);
|
||||
|
||||
static const SettingTable _locale_settings{
|
||||
[post-amble]
|
||||
};
|
||||
[templates]
|
||||
SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
||||
SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $var, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
||||
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $load, $cat, $guiproc, $startup, $patxname),
|
||||
SDT_SSTR = SDT_SSTR(GameSettings, $var, $type, $flags, $def, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
||||
|
||||
[validation]
|
||||
SDTG_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size");
|
||||
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||
|
||||
[defaults]
|
||||
flags = SF_NONE
|
||||
interval = 0
|
||||
str = STR_NULL
|
||||
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||
strval = STR_NULL
|
||||
pre_cb = nullptr
|
||||
post_cb = nullptr
|
||||
guiproc = nullptr
|
||||
load = nullptr
|
||||
from = SL_MIN_VERSION
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
startup = false
|
||||
extver = SlXvFeatureTest()
|
||||
patxname = nullptr
|
||||
enumlist = <this parameter must be set>
|
||||
|
||||
|
||||
[SDT_OMANY]
|
||||
var = locale.currency
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
flags = SF_NO_NETWORK_SYNC
|
||||
def = 0
|
||||
max = CURRENCY_END - 1
|
||||
full = _locale_currencies
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDTG_OMANY]
|
||||
name = ""units""
|
||||
var = _old_units
|
||||
type = SLE_UINT8
|
||||
from = SLV_97
|
||||
to = SLV_184
|
||||
flags = SF_NOT_IN_CONFIG
|
||||
def = 1
|
||||
max = 2
|
||||
full = _locale_units
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_OMANY]
|
||||
var = locale.units_velocity
|
||||
type = SLE_UINT8
|
||||
from = SLV_184
|
||||
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
|
||||
def = 1
|
||||
max = 4
|
||||
full = _locale_units
|
||||
post_cb = VelocityUnitsChanged
|
||||
cat = SC_BASIC
|
||||
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY
|
||||
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL
|
||||
|
||||
[SDT_OMANY]
|
||||
var = locale.units_velocity_nautical
|
||||
type = SLE_UINT8
|
||||
from = SLV_VELOCITY_NAUTICAL
|
||||
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
|
||||
def = 1
|
||||
max = 4
|
||||
full = _locale_units
|
||||
post_cb = VelocityUnitsChanged
|
||||
cat = SC_BASIC
|
||||
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL
|
||||
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL
|
||||
extver = SlXvFeatureTest(XSLFTO_OR, XSLFI_VELOCITY_NAUTICAL)
|
||||
patxname = ""locale.units_velocity_nautical""
|
||||
|
||||
[SDT_OMANY]
|
||||
var = locale.units_power
|
||||
type = SLE_UINT8
|
||||
from = SLV_184
|
||||
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
|
||||
def = 1
|
||||
max = 2
|
||||
full = _locale_units
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER
|
||||
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL
|
||||
|
||||
[SDT_OMANY]
|
||||
var = locale.units_weight
|
||||
type = SLE_UINT8
|
||||
from = SLV_184
|
||||
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
|
||||
def = 1
|
||||
max = 2
|
||||
full = _locale_units
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT
|
||||
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL
|
||||
|
||||
[SDT_OMANY]
|
||||
var = locale.units_volume
|
||||
type = SLE_UINT8
|
||||
from = SLV_184
|
||||
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
|
||||
def = 1
|
||||
max = 2
|
||||
full = _locale_units
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME
|
||||
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL
|
||||
|
||||
[SDT_OMANY]
|
||||
var = locale.units_force
|
||||
type = SLE_UINT8
|
||||
from = SLV_184
|
||||
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
|
||||
def = 2
|
||||
max = 2
|
||||
full = _locale_units
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE
|
||||
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL
|
||||
|
||||
[SDT_OMANY]
|
||||
var = locale.units_height
|
||||
type = SLE_UINT8
|
||||
from = SLV_184
|
||||
flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN
|
||||
def = 1
|
||||
max = 2
|
||||
full = _locale_units
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
str = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT
|
||||
strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL
|
||||
|
||||
[SDT_SSTR]
|
||||
var = locale.digit_group_separator
|
||||
type = SLE_STRQ
|
||||
from = SLV_118
|
||||
flags = SF_NO_NETWORK_SYNC
|
||||
def = nullptr
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_SSTR]
|
||||
var = locale.digit_group_separator_currency
|
||||
type = SLE_STRQ
|
||||
from = SLV_118
|
||||
flags = SF_NO_NETWORK_SYNC
|
||||
def = nullptr
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_SSTR]
|
||||
var = locale.digit_decimal_separator
|
||||
type = SLE_STRQ
|
||||
from = SLV_126
|
||||
flags = SF_NO_NETWORK_SYNC
|
||||
def = nullptr
|
||||
post_cb = [](auto) { MarkWholeScreenDirty(); }
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDTC_BOOL]
|
||||
var = client_locale.sync_locale_network_server
|
||||
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_SYNC_LOCALE_SETTINGS_NETWORK_SERVER
|
||||
strhelp = STR_CONFIG_SETTING_SYNC_LOCALE_SETTINGS_NETWORK_SERVER_HELPTEXT
|
||||
cat = SC_BASIC
|
@@ -10,9 +10,9 @@
|
||||
[pre-amble]
|
||||
extern std::string _config_language_file;
|
||||
|
||||
static std::initializer_list<const char*> _support8bppmodes{"no", "system" , "hardware"};
|
||||
static std::initializer_list<const char*> _display_opt_modes{"SHOW_TOWN_NAMES", "SHOW_STATION_NAMES", "SHOW_SIGNS", "FULL_ANIMATION", "", "FULL_DETAIL", "WAYPOINTS", "SHOW_COMPETITOR_SIGNS"};
|
||||
static std::initializer_list<const char*> _extra_display_opt_modes{"SHOW_MONEY_TEXT_EFFECTS", "SHOW_HIDDEN_SIGNS"};
|
||||
static constexpr std::initializer_list<const char*> _support8bppmodes{"no", "system", "hardware"};
|
||||
static constexpr std::initializer_list<const char*> _display_opt_modes{"SHOW_TOWN_NAMES", "SHOW_STATION_NAMES", "SHOW_SIGNS", "FULL_ANIMATION", "", "FULL_DETAIL", "WAYPOINTS", "SHOW_COMPETITOR_SIGNS"};
|
||||
static constexpr std::initializer_list<const char*> _extra_display_opt_modes{"SHOW_MONEY_TEXT_EFFECTS", "SHOW_HIDDEN_SIGNS"};
|
||||
|
||||
#ifdef WITH_COCOA
|
||||
extern bool _allow_hidpi_window;
|
||||
@@ -64,6 +64,7 @@ full = _display_opt_modes
|
||||
[SDTG_MMANY]
|
||||
name = ""extra_display_opt""
|
||||
type = SLE_UINT8
|
||||
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH
|
||||
var = _extra_display_opt
|
||||
def = (1 << XDO_SHOW_MONEY_TEXT_EFFECTS)
|
||||
full = _extra_display_opt_modes
|
||||
@@ -304,6 +305,7 @@ cat = SC_BASIC
|
||||
[SDTG_VAR]
|
||||
name = ""extra_transparency_options""
|
||||
type = SLE_UINT
|
||||
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH
|
||||
var = _transparency_opt_extra
|
||||
def = 0
|
||||
min = 0
|
||||
@@ -313,6 +315,7 @@ cat = SC_BASIC
|
||||
[SDTG_VAR]
|
||||
name = ""transparency_locks""
|
||||
type = SLE_UINT
|
||||
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH
|
||||
var = _transparency_lock_base
|
||||
def = 0
|
||||
min = 0
|
||||
@@ -378,6 +381,7 @@ def = true
|
||||
[SDTG_VAR]
|
||||
name = ""zoning_overlay_inner""
|
||||
type = SLE_UINT8
|
||||
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH
|
||||
var = _zoning.inner
|
||||
def = 0
|
||||
min = 0
|
||||
@@ -387,6 +391,7 @@ cat = SC_BASIC
|
||||
[SDTG_VAR]
|
||||
name = ""zoning_overlay_outer""
|
||||
type = SLE_UINT8
|
||||
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH
|
||||
var = _zoning.outer
|
||||
def = 0
|
||||
min = 0
|
||||
@@ -396,6 +401,7 @@ cat = SC_BASIC
|
||||
[SDTG_VAR]
|
||||
name = ""cargo_payment_x_mode""
|
||||
type = SLE_UINT8
|
||||
flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH
|
||||
var = _cargo_payment_x_mode
|
||||
def = 0
|
||||
min = 0
|
||||
|
@@ -9,7 +9,7 @@
|
||||
[pre-amble]
|
||||
static void UpdateClientConfigValues();
|
||||
|
||||
static std::initializer_list<const char*> _server_game_type{"local", "public", "invite-only"};
|
||||
static constexpr std::initializer_list<const char*> _server_game_type{"local", "public", "invite-only"};
|
||||
|
||||
static const SettingTable _network_settings = {
|
||||
[post-amble]
|
||||
|
@@ -14,21 +14,10 @@
|
||||
; be saved in their new place.
|
||||
|
||||
[pre-amble]
|
||||
static const uint GAME_DIFFICULTY_NUM = 18;
|
||||
static const std::array<std::string, GAME_DIFFICULTY_NUM> _old_diff_settings{"max_no_competitors", "competitor_start_time", "number_towns", "industry_density", "max_loan", "initial_interest", "vehicle_costs", "competitor_speed", "competitor_intelligence", "vehicle_breakdowns", "subsidy_multiplier", "construction_cost", "terrain_type", "quantity_sea_lakes", "economy", "line_reverse_mode", "disasters", "town_council_tolerance"};
|
||||
static uint16 _old_diff_custom[GAME_DIFFICULTY_NUM];
|
||||
uint8 _old_diff_level; ///< Old difficulty level from old savegames
|
||||
uint8 _old_units; ///< Old units from old savegames
|
||||
|
||||
/* Most of these strings are used both for gameopt-backward compatibility
|
||||
* and the settings tables. The rest is here for consistency. */
|
||||
static constexpr std::initializer_list<const char*> _locale_currencies{"GBP", "USD", "EUR", "JPY", "ATS", "BEF", "CHF", "CZK", "DEM", "DKK", "ESP", "FIM", "FRF", "GRD", "HUF", "ISK", "ITL", "NLG", "NOK", "PLN", "RON", "RUR", "SIT", "SEK", "TRY", "SKK", "BRL", "EEK", "LTL", "KRW", "ZAR", "custom", "GEL", "IRR", "RUB", "MXN", "NTD", "CNY", "HKD", "INR", "IDR", "MYR"};
|
||||
static_assert(_locale_currencies.size() == CURRENCY_END);
|
||||
static constexpr std::initializer_list<const char*> _locale_units{"imperial", "metric", "si", "gameunits"};
|
||||
static constexpr std::initializer_list<const char*> _town_names{"english", "french", "german", "american", "latin", "silly", "swedish", "dutch", "finnish", "polish", "slovak", "norwegian", "hungarian", "austrian", "romanian", "czech", "swiss", "danish", "turkish", "italian", "catalan"};
|
||||
static constexpr std::initializer_list<const char*> _climates{"temperate", "arctic", "tropic", "toyland"};
|
||||
static constexpr std::initializer_list<const char*> _roadsides{"left", "right"};
|
||||
static constexpr std::initializer_list<const char*> _settings_profiles{"easy", "medium", "hard"};
|
||||
|
||||
static const SettingTable _old_gameopt_settings{
|
||||
/* In version 4 a new difficulty setting has been added to the difficulty settings,
|
||||
@@ -38,7 +27,7 @@ static const SettingTable _old_gameopt_settings{
|
||||
* XXX - To save file-space and since values are never bigger than about 10? only
|
||||
* save the first 16 bits in the savegame. Question is why the values are still int32
|
||||
* and why not byte for example?
|
||||
* 'SLE_FILE_I16 | SLE_VAR_U16' in "diff_custom" is needed to get around SlArray() hack
|
||||
* 'SLE_FILE_I16 | SLE_VAR_U16' in "diff_custom" is needed to get around SlCopy() hack
|
||||
* for savegames version 0 - though it is an array, it has to go through the byteswap process */
|
||||
[post-amble]
|
||||
};
|
||||
|
647
src/table/settings/pathfinding_settings.ini
Normal file
647
src/table/settings/pathfinding_settings.ini
Normal file
@@ -0,0 +1,647 @@
|
||||
; This file is part of OpenTTD.
|
||||
; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
|
||||
; Pathfinding settings as stored in the main configuration file ("openttd.cfg")
|
||||
; and in the savegame PATS chunk.
|
||||
|
||||
[pre-amble]
|
||||
static void InvalidateShipPathCache(int32_t new_value);
|
||||
static void CheckYapfRailSignalPenalties(int32 new_value);
|
||||
|
||||
static const SettingTable _pathfinding_settings{
|
||||
[post-amble]
|
||||
};
|
||||
[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),
|
||||
|
||||
[validation]
|
||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||
|
||||
[defaults]
|
||||
flags = SF_NONE
|
||||
interval = 0
|
||||
str = STR_NULL
|
||||
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||
strval = STR_NULL
|
||||
pre_cb = nullptr
|
||||
post_cb = nullptr
|
||||
guiproc = nullptr
|
||||
load = nullptr
|
||||
from = SL_MIN_VERSION
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
startup = false
|
||||
extver = SlXvFeatureTest()
|
||||
patxname = nullptr
|
||||
enumlist = <this parameter must be set>
|
||||
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.forbid_90_deg
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_FORBID_90_DEG
|
||||
strhelp = STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.back_of_one_way_pbs_waiting_point
|
||||
flags = SF_PATCH
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_BACK_ONE_WAY_PBS_SAFE_WAITING
|
||||
str = STR_CONFIG_SETTING_BACK_ONE_WAY_PBS_SAFE_WAITING_HELPTEXT
|
||||
cat = SC_EXPERT
|
||||
patxname = ""pf.back_of_one_way_pbs_waiting_point""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.roadveh_queue
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.reroute_rv_on_layout_change
|
||||
type = SLE_UINT8
|
||||
flags = SF_GUI_DROPDOWN | SF_PATCH
|
||||
def = 1
|
||||
min = 0
|
||||
max = 2
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE
|
||||
strhelp = STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE_NO
|
||||
cat = SC_ADVANCED
|
||||
patxname = ""pf.reroute_rv_on_layout_change""
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.new_pathfinding_all
|
||||
to = SLV_87
|
||||
def = false
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.yapf.ship_use_yapf
|
||||
from = SLV_28
|
||||
to = SLV_87
|
||||
def = false
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.yapf.road_use_yapf
|
||||
from = SLV_28
|
||||
to = SLV_87
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.yapf.rail_use_yapf
|
||||
from = SLV_28
|
||||
to = SLV_87
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.pathfinder_for_trains
|
||||
type = SLE_UINT8
|
||||
from = SLV_87
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 2
|
||||
min = 1
|
||||
max = 2
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS
|
||||
strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PATHFINDER_NPF
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.pathfinder_for_roadvehs
|
||||
type = SLE_UINT8
|
||||
from = SLV_87
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 2
|
||||
min = 1
|
||||
max = 2
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES
|
||||
strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PATHFINDER_NPF
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.pathfinder_for_ships
|
||||
type = SLE_UINT8
|
||||
from = SLV_87
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = 2
|
||||
min = 1
|
||||
max = 2
|
||||
interval = 1
|
||||
str = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS
|
||||
strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_PATHFINDER_NPF
|
||||
post_cb = InvalidateShipPathCache
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.reverse_at_signals
|
||||
from = SLV_159
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS
|
||||
strhelp = STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.wait_oneway_signal
|
||||
type = SLE_UINT8
|
||||
def = 15
|
||||
min = 2
|
||||
max = 255
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.wait_twoway_signal
|
||||
type = SLE_UINT8
|
||||
def = 41
|
||||
min = 2
|
||||
max = 255
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.wait_for_pbs_path
|
||||
type = SLE_UINT8
|
||||
from = SLV_100
|
||||
def = 30
|
||||
min = 2
|
||||
max = 255
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.reserve_paths
|
||||
from = SLV_100
|
||||
def = false
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.path_backoff_interval
|
||||
type = SLE_UINT8
|
||||
from = SLV_100
|
||||
def = 20
|
||||
min = 1
|
||||
max = 255
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_max_search_nodes
|
||||
type = SLE_UINT
|
||||
def = 10000
|
||||
min = 500
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_rail_firstred_penalty
|
||||
type = SLE_UINT
|
||||
def = 10 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_rail_firstred_exit_penalty
|
||||
type = SLE_UINT
|
||||
def = 100 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_rail_lastred_penalty
|
||||
type = SLE_UINT
|
||||
def = 10 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_rail_station_penalty
|
||||
type = SLE_UINT
|
||||
def = 1 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_rail_slope_penalty
|
||||
type = SLE_UINT
|
||||
def = 1 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_rail_curve_penalty
|
||||
type = SLE_UINT
|
||||
def = 1 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_rail_depot_reverse_penalty
|
||||
type = SLE_UINT
|
||||
def = 50 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_rail_pbs_cross_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_100
|
||||
def = 3 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_rail_pbs_signal_back_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_100
|
||||
def = 15 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_buoy_penalty
|
||||
type = SLE_UINT
|
||||
def = 2 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_water_curve_penalty
|
||||
type = SLE_UINT
|
||||
def = 1 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_road_curve_penalty
|
||||
type = SLE_UINT
|
||||
def = 1 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_crossing_penalty
|
||||
type = SLE_UINT
|
||||
def = 3 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_road_drive_through_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_47
|
||||
def = 8 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_road_dt_occupied_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_130
|
||||
def = 8 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.npf_road_bay_occupied_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_130
|
||||
def = 15 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 100000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.npf.maximum_go_to_depot_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_131
|
||||
def = 20 * NPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.yapf.disable_node_optimization
|
||||
from = SLV_28
|
||||
def = false
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.max_search_nodes
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 10000
|
||||
min = 500
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = pf.yapf.rail_firstred_twoway_eol
|
||||
from = SLV_28
|
||||
def = true
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_firstred_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 10 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_firstred_exit_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 100 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_lastred_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 10 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_lastred_exit_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 100 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_station_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 10 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_slope_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 2 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_curve45_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 1 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_curve90_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 6 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_depot_reverse_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 50 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_crossing_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 3 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_look_ahead_max_signals
|
||||
type = SLE_UINT
|
||||
from = SLV_28
|
||||
def = 10
|
||||
min = 1
|
||||
max = 100
|
||||
cat = SC_EXPERT
|
||||
post_cb = CheckYapfRailSignalPenalties
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_look_ahead_signal_p0
|
||||
type = SLE_INT
|
||||
from = SLV_28
|
||||
def = 500
|
||||
min = -1000000
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
post_cb = CheckYapfRailSignalPenalties
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_look_ahead_signal_p1
|
||||
type = SLE_INT
|
||||
from = SLV_28
|
||||
def = -100
|
||||
min = -1000000
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
post_cb = CheckYapfRailSignalPenalties
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_look_ahead_signal_p2
|
||||
type = SLE_INT
|
||||
from = SLV_28
|
||||
def = 5
|
||||
min = -1000000
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
post_cb = CheckYapfRailSignalPenalties
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_pbs_cross_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_100
|
||||
def = 3 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_pbs_station_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_100
|
||||
def = 8 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_pbs_signal_back_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_100
|
||||
def = 15 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_doubleslip_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_100
|
||||
def = 1 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_longer_platform_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_33
|
||||
def = 8 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 20000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_longer_platform_per_tile_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_33
|
||||
def = 0 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 20000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_shorter_platform_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_33
|
||||
def = 40 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 20000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.rail_shorter_platform_per_tile_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_33
|
||||
def = 0 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 20000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.road_slope_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_33
|
||||
def = 2 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.road_curve_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_33
|
||||
def = 1 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.road_crossing_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_33
|
||||
def = 3 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.road_stop_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_47
|
||||
def = 8 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.road_stop_occupied_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_130
|
||||
def = 8 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.road_stop_bay_occupied_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_130
|
||||
def = 15 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.maximum_go_to_depot_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_131
|
||||
def = 20 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.ship_curve45_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_SHIP_CURVE_PENALTY
|
||||
def = 1 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = pf.yapf.ship_curve90_penalty
|
||||
type = SLE_UINT
|
||||
from = SLV_SHIP_CURVE_PENALTY
|
||||
def = 6 * YAPF_TILE_LENGTH
|
||||
min = 0
|
||||
max = 1000000
|
||||
cat = SC_EXPERT
|
120
src/table/settings/script_settings.ini
Normal file
120
src/table/settings/script_settings.ini
Normal file
@@ -0,0 +1,120 @@
|
||||
; This file is part of OpenTTD.
|
||||
; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
|
||||
; Script settings as stored in the main configuration file ("openttd.cfg")
|
||||
; and in the savegame PATS chunk.
|
||||
|
||||
[pre-amble]
|
||||
static constexpr std::initializer_list<const char*> _settings_profiles{"easy", "medium", "hard"};
|
||||
|
||||
static void ScriptMaxOpsChange(int32 new_value);
|
||||
static bool CheckScriptMaxMemoryChange(int32 &new_value);
|
||||
static void ScriptMaxMemoryChange(int32 new_value);
|
||||
|
||||
const SettingTable _script_settings = {
|
||||
[post-amble]
|
||||
};
|
||||
[templates]
|
||||
SDT_BOOL = SDT_BOOL(GameSettings, $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname),
|
||||
SDT_OMANY = SDT_OMANY(GameSettings, $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $load, $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),
|
||||
|
||||
[validation]
|
||||
SDT_OMANY = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||
SDT_VAR = static_assert($max <= MAX_$type, "Maximum value for GameSettings.$var exceeds storage size");
|
||||
|
||||
[defaults]
|
||||
flags = SF_NONE
|
||||
interval = 0
|
||||
str = STR_NULL
|
||||
strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT
|
||||
strval = STR_NULL
|
||||
pre_cb = nullptr
|
||||
post_cb = nullptr
|
||||
guiproc = nullptr
|
||||
load = nullptr
|
||||
from = SL_MIN_VERSION
|
||||
to = SL_MAX_VERSION
|
||||
cat = SC_ADVANCED
|
||||
startup = false
|
||||
extver = SlXvFeatureTest()
|
||||
patxname = nullptr
|
||||
enumlist = <this parameter must be set>
|
||||
|
||||
|
||||
[SDT_OMANY]
|
||||
var = script.settings_profile
|
||||
type = SLE_UINT8
|
||||
from = SLV_178
|
||||
flags = SF_GUI_DROPDOWN
|
||||
def = SP_EASY
|
||||
min = SP_EASY
|
||||
max = SP_HARD
|
||||
full = _settings_profiles
|
||||
str = STR_CONFIG_SETTING_AI_PROFILE
|
||||
strhelp = STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_AI_PROFILE_EASY
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_VAR]
|
||||
var = script.script_max_opcode_till_suspend
|
||||
type = SLE_UINT32
|
||||
from = SLV_107
|
||||
def = 10000
|
||||
min = 500
|
||||
max = 250000
|
||||
interval = 2500
|
||||
str = STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES
|
||||
strhelp = STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT
|
||||
strval = STR_JUST_COMMA
|
||||
post_cb = ScriptMaxOpsChange
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_VAR]
|
||||
var = script.script_max_memory_megabytes
|
||||
type = SLE_UINT32
|
||||
from = SLV_SCRIPT_MEMLIMIT
|
||||
def = 1024
|
||||
min = 8
|
||||
max = 8192
|
||||
interval = 8
|
||||
str = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY
|
||||
strhelp = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT
|
||||
strval = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE
|
||||
pre_cb = CheckScriptMaxMemoryChange
|
||||
post_cb = ScriptMaxMemoryChange
|
||||
cat = SC_EXPERT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = ai.ai_in_multiplayer
|
||||
def = true
|
||||
str = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER
|
||||
strhelp = STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT
|
||||
cat = SC_BASIC
|
||||
|
||||
[SDT_BOOL]
|
||||
var = ai.ai_disable_veh_train
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_AI_BUILDS_TRAINS
|
||||
strhelp = STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = ai.ai_disable_veh_roadveh
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES
|
||||
strhelp = STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = ai.ai_disable_veh_aircraft
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT
|
||||
strhelp = STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT
|
||||
|
||||
[SDT_BOOL]
|
||||
var = ai.ai_disable_veh_ship
|
||||
def = false
|
||||
str = STR_CONFIG_SETTING_AI_BUILDS_SHIPS
|
||||
strhelp = STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT
|
File diff suppressed because it is too large
Load Diff
1043
src/table/settings/world_settings.ini
Normal file
1043
src/table/settings/world_settings.ini
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user