Commit Graph

2441 Commits

Author SHA1 Message Date
rubidium42
98e653dacc Fix #9386: compilers failing to compile with LTO by using variants instead 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-26 20:28:34 +02:00
rubidium42
f35e6c1c7f Codechange: use C-style strings instread of std::string in the SettingDesc constructor
This as using std::string causes much more variables to be tracked, potentially causing problemes for certain compilers in certain situations
2021-06-26 20:28:34 +02:00
rubidium42
f029fd0f3b Codechange: remove overloading on UpdateServiceInterval
One UpdateServiceInterval has two parameters to update the service interval for a vehicle type, the other for all vehicle types at once. Rename the latter to help with function resolution for the introduction of variants.
2021-06-26 20:28:34 +02:00
Andreas Schmitt
debc504e59 Add a setting for train speed adaptation
Prior to this change, without realistic breaking, trains would continuously run into the train in front of them. This makes them adjust their speed based on trains in front of them
2021-06-20 20:40:33 +02:00
reldred
0eb32a55f9 change the tree line width for arctic tree line patch from 20 to 64 2021-06-20 11:25:12 +01:00
Andreas Schmitt
3b4cbd3323 Improve tree placement
Prior to this change, trees tended to either cover the entire map like an ancient forest, or alternatively you turn off their growth which breaks industry. Furthermore there are these ugly random tree clumps at the beginning of the game which look like squares on the map someone placed there.

This change adds a new tree placing setting which removes the ugly random clumps and only slightly modifies the initial placement. The actual growth causes trees to bunch up in higher levels as usual but on the lower 4 levels their growth works differently. The number of trees per tile is limited and the trees spread out over a wider area instead of only to the neighboring tile. That spreads them out more and makes for a nicer look.

This also allows cacti to spread, since they can now use that same algorithm and avoid bunching up, but spread as they should.
2021-06-19 13:56:05 +01:00
Jonathan G Rennison
ac9749d015 Merge PR #283 (max city height) into jgrpp 2021-06-19 13:37:21 +01:00
Jonathan G Rennison
24834c86f7 Allow changing max town height level setting in-game (for town founding) 2021-06-19 13:33:39 +01:00
Andreas Schmitt
5fe1963feb Lower minimum to 2 2021-06-19 13:23:19 +01:00
Andreas Schmitt
a17efcd7d5 Introduce setting for a max height level for towns
Prior to this change, the game tended to place towns on mountain tops. Realistic heightmaps had limitations because of this.

This change allows the player to specify that the towns should be generated in the valleys.
2021-06-19 13:23:19 +01:00
Jonathan G Rennison
3a67065332 Add a build public roads button to the scenario editor 2021-06-19 13:11:03 +01:00
Jonathan G Rennison
e46fb1aa99 Fix loading of build public roads setting from JokerPP savegames 2021-06-19 13:02:36 +01:00
Andreas Schmitt
150e502cf9 Add generation of public roads linking towns 2021-06-19 13:02:36 +01:00
Andreas Schmitt
d718ba62ef Add option to sort tracks by category and speed (#282) 2021-06-17 19:08:59 +01:00
Andreas Schmitt
ec40677fdc Add a setting to turn off road vehicle slowdown in curves
Prior to this change, road vehicles would always slowdown in curves. This forces the player to build grid like roads. With new height levels and more mountainous maps and in the absense of diagonal roads this causes unnecessary pain. It should be an option to turn this off, so mountainous maps and curvy roads are not punishing the player unnecessarily. Nobody wants to build grid like roads outside of towns.
2021-06-17 17:10:26 +01:00
Jonathan G Rennison
0b80461cd4 Merge branch 'pr-270' into jgrpp
# Conflicts:
#	src/lang/english.txt
#	src/settings_type.h
#	src/table/settings.ini
2021-06-15 19:32:54 +01:00
Jonathan G Rennison
696fb746b7 Add setting for demolition confirmation mode 2021-06-15 18:46:12 +01:00
Patric Stout
97b94bdc9a Change: prefix SL_ARR with the length of the array
This means that during loading we can validate that what is saved
is also that what is expected. Additionally, this makes all list
types similar to how they are stored on disk:
First a gamma to indicate length, followed by the data.
The size still depends on the type.
2021-06-15 16:45:04 +02:00
Jonathan G Rennison
3392d25aa3 Merge PR #274 into jgrpp 2021-06-15 02:01:22 +01:00
Jonathan G Rennison
1cc8053003 Add setting to control station rating tooltip detail level
Default to simple
2021-06-15 02:00:58 +01:00
Jonathan G Rennison
8485ed724b Add {PLUS_NUM} string code which includes leading + for positive values 2021-06-14 22:55:26 +01:00
Jonathan G Rennison
2cd1740c01 Merge PR #268 into jgrpp 2021-06-14 00:53:59 +01:00
Jonathan G Rennison
fd4b5cc083 Add buttons to cargo payment graph to select x-axis
Save in misc settings
2021-06-14 00:52:46 +01:00
Jonathan G Rennison
f438daa0bc Use localised units for payment graph X axis
Match quantities in graph title
2021-06-13 23:57:14 +01:00
Jonathan G Rennison
229f856327 Merge PR #275 into jgrpp 2021-06-13 11:50:54 +01:00
rubidium42
bf500c39c9 Codechange: make the name of SettingDesc a std::string 2021-06-13 10:26:58 +02:00
Andreas Schmitt
da4de2c959 Improve lake generation
Prior to this change, lakes could be very small and could also not be deactivated.

This change allows the deactivation of lake creation and the lake size is now the set size +- 25% instead of anything between 0 and lake_size.
2021-06-13 08:15:43 +02:00
Tyler Trahan
d09210e1c6 Feature: Configurable subsidy duration 2021-06-10 23:26:16 +02:00
Jonathan G Rennison
7aa63e9726 Update status bar sizing when changing date/time display settings 2021-06-10 22:12:10 +01:00
Jonathan G Rennison
a7d8c6fe0c Add PF setting for whether to pathfind up to back of one-way PBS 2021-06-09 20:43:57 +01:00
Patric Stout
648ee88a02 Codechange: merge guiflags and flags in settings .ini files
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-06 21:45:01 +02:00
Patric Stout
feb2ddbefa Codechange: rename SettingGuiFlag to SettingFlag (#9332)
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-06-03 21:18:29 +02:00
Patric Stout
e9e4588db1 Codechange: use setting name instead of index for HandleOldDiffCustom() (#9311) 2021-05-30 10:40:59 +02:00
Patric Stout
d70fb74ac6 Codechange: use setting name instead of index for CmdChange(Company)Setting (#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-29 23:27:01 +02:00
glx22
5799402f7a Codechange: Rename window related DeleteXXX to match new behaviour 2021-05-29 21:08:25 +02:00
Patric Stout
b0f44d7eb1 Doc: describe what each settings-file is about 2021-05-29 11:27:00 +02:00
Patric Stout
e58046c947 Codechange: move all settings.ini files to table/settings 2021-05-29 11:27:00 +02:00
rubidium42
4c0e083128 Cleanup: set the base in the setting templates, instead of defining the base for every setting
This has the added benefit of not getting mistaken that multiple bases can be used for the same SettingTable
2021-05-29 10:32:32 +02:00
rubidium42
4144e949ed Fix: [Network] Prevent an empty server name to be set anywhere 2021-05-29 10:07:30 +02:00
rubidium42
08308d808c Codechange: use separate pre and post callbacks for int settings 2021-05-29 10:07:30 +02:00
rubidium42
e2f5d9e561 Codechange: use separate pre and post callbacks for string settings 2021-05-29 10:07:30 +02:00
rubidium42
ac99a38175 Cleanup: remove and/or fix some confusing comments
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-27 18:49:43 +02:00
rubidium42
86c9ef8134 Codechange: remove SettingDescType in lieu of the actual classes 2021-05-27 18:49:43 +02:00
rubidium42
3bb6ce8827 Codechange: use initializer_lists for the settings tables
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-27 18:49:43 +02:00
rubidium42
e666a962b1 Codechange: let OneOfMany and ManyOfMany be their own classes as well 2021-05-27 18:49:43 +02:00
rubidium42
860003458f Codechange: make BoolSettingDesc its own sub class 2021-05-27 18:49:43 +02:00
rubidium42
d8125fa46e Codechange: make sub classes of SettingDesc for the different types of settings 2021-05-27 18:49:43 +02:00
rubidium42
91b3d697c5 Codechange: make SettingDesc an instance in the setting table to allow for sub classes 2021-05-27 18:49:43 +02:00
Jonathan G Rennison
900a93ac59 Debug: Add sprite dumping to vehicle debug windows 2021-05-21 19:36:19 +01:00
PeterN
dcb0cc2c52 Fix #9186: Fix incorrect bounding box height causing station sprite glitch. (#9187)
Increased height of small station building bounding box to cover the build rather than just the platform.

(cherry picked from commit ba193f2e23)
2021-05-21 18:29:45 +01:00