Commit Graph

25916 Commits (778e196b55265c40191186c273b008356136e20d)
 

Author SHA1 Message Date
translators faea943a9b Update: Translations from eints
hindi: 26 changes by ritwikraghav14
3 years ago
translators 511c1081af Update: Translations from eints
catalan: 1 change by J0anJosep
3 years ago
Michael Lutz 10d8c17236 Codechange: Add CMake source group for the saveload compat tables.
While at it, fix the not-working OpenGL sub-group.
3 years ago
translators 05bdfadcb6 Update: Translations from eints
norwegian (bokmal): 1 change by Anolitt
japanese: 1 change by scabtert
3 years ago
Loïc Guilloux 0fa2007560
Fix cdb3dd049: GOAL chunk was not using the header for loading (#9409) 3 years ago
rubidium42 d38ad7d80c Cleanup: remove declaration of undefined function 3 years ago
rubidium42 979783f90e Codechange: replace InjectDParam/ShiftParameters by setting the right parameter values in the first place 3 years ago
Patric Stout 1d9912134d Doc: guidelines for network-compatible patch-packs that want to add fields to existing chunks 3 years ago
Patric Stout 3e3049fd0e Codechange: make savegame-version checks more obvious in SlCompanyLiveries::Load
num_liveries indirectly contained the same information, but this
makes reading these things pretty difficult. So use IsSavegameVersionBefore()
like everywhere else instead.
3 years ago
Patric Stout 4e645ce749 Codechange: using "until" in function names can be confusing
IsSavegameVersionUntil() did a [0, N] check, not [0, N) as the
name suggests.

Until can be a confusing word, where people consider it to be
including the upperbound. Dictionary states it means "before",
excluding the upperbound. There are long debates about who is right.

So, simply remove away from this ambiguity, and call it "before"
and "before or at". This makes the world easier for everyone.
3 years ago
Patric Stout 9643a1b80a Doc: explain the binary structure of our (new) savegames 3 years ago
Patric Stout 1ed2405907 Cleanup: remove SLE_NULL and friends
We no longer need them. If you want to remove a field .. just
remove it! Because of the headers in the savegame, on loading,
it will do the right thing and skip the field.

Do remember to bump the savegame version, as otherwise older
clients can still load the game, but will reset the field you
have removed .. that might be unintentially.
3 years ago
Patric Stout 3826703bc3 Add: store headers for chunks with SL_STRUCTLIST 3 years ago
Patric Stout cdb3dd0493 Add: store headers for most savegame chunks
When a header is added, the chunk changes from CH_ARRAY type to
CH_TABLE type.
3 years ago
Patric Stout 7dd5fd6ed4 Feature: framework to make savegames self-descriptive
We won't be able to make it fully self-descriptive (looking at you
MAP-chunks), but anything else can. With this framework, we can
add headers for each chunk explaining how each chunk looks like
in detail.

They also will all be tables, making it a lot easier to read in
external tooling, and opening the way to consider a database
(like SQLite) to use as savegame format.

Lastly, with the headers in the savegame, you can freely add
fields without needing a savegame version bump; older versions
of OpenTTD will simply ignore the new field. This also means
we can remove all the SLE_CONDNULL, as they are irrelevant.

The next few commits will start using this framework.
3 years ago
translators 513641f9ba Update: Translations from eints
english (us): 1 change by 2TallTyler
german: 1 change by Wuzzy2
dutch: 1 change by Afoklala
3 years ago
Patric Stout 75b6051b7a Change: move sensitive information to secrets.cfg and private information to private.cfg
We often ask people for their openttd.cfg, which now includes their
passwords, usernames, etc. It is easy for people to overlook this,
unwillingly sharing information they shouldn't.

By splitting this information over either private.cfg or secrets.cfg,
we make it more obvious they shouldn't be sharing those files, and
hint to what is inside them.
3 years ago
Patric Stout 4f3bf84af4 Codechange: simplify SaveVersionInConfig()
Clearly someone really wanted to generalize the function, but
in reality it makes it a lot longer than needed. Let's keep it
simple.
3 years ago
Patric Stout 66dc0ce196 Codechange: C++-ify the usage of IniFile in settings.cpp
Instead of creating the object on heap and use a pointer, create
the object on stack and use a guaranteed-not-null pointer.
The size of IniFile doesn't warrent the forcing to heap.

Additionally, use a subclass instead of a function to do some
initial bookkeeping on an IniFile meant to read a configuration.
3 years ago
Patric Stout a42251fc72 Codechange: move network-related settings out of settings.ini
This to prepare the code to split up network-related settings
into private / secrets / generic.
3 years ago
Rubidium 9c7a7b53a1 Codechange: use a contructor for NewsItem to set the values
And use std::unique_ptr to manage the memory of the allocated data
3 years ago
rubidium42 9a7750f14e Codechange: use the constructor for CompanyNewsItem to fill the data instead of a separate function 3 years ago
rubidium42 aa9818db90 Codechange: create a type for the "free_data" of NewsItems and (de)allocate it with new and delete 3 years ago
translators df601b8559 Update: Translations from eints
finnish: 1 change by hpiirai
3 years ago
Patric Stout d38079d053
Fix f7e390bd: freeaddrinfo() is not guaranteed to handle a nullptr graceful (#9404) 3 years ago
Loïc Guilloux b6fb020388
Change: [strgen] Change warnings for translations into infos (#9406)
Unless invoked with -w, --warning ("print a warning for any untranslated strings") or -t, --todo ("replace any untranslated strings with '<TODO>'").

Eints normally fixes the warnings after a Pull Request, so it is not really useful information for the developer to see as a warning.
3 years ago
translators 8336d21b25 Update: Translations from eints
swedish: 27 changes by joeax910
korean: 4 changes by telk5093
russian: 1 change by Ln-Wolf
portuguese: 1 change by azulcosta
3 years ago
translators c539343ba9 Update: Translations from eints
swedish: 1 change by joeax910
3 years ago
TELK f9b4a3a5e6
Add: Show the number of clients and companies in the online players window (#9376) 3 years ago
embeddedt 883e4ea325
Change: [Emscripten] set default scrolling mode to non-pointer-locking (#9191) 3 years ago
SamuXarick 003b6a0c85
Fix ea9715d: not all setting values were clamped properly (#9401) 3 years ago
translators 59e96cd56a Update: Translations from eints
swedish: 6 changes by joeax910
finnish: 1 change by hpiirai
catalan: 9 changes by J0anJosep
3 years ago
Loïc Guilloux 87eb0e4fce
Fix #9402, 2e136285: Crash when founding town using default name (#9403) 3 years ago
translators da7621cc55 Update: Translations from eints
swedish: 1 change by joeax910
3 years ago
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.
3 years ago
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
3 years ago
rubidium42 c93fcbcb28 Codechange: introduce helper to convert from the iterated type to the actual SettingDesc 3 years ago
rubidium42 f7f1d530b8 Codechange: instead of "naked" initializer lists, declare the type in the saveload macros
This to help variant's constructor to be able to resolve the constructor of the setting
3 years ago
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.
3 years ago
rubidium42 cdf9caf8ea Codechange: [Network] Remove overload on NetworkValidateClientName
Rename the zero-parameter NetworkValidateClientName to NetworkValidateOurClientName to make it clearer it is performed on our client name, and to make it a non-overloaded function to aid with the variant being added a few commits later
3 years ago
Patric Stout 0013673faf Change: prevent palette updates during copying to the video driver
ThreadSanitizer rightfully notices that the game-thread could
update the palette while the draw-thread is copying it for local
use. The odds of this are very small, but nevertheless, it does
carry a very good point.

It wouldn't hurt the application in any way, but it might cause
visual glitches on the screen.
3 years ago
Patric Stout 74186998a2 Codechange: use _cur_palette the same in all the drivers
It was a bit of a mixed bag. With this change, gfx.cpp is in
control who accesses _cur_palette from the video-drivers.
3 years ago
Patric Stout 1ed7afc0a8
Change: [GitHub] use an issue form to let people fill in bug report / crashes (#9400) 3 years ago
translators 95a94dcf90 Update: Translations from eints
swedish: 1 change by joeax910
dutch: 9 changes by Afoklala
3 years ago
Michael Lutz 37116a7575 Codechange: [OSX] Remove old code that has no effect on current OSX versions. 3 years ago
Michael Lutz 883e21dbb7 Codechange: [OSX] We use OpenGL even if Apple doesn't like it. 3 years ago
Michael Lutz 0d5d3083bd Codechange: [OSX] Use more exact enum names where introduced with the 10.12 SDK.
The enum values still have the exact same numerical values, but the 10.12
SDK introduced more explicit names (e.g. like NSEventTypeApplicationDefined
instead of NSApplicationDefined) for several enum constants.
Use them when available.
3 years ago
translators 8c1b89e107 Update: Translations from eints
english (us): 9 changes by 2TallTyler
3 years ago
translators 6a05839d8d Update: Translations from eints
swedish: 1 change by kustridaren
korean: 1 change by telk5093
3 years ago
Jonathan G Rennison 8a33e98834
Fix #8169: nullptr dereference when autoreplacing vehicle with no orders (#9387) 3 years ago