Patric Stout
0bb1d2fa8e
Codechange: use SLE_STRUCT(LIST) for Town chunks
2021-06-14 21:58:05 +02:00
Patric Stout
4e4720f217
Codechange: remove the special station/vehicle code from SaveLoad
...
With the new SLEG_STRUCT it is much easier to embed a struct
in a struct, where the sub-struct has limitations on when it is
being used.
This makes both the code easier to read (less magic) and avoids
the SaveLoad needing to know all these things about Stations
and Vehicles.
2021-06-14 21:58:05 +02:00
Patric Stout
4600d289b5
Codechange: ability to store structs and list of structs in savegames
...
The commits following this will use this new functionality.
Currently, a few places do this manually. This has as drawback that
the Save() and Load() code need to be in sync, and that any change
can result in (old) savegames no longer loading. In general, it is
annoying code to maintain.
By putting everything in a description table, and use that for
both Save() and Load(), it becomes easier to see what is going on,
and hopefully less likely for people to make mistakes.
2021-06-14 21:58:05 +02:00
Patric Stout
1e432fbd71
Fix 81062163: for (really) old games, station bus/truck station cache was not updated ( #9366 )
2021-06-13 13:48:40 +02:00
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
2021-06-13 12:45:45 +02:00
Jonathan G Rennison
1002c6d9d2
Fix various compiler warnings
...
See: #267
2021-06-11 22:54:27 +01:00
Tyler Trahan
d09210e1c6
Feature: Configurable subsidy duration
2021-06-10 23:26:16 +02:00
Patric Stout
174952440a
Codechange: rework CHTS-chunk save/load to be more like the others
2021-06-10 19:18:24 +02:00
Patric Stout
8f323855b1
Codechange: rename SL_LST to SL_REFLIST to highlight the "reference" part
...
You can easily mistake SlList / SL_LST to be a list of SL_VAR, but
it is a list of SL_REF. With this rename, it hopefully saves a few
people from "wtf?" moments.
2021-06-10 19:18:24 +02:00
Patric Stout
aa6443d57a
Codechange: refactor SlList to use SlStorageHelper
2021-06-10 19:18:24 +02:00
Patric Stout
23857af693
Codechange: refactor SlDequeueHelper to work with unsigned and be more generic
...
Future additions will start using it for std::list too.
2021-06-10 19:18:24 +02:00
Patric Stout
a2147d437e
Codechange: use wrappers to get Var[Mem|File]Type, instead of GB()
2021-06-10 19:18:24 +02:00
Patric Stout
fba86f711f
Codechange: move GetVariableAddress inside SlObjectMember
...
Also move it to static, as nobody else is using it.
2021-06-10 19:18:24 +02:00
Patric Stout
f997eb6ca4
Fix: compatible NewGRFs in crash-log reported wrong md5 ( #9340 )
...
The text suggests it reports the original md5, but it does in fact
report the replaced md5. Now it reports both.
2021-06-08 20:30:44 +02:00
Patric Stout
1e564b333f
Codechange: make [Save|Load]Settings() behave more like other Save/Load code ( #9335 )
...
Prepare the full description and send it to SlObject. This does
require some code to be able to read to a SLE_VAR_NULL, like strings
etc, as there is no way to know their length beforehand.
2021-06-07 23:03:12 +02:00
Patric Stout
7572603c9d
Codechange: remove the unused SLF_HEX flag
2021-06-06 21:45:01 +02: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
264991dfa5
Codechange: move SLF_NO_NETWORK_SYNC into settings
...
It is a settings-only flag, so don't pollute SaveLoad code with it.
2021-06-06 21:45:01 +02:00
Patric Stout
414e12d26b
Codechange: move SLF_NOT_IN_SAVE into settings
...
It is a settings-only flag, so don't pollute SaveLoad code with it.
2021-06-06 21:45:01 +02:00
glx22
c27afdf3f6
Codechange: Remove FOR_ALL_CHUNK_HANDLERS
...
Co-Authored-By: Patric Stout <truebrain@openttd.org >
2021-06-06 19:35:06 +02:00
Patric Stout
28e90769f7
Codechange: use "[[maybe_unused]]" instead of a wide variety of other ways we had
...
While at it, replace OTTD_ASSERT with WITH_ASSERT, as this
is always set if assert() is valid. No matter if NDEBUG is set
or not.
2021-06-03 17:30:00 +02:00
Patric Stout
9fff00ba20
Codechange: C++-ify lists for SaveLoad ( #9323 )
...
Basically, this changes "SaveLoad *" to either:
1) "SaveLoadTable" if a list of SaveLoads was meant
2) "SaveLoad &" if a single entry was meant
As added bonus, this removes SL_END / SLE_END / SLEG_END. This
also adds core/span.hpp, a "std::span"-lite.
2021-05-31 22:26:44 +02:00
Patric Stout
0c96884700
Codechange: add a wrapper function to find all settings based on prefix ( #9312 )
2021-05-30 10:55:52 +02:00
Patric Stout
ca9a7df752
Codechange: rename str_validate to StrMakeValid(InPlace) ( #9304 )
...
This to be more explicit the function changes the value, and not
returns yes/no.
2021-05-29 11:21:38 +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
425d50372f
Codechange: let SettingDesc extend SettingDescBase
2021-05-27 18:49:43 +02:00
Jonathan G Rennison
0579c8755c
Add tracerestrict action: No PBS signal back PF penalty
2021-05-25 18:50:36 +01:00
Jonathan G Rennison
6d3a1935a0
Fix "(undefined string)" message when SlError called when saving
2021-05-21 02:05:18 +01:00
Jonathan G Rennison
3ecda2b735
Fix handling of SlError when called from game thread
2021-05-20 20:20:45 +01:00
Jonathan G Rennison
a15e26f369
NewGRF: Elide unmasked vehicle callbacks where possible
...
This includes:
* CBID_VEHICLE_32DAY_CALLBACK
* CBID_VEHICLE_REFIT_COST
* CBID_VEHICLE_MODIFY_PROPERTY
This is on a per-property basis
The main benefit of this is to avoid callbacks not handled by the
vehicle's current sprite group from using the full graphics chain as
the "default" branch in the callback switch.
In the case where the graphics chain is long/expensive, a lot of work
had to be done before a callback failure result was eventually returned.
2021-05-18 19:07:44 +01:00
rubidium42
44ca7d9377
Change: Use gender-neutral pronouns
2021-05-15 10:16:48 +02:00
rubidium42
ddaedaf32a
Fix: empty undocumented branches
2021-05-15 10:16:10 +02:00
Rubidium
bb9121dbd4
Fix: comparison of narrow type to wide type in loop (potential for infinite loops)
2021-05-15 10:16:10 +02:00
PeterN
66cac92028
Fix #9202 : Invalid test for unset NewGRF override mapping. ( #9226 )
...
(cherry picked from commit 3d9436bd75 )
2021-05-14 18:33:19 +01:00
PeterN
f52da3de3a
Codechange: Don't save unused NewGRF override mappings. ( #9202 )
...
(cherry picked from commit 69e5da0b54 )
2021-05-14 18:15:17 +01:00
William Davis
879de9781b
Change: Use gender-neutral pronouns in console command messages (and comments) ( #9203 )
...
(cherry picked from commit 881e1da51d )
2021-05-14 18:15:00 +01:00
Jonathan G Rennison
2e28bc8e6a
Tracerestrict: Add engine class conditional
2021-05-13 23:49:03 +01:00
rubidium42
0f062b3882
Codechange: clean up C-string support from settings
2021-05-13 23:13:17 +02:00
rubidium42
a032714dc4
Codechange: move script settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
95386dc2b8
Codechange: move misc settings to std::string
2021-05-13 23:13:17 +02:00
glx22
38c97e1492
Codechange: Replace TILE_AREA_LOOP with range-based for loops
2021-05-13 00:13:54 +02:00
Patric Stout
b136e65cf9
Change: reworked the debug levels for network facility ( #9251 )
...
It now follows very simple rules:
0 - Fatal, user should know about this
1 - Error, but we are recovering
2 - Warning, wrong but okay if you don't know
3 - Info, information you might care about
4 -
5 - Debug #1 - High level debug messages
6 - Debug #2 - Low level debug messages
7 - Trace information
2021-05-12 16:34:02 +02:00
PeterN
3d9436bd75
Fix #9202 : Invalid test for unset NewGRF override mapping. ( #9226 )
2021-05-12 09:11:14 +02:00
PeterN
69e5da0b54
Codechange: Don't save unused NewGRF override mappings. ( #9202 )
2021-05-08 11:36:39 +01:00
William Davis
881e1da51d
Change: Use gender-neutral pronouns in console command messages (and comments) ( #9203 )
2021-05-08 11:02:30 +01:00
glx22
8333323090
Codechange: Replace FOR_ALL_ROADTRAMTYPES with range-based for loops
...
(cherry picked from commit 2feb801e56 )
2021-05-06 21:21:41 +01:00
PeterN
43fe7463ba
Fix: Update text effect size when font zoom is changed. ( #9174 )
...
(cherry picked from commit 18651dd8b1 )
2021-05-06 20:52:00 +01:00
Loïc Guilloux
88bc7bd235
Fix: [MinGW] Set minimum OS version to Windows XP ( #9135 )
...
(cherry picked from commit 356bbbb90a )
2021-05-06 18:25:28 +01:00
Jonathan G Rennison
95ca147445
Add cheat: town local authority ratings fixed as Outstanding
2021-05-05 01:17:54 +01:00
Jonathan G Rennison
a9515456cb
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/network/core/os_abstraction.h
# src/network/core/tcp_content.h
# src/network/core/udp.cpp
# src/table/currency_settings.ini
# src/table/settings.h.preamble
2021-05-03 21:59:49 +01:00