summaryrefslogtreecommitdiff
path: root/src/settings_internal.h
AgeCommit message (Collapse)Author
2021-07-09Codechange: use the name string in SaveLoad for the name of the Setting as wellRubidium
2021-07-09Codechange: access the name of a setting via an accessor functionRubidium
2021-07-09Codechange: split settings.ini over several files (#9421)Patric Stout
This reduced the load on compilers, as currently for example MacOS doesn't like the huge settings-tables. Additionally, nobody can find settings, as the list is massive and unordered. By splitting it, it becomes a little bit more sensible.
2021-07-06Codechange: split off the settings saveload code from the main settings ↵Rubidium
handling logic
2021-06-26Fix #9386: compilers failing to compile with LTO by using variants instead ↵rubidium42
of new + unique_ptr With std::variant all memory can be figured out at compile time, so the compiler needs to keep track of fewer elements. It also saves out a unique_ptr and its memory management, over a slight impact for resolving a setting.
2021-06-26Codechange: use C-style strings instread of std::string in the SettingDesc ↵rubidium42
constructor This as using std::string causes much more variables to be tracked, potentially causing problemes for certain compilers in certain situations
2021-06-13Codechange: make the name of SettingDesc a std::stringrubidium42
2021-06-13Codechange: use StrStartsWith/StrEndsWith when finding settingsrubidium42
2021-06-06Codechange: merge guiflags and flags in settings .ini filesPatric Stout
It was rather confusing which one was for what, especially as some SaveLoad flags were settings-only. Clean up this mess a bit by having only Setting flags.
2021-06-03Codechange: rename SettingGuiFlag to SettingFlag (#9332)Patric Stout
It is a lovely organicly grown enum, where it started off with GUI-only flags, and after that a few flags got added that can be considered GUI-only (the GUI disables/enables based on them), to only have flags added that has nothing to do with the GUI. So be less confusing, and rename them to what they do. Additionally, I took this opportunity to rename 0ISDISABLED to reflect what it really does.
2021-05-30Codechange: add a wrapper function to find all settings based on prefix (#9312)Patric Stout
2021-05-29Codechange: use setting name instead of index for CmdChange(Company)Setting ↵Patric Stout
(#9306) This is mostly done as there are now constraints on settings.ini you might not expected. For example, conditional settings always have to come last, as otherwise they would influence the index.
2021-05-29Codechange: use separate pre and post callbacks for int settingsrubidium42
2021-05-29Codechange: use separate pre and post callbacks for string settingsrubidium42
2021-05-29Codechange: split Write_ValidateSetting to get separate functions for making ↵rubidium42
ints valid and writing ints
2021-05-29Codechange: split Write_ValidateSetting to get separate functions for making ↵rubidium42
strings valid and writing strings
2021-05-27Codechange: add helper functions to read an int setting valuerubidium42
2021-05-27Codechange: remove SettingDescType in lieu of the actual classesrubidium42
2021-05-27Codechange: let OneOfMany and ManyOfMany be their own classes as wellrubidium42
2021-05-27Codechange: make BoolSettingDesc its own sub classrubidium42
2021-05-27Cleanup: remove unneeded temporary variables and castsrubidium42
2021-05-27Codechange: move bits of SettingDesc down to the appropriate sub classesrubidium42
And by doing so remove the hack where ints were put into pointers so "def" could either be an int or a string
2021-05-27Codechange: make parsing of IniItems overridable functions of SettingDescrubidium42
2021-05-27Codechange: make Write_ValidateSetting a function of StringSettingDescrubidium42
2021-05-27Codechange: make Write_ValidateSetting a function of IntSettingDescrubidium42
2021-05-27Codechange: make formatting of values into strings a method of SettingDescrubidium42
2021-05-27Codechange: make sub classes of SettingDesc for the different types of settingsrubidium42
2021-05-27Codechange: make SettingDesc an instance in the setting table to allow for ↵rubidium42
sub classes
2021-05-27Codechange: use initializer_lists for the settings tablesrubidium42
Not using vectors as those require copying from the initializer list and that makes unique_ptrs to the actual SettingDesc objects later impossible.
2021-05-27Codechange: let SettingDesc extend SettingDescBaserubidium42
2021-05-27Cleanup: remove and/or fix some confusing commentsrubidium42
The comments for SettingDescType; it is a byte, so not 4 bytes and since it is not a flag there are about 250 other possibilities left instead of 9. SettingGuiFlag is uint16 so has 2 bytes allocated. SettingDescGlobVarList and related comments imply that global vars cannot be used elsewhere, but they are used for settings just fine. Even then the type is not used anywhere else but the definition of the table.
2021-05-27Codechange: just pass the SettingDesc to SetSettingValue and remove ↵rubidium42
distinction between (non)company
2021-05-13Codechange: clean up C-string support from settingsrubidium42
2021-03-26Feature: setting to indicate snow coverage for arctic climate (replaces snow ↵Patric Stout
line height) Setting the snow coverage (in % of the map) makes a lot more sense to the human, while still allowing the niche player to set (by finding the correct %) a snow line height they like. This makes for easier defaults, as it decoupled terrain height from amount of snow. Maps can never be 100% snow, as we do not have sprites for coastal tiles. Internally, this calculates the best snow line height to approach this coverage as close as possible.
2021-02-17Codechange: Allow early-load settings that are not misc settings.Michael Lutz
2020-05-21Codechange: Store base set related texts in std::strings.Michael Lutz
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-04-29Codechange: Set size of SettingGuiFlag & SettingDescType enums, and use them ↵Charles Pigott
properly
2013-01-08(svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by ↵planetmaker
Eagle_rainbow)
2012-12-26(svn r24862) -Add: Settings type filter to adv. settings GUI.frosch
2012-12-26(svn r24860) -Codechange: Add SettingDesc::GetType().frosch
2012-12-05(svn r24787) -Fix: Unify checks for editability of settings.frosch
2012-11-08(svn r24671) -Feature [FS#5355]: Add basic/advanced/expert filters to adv. ↵frosch
settings GUI. (Eagle_rainbow)
2012-05-12(svn r24234) -Add: Add help-string infrastructure to the ini filesalberth
2012-05-12(svn r24233) -Codechange: Rename 'val_str' to 'str_val' to better match with ↵alberth
'strval' in the ini files.
2012-05-06(svn r24210) -Feature: Split the renew-months setting text in two string ↵alberth
values (one before life time and one after).
2012-05-06(svn r24209) -Cleanup: Remove now unused SGF_NOCOMMA value.alberth
2012-01-03(svn r23735) -Codechange: remove ~50 includes from headers that weren't neededrubidium
2011-07-03(svn r22626) -Fix [FS#4622]: Also initialise _old_vds with newgame settings; ↵frosch
TTD savegames do not contain these settings.
2011-05-29(svn r22522) -Fix (r22489): (size_t)(uint32)(-1) != (size_t)-1frosch