Rubidium
3e4d327451
Codechange: use the C++ std::getenv over the POSIX/C getenv
...
The C++ std::getenv is guaranteed thread-safe by the C++11 specification,
whereas the POSIX/C getenv might not be thread-safe by the C11 specification.
2021-07-10 22:55:46 +02:00
translators
d158eba72c
Update: Translations from eints
...
spanish (mexican): 74 changes by absay
vietnamese: 62 changes by KhoiCanDev
2021-07-10 18:49:56 +00:00
Patric Stout
de7ab2eb1c
Cleanup: remove unused optional ctor parameter for NetworkGameList
2021-07-10 20:17:07 +02:00
Patric Stout
6212d0a8da
Remove: unused UDP protocol parts
2021-07-10 20:17:07 +02:00
Patric Stout
8a2da49413
Remove: old server listing via Master Server
...
This removes all UDP from the game except for a local broadcast
to find LAN games.
So long Master Server, and tnx for all the fish!
2021-07-10 20:17:07 +02:00
Patric Stout
61fdef8457
Remove: old server announcement to Master Server
...
As we now use the Game Coordinator for announcements, there is no
longer a need to use the Master Server for this.
2021-07-10 20:17:07 +02:00
Patric Stout
aa93d76223
Add: use Game Coordinator to get latest public server listing
2021-07-10 20:17:07 +02:00
Patric Stout
b1280fd17e
Add: use Game Coordinator to annouce public servers
2021-07-10 20:17:07 +02:00
Patric Stout
e1e2212e0e
Codechange: track version of network servers to prune once out-of-date
2021-07-10 20:17:07 +02:00
Patric Stout
cbaac5609f
Codechange: use UpdateNetworkGameWindow() over manually marking window dirty
2021-07-10 20:17:07 +02:00
Loïc Guilloux
ddb6024bc6
Codechange: Don't explicitly unset _generating_world outside of genworld.cpp ( #9418 )
2021-07-10 14:59:17 +02:00
Rubidium
85faa218ff
Remove: logically dead code in graph UI
2021-07-10 11:27:09 +02:00
Rubidium
0d0375c019
Remove: logically dead code from font cache
...
The outer if statement checks for 'aa' being false, so within the inner
statements anything checking aa will have a known result and the other
branch from there will be dead code.
2021-07-10 11:27:09 +02:00
Rubidium
1c0c4637d2
Fix 11ab3c4: [NewGRF] Overflow when determining cargo mask for string code 9A 1E
...
9A 1E: Print unsigned word as name of a cargo type (translated for GRF version >= 7).
2021-07-10 10:51:00 +02:00
Rubidium
ede3f79475
Codechange: use the name string in SaveLoad for the name of the Setting as well
2021-07-09 22:53:30 +02:00
Rubidium
01139d3368
Codechange: access the name of a setting via an accessor function
2021-07-09 22:53:30 +02:00
Rubidium
94881f5a34
Codechange: name a few unnamed settings as to not to have to check for that being empty
2021-07-09 22:53:30 +02:00
Stephan
a70aa5df49
Add #9188 : netsave now keeps multiple version around, similar to autosave ( #9395 )
2021-07-09 21:44:02 +02:00
glx22
ce813ce644
Cleanup: Remove now unused FOR_EACH_SET_BIT_EX macro
2021-07-09 21:36:09 +02:00
glx22
49b66ea504
Codechange: Remove FOR_EACH_SET_TRACK
2021-07-09 21:36:09 +02:00
glx22
a543a4b7bb
Codechange: Remove FOR_EACH_SET_CARGO_ID
2021-07-09 21:36:09 +02:00
glx22
89ab8b79a5
Codechange: Remove FOR_EACH_SET_BIT
2021-07-09 21:36:09 +02:00
glx22
5844027eb8
Codechange: Remove FOR_ALL_SORTED_STANDARD_CARGOSPECS
2021-07-09 21:36:09 +02:00
glx22
87eb997be0
Codechange: Remove FOR_ALL_TILES_IN_HEIGHT
2021-07-09 21:36:09 +02:00
Patric Stout
8f5d0ecde3
Codechange: split settings.ini over several files ( #9421 )
...
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-09 21:16:03 +02:00
translators
d9ca9ca555
Update: Translations from eints
...
spanish (mexican): 44 changes by absay
italian: 2 changes by CoderLel
2021-07-09 18:53:08 +00:00
translators
a5add82600
Update: Translations from eints
...
spanish (mexican): 54 changes by absay
2021-07-08 18:51:52 +00:00
Patric Stout
c1f13e0372
Fix: reduce the amount of debug messages on -dsl=2 ( #9420 )
...
LoadCheck makes it sound like something is really broken while
loading savegames, while it really is perfectly normal, as most
chunks do not implement LoadCheck.
2021-07-08 19:31:00 +02:00
Patric Stout
852e056d6f
Fix 9e32c618: network revision was always empty ( #9419 )
...
Shadowing the variable you intend to write in tends to do that ;)
2021-07-08 12:29:16 +02:00
translators
a7fabe497c
Update: Translations from eints
...
spanish (mexican): 6 changes by absay
2021-07-07 18:51:22 +00:00
glx22
7bcc7e11ff
Codechange: Use a common sub-class for NewGRFMapping chunks
2021-07-06 22:29:08 +02:00
glx22
6e627f35ac
Cleanup: Remove now unneeded ChunkHandler members
2021-07-06 22:29:08 +02:00
glx22
2c941cd8b3
Codechange: Use ChunkHandlers sub-classes
2021-07-06 22:29:08 +02:00
glx22
c1a9fe6fbd
Codechange: Use static array of references to ChunkHandler
2021-07-06 22:29:08 +02:00
glx22
f371a5ad70
Codechange: Preparation for ChunkHandler subclassing
2021-07-06 22:29:08 +02:00
Rubidium
7e7a4aad72
Codechange: split off the settings saveload code from the main settings handling logic
2021-07-06 21:32:47 +02:00
rubidium42
25ca6a75bc
Codechange: split off the settings table and all the callbacks from the main settings handling logic
2021-07-06 21:32:47 +02:00
glx22
b4aedc8bee
Codechange: ensure xxx_setting_tables are initialised after their content
2021-07-06 21:32:47 +02:00
Loïc Guilloux
ddafc0de05
Fix 39e90ec: Integers for scripts are 64bit, but saved as 32bit ( #9415 )
2021-07-06 21:09:08 +02:00
translators
8913ae9ba8
Update: Translations from eints
...
portuguese (brazilian): 1 change by Vimerum
2021-07-06 18:50:32 +00:00
translators
faea943a9b
Update: Translations from eints
...
hindi: 26 changes by ritwikraghav14
2021-07-05 18:50:45 +00:00
translators
511c1081af
Update: Translations from eints
...
catalan: 1 change by J0anJosep
2021-07-04 18:49:29 +00:00
translators
05bdfadcb6
Update: Translations from eints
...
norwegian (bokmal): 1 change by Anolitt
japanese: 1 change by scabtert
2021-07-03 18:49:50 +00:00
Loïc Guilloux
0fa2007560
Fix cdb3dd049: GOAL chunk was not using the header for loading ( #9409 )
2021-07-03 18:26:24 +02:00
rubidium42
d38ad7d80c
Cleanup: remove declaration of undefined function
2021-07-03 11:26:13 +02:00
rubidium42
979783f90e
Codechange: replace InjectDParam/ShiftParameters by setting the right parameter values in the first place
2021-07-03 11:26:13 +02:00
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.
2021-07-02 22:21:58 +02:00
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.
2021-07-02 22:21:58 +02:00
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.
2021-07-02 22:21:58 +02:00
Patric Stout
3826703bc3
Add: store headers for chunks with SL_STRUCTLIST
2021-07-02 22:21:58 +02:00
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.
2021-07-02 22:21:58 +02:00
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.
2021-07-02 22:21:58 +02:00
translators
513641f9ba
Update: Translations from eints
...
english (us): 1 change by 2TallTyler
german: 1 change by Wuzzy2
dutch: 1 change by Afoklala
2021-07-02 18:50:57 +00:00
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.
2021-07-02 14:30:14 +02:00
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.
2021-07-02 14:30:14 +02:00
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.
2021-07-02 14:30:14 +02:00
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.
2021-07-02 14:30:14 +02:00
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
2021-07-01 19:04:38 +02:00
rubidium42
9a7750f14e
Codechange: use the constructor for CompanyNewsItem to fill the data instead of a separate function
2021-07-01 19:04:38 +02:00
rubidium42
aa9818db90
Codechange: create a type for the "free_data" of NewsItems and (de)allocate it with new and delete
2021-07-01 19:04:38 +02:00
translators
df601b8559
Update: Translations from eints
...
finnish: 1 change by hpiirai
2021-06-30 18:53:37 +00:00
Patric Stout
d38079d053
Fix f7e390bd: freeaddrinfo() is not guaranteed to handle a nullptr graceful ( #9404 )
2021-06-29 23:02:25 +02:00
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.
2021-06-29 22:19:24 +02:00
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
2021-06-29 18:52:43 +00:00
translators
c539343ba9
Update: Translations from eints
...
swedish: 1 change by joeax910
2021-06-28 19:00:24 +00:00
TELK
f9b4a3a5e6
Add: Show the number of clients and companies in the online players window ( #9376 )
2021-06-28 18:42:23 +02:00
embeddedt
883e4ea325
Change: [Emscripten] set default scrolling mode to non-pointer-locking ( #9191 )
2021-06-28 18:39:09 +02:00
SamuXarick
003b6a0c85
Fix ea9715d: not all setting values were clamped properly ( #9401 )
2021-06-28 00:58:54 +02:00
translators
59e96cd56a
Update: Translations from eints
...
swedish: 6 changes by joeax910
finnish: 1 change by hpiirai
catalan: 9 changes by J0anJosep
2021-06-27 18:50:30 +00:00
Loïc Guilloux
87eb0e4fce
Fix #9402 , 2e136285: Crash when founding town using default name ( #9403 )
2021-06-27 17:18:21 +02:00
translators
da7621cc55
Update: Translations from eints
...
swedish: 1 change by joeax910
2021-06-26 18:50:34 +00:00
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
c93fcbcb28
Codechange: introduce helper to convert from the iterated type to the actual SettingDesc
2021-06-26 20:28:34 +02:00
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
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
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
2021-06-26 20:28:34 +02:00
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.
2021-06-26 20:28:05 +02:00
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.
2021-06-26 20:28:05 +02:00
translators
95a94dcf90
Update: Translations from eints
...
swedish: 1 change by joeax910
dutch: 9 changes by Afoklala
2021-06-25 18:50:57 +00:00
Michael Lutz
37116a7575
Codechange: [OSX] Remove old code that has no effect on current OSX versions.
2021-06-22 21:09:37 +02:00
Michael Lutz
883e21dbb7
Codechange: [OSX] We use OpenGL even if Apple doesn't like it.
2021-06-22 21:09:37 +02:00
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.
2021-06-22 21:09:37 +02:00
translators
8c1b89e107
Update: Translations from eints
...
english (us): 9 changes by 2TallTyler
2021-06-22 18:55:02 +00:00
translators
6a05839d8d
Update: Translations from eints
...
swedish: 1 change by kustridaren
korean: 1 change by telk5093
2021-06-20 18:53:19 +00:00
Jonathan G Rennison
8a33e98834
Fix #8169 : nullptr dereference when autoreplacing vehicle with no orders ( #9387 )
2021-06-19 23:31:23 +02:00
translators
052f6b5d9f
Update: Translations from eints
...
swedish: 12 changes by joeax910
2021-06-19 18:53:27 +00:00
PeterN
ce7ef4d824
Fix: Wrong cargo line position in IndustryCargo window. ( #9383 )
...
Resolved by changing calculation to determine the offset based on centring the cargo lines in the available space.
2021-06-17 23:34:59 +01:00
SamuXarick
1e6a2163a5
Fix #9358 : Don't skip empty files in tar ( #9367 )
2021-06-18 00:08:49 +02:00
Patric Stout
cf865597f8
Fix: don't propagate shift/ctrl state till next game-tick ( #9381 )
...
When the game-loop is very slow, it was easily possible to start
the loop with _shift_pressed being false, but end with
_shift_pressed being true. This doesn't hurt the game as such,
but for the user this can be very weird: I pressed "Buy Vehicle",
pressed shift a bit later, and I still get a cost indication.
2021-06-17 20:22:57 +02:00
Patric Stout
b45c006ab9
Fix: on startup, NewGRF scan could case race-condition ( #9382 )
...
Creating a thread was not thread-safe. The irony.
The video-driver has a function GameLoopPause() which first checks
if the thread is the game-thread or not. For this it needs access
to this->game_thread. This variable is set in StartNewThread().
However, due to timing, it is well possible GameLoopPause() is
called from the thread well before this->game_thread is assigned.
And so we have a race-condition!
Simply solve this by preventing a thread to start till we are
done with our bookkeeping.
2021-06-17 20:10:40 +02:00
Patric Stout
c12a152ec9
Fix: thread safety issue during exiting the game ( #9380 )
...
_exit_game is read by the draw-thread to know when to exit, but
most of the time written by the game-thread.
2021-06-17 18:58:59 +02:00
Rubidium
281a65b3e1
Cleanup: simplify some boolean expressions
2021-06-17 16:18:30 +02:00
Rubidium
357af686dc
Cleanup: use true/false instead of 1/0 where applicable
2021-06-17 16:18:30 +02:00
Rubidium
f904aef176
Cleanup: use nullptr instead of 0 or NULL
2021-06-17 16:18:30 +02:00
Rubidium
a9774f3e34
Cleanup: [Squirrel] Use nullptr instead of 0 or NULL
2021-06-17 16:18:30 +02:00
Rubidium
3237e97b35
Cleanup: [Script] Use nullptr instead of 0 or NULL
2021-06-17 16:18:30 +02:00
Rubidium
930bb22416
Cleanup: remove lines from station_base.h that are already included in includes base_station_base.h
2021-06-17 16:18:30 +02:00
translators
b560620eb9
Update: Translations from eints
...
spanish: 3 changes by MontyMontana
hindi: 28 changes by ritwikraghav14
2021-06-15 18:57:22 +00:00
Patric Stout
8e91527251
Codechange: mark chunks that are not stored as CH_READONLY
...
This makes it easier to spot chunks that have a save_proc that
is a nullptr, but also prevents confusion, where it looks like
the CH_ type of a chunk has influence on how it is being read.
It is not, it is only used for saving.
2021-06-15 19:36:15 +02:00
Patric Stout
4c4b55ecbd
Change: rework GLOG chunk to be more like the rest
...
Basically it is very similar to Vehicles, where there first is
a type field, followed by data of that type. So this commit makes
it looks like how Vehicles solved that.
This removes a lot of custom "keeping track of length" stuff.
2021-06-15 19:36:15 +02:00
Patric Stout
88edfd4ef1
Change: rework several CH_RIFF chunks to use CH_ARRAY instead
...
This adds two byte extra to those chunks, and might feel a bit
silly at first. But in later changes we will prefix CH_ARRAY with
a table header, and then this change shines.
Without this, we could still add headers to these chunks, but any
external reader wouldn't know if the CH_RIFF has them or not. This
way is much more practical, as they are now more like any other
chunk.
2021-06-15 19:36:15 +02:00
Patric Stout
b9ab9e4d05
Codechange: add the ability to save/load a std::vector
...
std::vector<bool> is not possible, as .. that is a nice special
case in C++.
This new type will be used in next commit.
2021-06-15 19:36:15 +02: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
Patric Stout
f67af5cbe5
Codechange: make it more obvious SlArray supports SLE_VAR_NULL
...
In the end, the code was already doing the right thing, but a few
functions deep, and not really obvious. When validating what objects
can handle SLE_VAR_NULL, it is nicer to just have this obvious.
2021-06-15 16:45:04 +02:00
Patric Stout
d5cda58158
Codechange: use SL_NULL if you want to store null-bytes or load to nothing
...
Using SL_ARR for this gives us a bit of trouble later on, where we
add a length-field to SL_ARR. This of course is not the intention
of SLE_CONDNULL. So better seperate it.
2021-06-15 16:45:04 +02:00
Patric Stout
0d2e3437e3
Change: switch SL_DEQUE and SL_REFLIST length field to a gamma
...
The current SaveLoad is a bit inconsistent how long a length field
is. Sometimes it is a 32bit, sometimes a gamma. Make it consistent
across the board by making them all gammas.
2021-06-15 16:45:04 +02:00
Patric Stout
75e7451151
Change: indicate in the savegame if a SL_STRUCT contains any data
...
This helps external tooling to understand if a SL_STRUCT should
be skipped when reading. Basically, this transforms an SL_STRUCT
into a SL_STRUCTLIST with either 0 or 1 length.
2021-06-15 16:45:04 +02:00
Patric Stout
a146bcfe93
Change: store length of SL_STRUCTLIST in the savegame
...
This wasn't consistently done, and often variables were used that
were read by an earlier blob. By moving it next to the struct
itself, the code becomes a bit more self-contained and easier to
read.
Additionally, this allows for external tooling to know how many
structs to expect, instead of having to know where to find the
length-field or a hard-coded value that can change at any moment.
2021-06-15 16:45:04 +02:00
SamuXarick
d0bcb9839a
Fix: you could join an AI company in multiplayer via the GUI ( #9369 )
2021-06-15 14:00:50 +02:00
Rubidium
d31a535c87
Cleanup: remove some unneeded c_str() calls
2021-06-15 06:13:00 +02:00
rubidium42
05005dcdfa
Codechange: [Network] Use std::string instead of char[] for the name of the file that is downloading
2021-06-15 06:13:00 +02:00
rubidium42
981cd0197a
Codechange: [Network] Use std::string for the client name in the network server
2021-06-15 06:13:00 +02:00
rubidium42
a8b3afb236
Codechange: [Network] Use string_view for network compatability check
2021-06-15 06:13:00 +02:00
rubidium42
49dcf0c772
Codechange: [Network] Simplify constructing the HTTP request with fmt
2021-06-15 06:13:00 +02:00
rubidium42
53b4786037
Codechange: [Network] Let NetworkError return its std::string instead of a C-string
2021-06-15 06:13:00 +02:00
rubidium42
667301e3ec
Codechange: [Network] Make hostname/client IP return strings instead of a C-string
2021-06-15 06:13:00 +02:00
rubidium42
a91e29b656
Codechange: [Network] Let IsInNetmask use std::string
2021-06-15 06:13:00 +02:00
rubidium42
36705f1dc0
Codechange: [Network] Simplify formatting of network addresses to string
2021-06-15 06:13:00 +02:00
rubidium42
9e32c618f9
Fix: [Network] Determining GetNetworkRevisionString could overflow and underflow its buffer
...
Tagged releases are not affected
2021-06-14 23:05:18 +02:00
Patric Stout
7b135a8269
Codechange: use SLE_STRUCT(LIST) for Linkgraph chunks
2021-06-14 21:58:05 +02:00
Patric Stout
5cd0c65787
Codechange: move Save/Load functions of same chunk next to each other
2021-06-14 21:58:05 +02:00
Patric Stout
af3aba7a88
Codechange: use SLE_STRUCT(LIST) for GameScript chunks
2021-06-14 21:58:05 +02:00
Patric Stout
aa02bf27f6
Codechange: use as much of STNN code for STNS as possible
...
There was a lot of code duplication for no real reason. Now with
SLEG_STRUCT support, we can just re-use the code, hopefully making
it easier for future-us to make changes to this, without breaking
everything for old games.
2021-06-14 21:58:05 +02:00
Patric Stout
0bdca02bdf
Codechange: use SLE_STRUCT(LIST) for Station chunks
2021-06-14 21:58:05 +02:00
Patric Stout
af43fc3d62
Codechange: use SLE_STRUCT(LIST) for Company chunks
2021-06-14 21:58:05 +02:00
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
translators
909f3f25bd
Update: Translations from eints
...
spanish (mexican): 9 changes by absay
portuguese (brazilian): 9 changes by Vimerum
2021-06-14 18:54:53 +00:00
Peter Nelson
7385e780ac
Cleanup: nested_array should not be accessed directly.
...
Replace accesses with GetWidget() as documented.
2021-06-14 17:49:01 +01:00
rubidium42
c811d42d0c
Fix a99ac62: fmt's include of cassert breaks our assert logic
2021-06-13 21:02:17 +02:00
translators
721c3fdfb4
Update: Translations from eints
...
vietnamese: 2 changes by KhoiCanDev
german: 9 changes by Wuzzy2
finnish: 1 change by hpiirai
portuguese: 9 changes by azulcosta
2021-06-13 18:55:51 +00:00
rubidium42
fc63432a11
Codechange: improve style/writing of IConsolePrint strings
2021-06-13 15:25:31 +02:00
rubidium42
75afd25e16
Change: do not print the '-' in front of help messages and make help messages more uniform
2021-06-13 15:25:31 +02:00
rubidium42
eb6cdadc4d
Codechange: replace IConsolePrintF with IConsolePrint and fmt formatting
...
Also make some strings more consistent with the rest of the console strings.
2021-06-13 15:25:31 +02:00
rubidium42
d9c1d18f2b
Change: improve some of the console messages related to networking (make them more uniform) and convert to fmt
2021-06-13 15:25:31 +02:00
rubidium42
b280a3a0ed
Cleanup: remove IConsoleWarning/IConsoleError helpers
...
Both did not support format parameters, so in many places IConsolePrint(CC_ERROR, "message") was used with a style different from what IConsoleError would do.
2021-06-13 15:25:31 +02:00
rubidium42
efd4ba4797
Change: unify the style of console error messages and convert to fmt
...
Always start with a capital, do not add "ERROR: " in front of it.
2021-06-13 15:25:31 +02:00
rubidium42
de49727ae8
Change: not performing a command is worthy of an error, not a warning
...
If a command cannot be executed for whatever reason, it makes no sense to call it a warning. Something has been done wrong.
Also make writing of these error message consistent while changing their "type".
2021-06-13 15:25:31 +02:00
rubidium42
121b037054
Codechange: remove single use IConsoleDebug
2021-06-13 15:25:31 +02:00
rubidium42
6b757c716a
Codechange: add an IConsolePrint overload that does formatting with fmt
2021-06-13 15:25:31 +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
7d79180040
Codechange: use fmt in DebugPrint where applicable
2021-06-13 12:45:45 +02:00
rubidium42
352dbdd570
Cleanup: remove old DEBUG macro and debug function
2021-06-13 12:45:45 +02:00
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
2021-06-13 12:45:45 +02:00
rubidium42
a99ac62c1a
Codechange: use the fmt library for simpler debug formats
2021-06-13 12:45:45 +02:00
rubidium42
662d8dfc30
Add: minimal set of headers from {fmt} 7.1.3 to 3rdparty
2021-06-13 12:45:45 +02:00
rubidium42
845fded2a0
Fix #9361 , a2051ba: [Network] Off by one in CanWriteToPacket
...
Previously it did not allow writing a byte to a packet that was of size limit - 1 anymore.
2021-06-13 10:31:02 +02:00
rubidium42
bf500c39c9
Codechange: make the name of SettingDesc a std::string
2021-06-13 10:26:58 +02:00
rubidium42
e588923bff
Codechange: add std::string accepting SetDParamStr to ErrorMessageData
2021-06-13 10:26:58 +02:00
rubidium42
ca9c50607e
Codechange: use StrStartsWith/StrEndsWith when finding settings
2021-06-13 10:26:58 +02:00
rubidium42
fed3e3305f
Codechange: add function to determine whether are string starts or ends with a given other string
2021-06-13 10:26:58 +02:00
TELK
2d0abf5a76
Fix #9362 : Hover in online players window was slightly too big ( #9364 )
...
This causes graphical glitches at the bottom of the window.
2021-06-13 10:06:50 +02:00
Michael Lutz
418e0ea85f
Codechange: Use dynamic string list for contents of land info window.
2021-06-12 22:30:38 +02:00
translators
8dd846bad4
Update: Translations from eints
...
norwegian (bokmal): 10 changes by Anolitt
korean: 9 changes by telk5093
russian: 9 changes by Ln-Wolf
finnish: 10 changes by hpiirai
spanish: 8 changes by MontyMontana
french: 9 changes by glx22
2021-06-12 18:56:05 +00:00
rubidium42
71f3c35288
Fix #9353 : [Script] Garbage collecting on priority queues could crash the game
2021-06-12 19:58:14 +02:00
Peter Nelson
40cec34836
Change: Skip creating a RealSpriteGroup when there is only one result.
...
This avoids checking RSG for empty sets every time they are evaluated.
This might alter behaviour in cases of a malformed NewGRF file.
2021-06-12 08:05:59 +01:00
Peter Nelson
f1328db063
Codechange: Deduplicate ResolveReal() for resolvers that don't use real sprite groups.
...
This may change behaviour when multiple loading/loaded stages are provided, as the various copies checked in different orders, however only one result is expected in these cases anyway.
2021-06-12 08:05:59 +01:00
translators
c562b4c527
Update: Translations from eints
...
hindi: 67 changes by ritwikraghav14
2021-06-11 18:54:52 +00:00
Loïc Guilloux
16ebf7861f
Fix 4079c47: Missed a file when removing generated .sq files from the repo ( #9350 )
2021-06-11 16:59:19 +02:00
Loïc Guilloux
ee5f23382d
Fix: [Script] doxygen_filter is very strict about DOXYGEN_API usage ( #9351 )
2021-06-11 16:40:04 +02:00
Patric Stout
ef25afd55a
Fix #9348 , 4d74e51: don't try to sell shares of spectators ( #9349 )
...
"new_owner" can be INVALID_OWNER, and as INVALID_OWNER ==
COMPANY_SPECTATORS, we could end up trying to sell shares of
nobody.
2021-06-11 00:18:20 +02:00
Tyler Trahan
d09210e1c6
Feature: Configurable subsidy duration
2021-06-10 23:26:16 +02:00
glx22
c2db408d5d
Fix aa5a8fe28: [MinGW] Wrong define tested (WIN32 vs _WIN32)
2021-06-10 23:17:29 +02:00
glx22
d485b50813
Fix: [MinGW] Ignore wglGetProcAddress() cast warnings
2021-06-10 23:17:29 +02:00
glx22
744a9e4745
Codechange: [WIN32] Add a wrapper around GetProcAddress()
2021-06-10 23:17:29 +02:00
glx22
15f66329c2
Fix: [MinGW] Silence 2 cast warnings
2021-06-10 23:17:29 +02:00
glx22
00e3fddd0c
Fix: [MinGW] Unused squirrel code triggering a warning
2021-06-10 23:17:29 +02:00
glx22
b7250a42e1
Fix: [MinGW32] Linking error
2021-06-10 23:17:29 +02:00
glx22
2df48a78cc
Fix: [MinGW32] Can't convert lambda to stdcall
2021-06-10 23:17:29 +02:00
glx22
3ca0239985
Fix: [MinGW32] SHGFP_TYPE_CURRENT is now present in win32api
2021-06-10 23:17:29 +02:00
glx22
5d05c4919b
Codechange: [WIN32] Reduce manual dynamic loading as WinXP is the minimum version
2021-06-10 23:17:29 +02:00
glx22
f4c7d5577e
Codechange: [WIN32] Use VersionHelpers where appropriate
2021-06-10 23:17:29 +02:00
Patric Stout
ed3946e295
Add: '-X' option to ignore global folders in the search path ( #9341 )
...
This is extreme useful for automated testing. Without this, OpenTTD
will always look in your personal-dir (like ~/.local/share/openttd
or %USER%\Documents\OpenTTD). For most users this is exactly what
we want, that there is a shared place for all their files.
However, for automated testing this is rather annoying, as your
local development files influence the automated test. As such,
'-X' counters this, and only gives the local folders. This is
especially useful in combination with '-x' and '-c'.
2021-06-10 23:13:34 +02:00
rubidium42
2924ac48c5
Fix: [Script] Ensure the saved script strings are properly validated and terminated when being read from the savegame
2021-06-10 22:03:23 +02:00
rubidium42
bb8fd00760
Cleanup: [Network] Remove C-string Recv_string and its last use
2021-06-10 21:53:19 +02:00
rubidium42
ab9b937ab7
Codechange: [Network] Use std::string to get a NewGRF's name
2021-06-10 21:53:19 +02:00
Patric Stout
849a10520c
Change: allow pause/unpause console command in single player too ( #9342 )
2021-06-10 20:11:50 +02:00
rubidium42
e2417193c9
Cleanup: [ContentInfo] Remove some functions that are not needed anymore
2021-06-10 20:09:44 +02:00
rubidium42
e3717ae903
Codechange: [ContentInfo] Use std::string instead of string buffers
2021-06-10 20:09:44 +02:00
rubidium42
df181bb641
Codechange: [ContentInfo] Use a vector for dependencies instead of custom allocation
2021-06-10 20:09:44 +02:00
rubidium42
9c424ab741
Codechange: [ContentInfo] Use StringList for tags instead of custom allocations
2021-06-10 20:09:44 +02:00
rubidium42
dfb89f3891
Codechange: [ContentInfo] Do not use memset/memcpy to make it possible to use vector/string
2021-06-10 20:09:44 +02:00
rubidium42
6bb3f034e4
Cleanup: [ContentInfo] Remove unused function
2021-06-10 20:09:44 +02:00
Patric Stout
37ae6b8ae3
Add: adhere the autosave_on_exit setting for Null videodriver ( #9343 )
...
This is especially useful for automated-testing, to make a save
when the game quits while using "-vnull:ticks=N".
2021-06-10 19:34:53 +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
Vít Šefl
f899772ec2
Fix 2e136285: Crash when CTRL-clicking on a sign ( #9345 )
2021-06-10 15:49:25 +02:00
translators
37b285ad83
Update: Translations from eints
...
spanish (mexican): 2 changes by absay
2021-06-09 19:13:47 +00:00
translators
12de256b72
Update: Translations from eints
...
german: 1 change by Wuzzy2
spanish: 1 change by ilyabakhlin
2021-06-08 19:22:42 +00: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
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
Patric Stout
7572603c9d
Codechange: remove the unused SLF_HEX flag
2021-06-06 21:45:01 +02:00
translators
d835a42c05
Update: Translations from eints
...
english (us): 1 change by 2TallTyler
catalan: 5 changes by J0anJosep
2021-06-06 19:37:57 +00: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
translators
3559e55b91
Update: Translations from eints
...
spanish (mexican): 1 change by absay
latvian: 2 changes by osprinkis
2021-06-05 19:36:47 +00:00
translators
ea23a9cdb6
Update: Translations from eints
...
korean: 1 change by telk5093
dutch: 1 change by Afoklala
french: 1 change by MalaGaM
2021-06-04 20:11:37 +00:00
translators
d816ff0361
Update: Translations from eints
...
korean: 1 change by telk5093
2021-06-03 20:24:19 +00:00
Patric Stout
5e44da3010
Fix ef991b17: server was trying to free() a packet created with "new CommandPacket()" ( #9334 )
2021-06-03 22:07:44 +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
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
f8dd5dd00a
Codechange: remove unused assert_msg() macro
2021-06-03 17:30:00 +02:00
translators
48ecc481ee
Update: Translations from eints
...
swedish: 1 change by joeax910
2021-06-01 20:58:39 +00:00
Vít Šefl
30f5938eed
Fix b791ffc6: use the correct name in CmdPlantTree
2021-06-01 18:26:35 +02:00
Vít Šefl
c936f8b769
Fix b791ffc6: use the correct parameter in CmdSignalTrackHelper
2021-06-01 17:12:06 +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
translators
956d761e3e
Update: Translations from eints
...
japanese: 1 change by scabtert
2021-05-31 20:18:35 +00:00
Patric Stout
921ab68a48
Codechange: use AsIntSetting()->Read() wrapper if possible ( #9324 )
2021-05-31 10:56:06 +02:00
translators
043a544248
Update: Translations from eints
...
korean: 2 changes by telk5093
russian: 1 change by Ln-Wolf
finnish: 1 change by hpiirai
portuguese: 1 change by azulcosta
portuguese (brazilian): 1 change by Vimerum
2021-05-30 19:56:14 +00:00
Rubidium
5ded596c80
Fix #9320 , 2e136285: nullptr could not be converted to string
2021-05-30 19:59:49 +02:00
rubidium42
4613ababd3
Fix #9316 , 64eddaeb: at about 250.000 inhabitants the bridge length limit check overflows
2021-05-30 15:09:18 +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
e9e4588db1
Codechange: use setting name instead of index for HandleOldDiffCustom() ( #9311 )
2021-05-30 10:40:59 +02:00
Patric Stout
bcd7a7aafe
Codechange: rename _SQ64 into POINTER_IS_64BIT ( #9313 )
2021-05-30 10:40:03 +02:00
rubidium42
8c273ed598
Codechange: [Network] Let admin-console use std::string(_view)
2021-05-30 10:15:22 +02:00
rubidium42
e58581f1f8
Codechange: [Network] Let admin-game script use std::string
2021-05-30 10:15:22 +02:00
rubidium42
29f2bd27c4
Codechange: [Game] Pass the length instead of '\0' terminating (and undoing that) in the middle of a C-string
2021-05-30 10:15:22 +02:00
rubidium42
8a918ce170
Codechange: [Network] Make admin name and version std::string
2021-05-30 10:15:22 +02:00
rubidium42
97c461d1e7
Fix: limit heightmap sizes to something reasonable to prevent crafted heightmaps to OOM-crash the game
2021-05-30 09:50:38 +02:00
rubidium42
e3c9ed4d15
Codechange: [Network] Use std::string to determine an unique name for clients
2021-05-30 00:01:49 +02:00
rubidium42
806f78aa04
Codechange: [Network] Use std::string to send the client name and rcon commands
2021-05-30 00:01:49 +02:00
rubidium42
fd95736bac
Codechange: [Network] Use std::string for server side logic of kicking and banning clients
2021-05-30 00:01:49 +02:00
rubidium42
f0e1cd0129
Codechange: [Network] Let server rcon result use std::string
2021-05-30 00:01:49 +02:00
rubidium42
8b9f1147df
Codechange: [Network] Let server changing a client name use std::string
2021-05-30 00:01:49 +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
glx22
994bf19aef
Fix f6d5c01: Delay deletion when closing windows
2021-05-29 21:08:25 +02:00
rubidium42
ef991b1772
Codechange: [Network] Use std::string in CommandPacket
2021-05-29 19:02:18 +02:00
rubidium42
2e136285e1
Codechange: move from C-string to std::string for DoCommand
2021-05-29 19:02:18 +02:00
rubidium42
661728558e
Codechange: let IsUnique.* functions accept std::string
2021-05-29 19:02:18 +02:00
rubidium42
b4aedef848
Codechange: add std::string variant of Utf8StringLength
2021-05-29 19:02:18 +02:00
Vít Šefl
0125ba82e8
Fix: Do not send vehicles towards incomplete PF nodes
...
YAPF could end up in a situation where it sets the best intermediate node
to a node whose construction is never finalized (i.e. it is never added to
the open list). The content of the node would be overwritten in the next
round, potentially sending the vehicle to an unwanted location.
2021-05-29 19:00:47 +02:00
Patric Stout
7713c3e3cc
Codechange: move casting a "const char *" to "char *" to the caller
...
It is not nice to have your definition say you won't change a value
while in fact the whole reason for your existance is to change it.
2021-05-29 16:23:59 +02:00
Patric Stout
665e3c1f45
Fix: ScriptObject::DoCommand could modify "text" while defined "const"
...
This could have unwanted side-effects, as it could change the
source for ever and ever.
2021-05-29 16:23:59 +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
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
Patric Stout
4d74e51907
Fix #9281 : acquire a company uses special bookkeeping to make you rich ( #9300 )
...
When you buy-out a company, you got your shares back. This is
based on company-value, which includes values for the vehicles etc.
In other words, you not only got the vehicles, but you also got
paid to get them back.
Additionally, you also got the loan of the company, but not the
money for the loan (as that is subtracted from the company-value).
Solve this by changing the rules of a buy-out: don't sell your
shares, get the loan AND the balance and get the infrastructure.
2021-05-29 11:21:30 +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
ea9715d970
Codechange: split Write_ValidateSetting to get separate functions for making ints valid and writing ints
2021-05-29 10:07:30 +02:00
rubidium42
208952f2ba
Codechange: split Write_ValidateSetting to get separate functions for making strings valid and writing strings
2021-05-29 10:07:30 +02:00
translators
ce1c60699a
Update: Translations from eints
...
norwegian (bokmal): 3 changes by Anolitt
dutch: 3 changes by Afoklala
portuguese (brazilian): 3 changes by Vimerum
2021-05-28 19:53:19 +00:00
translators
7b5c0b4236
Update: Translations from eints
...
chinese (traditional): 9 changes by benny30111
english (us): 3 changes by 2TallTyler
2021-05-27 19:38:25 +00:00
Patric Stout
7648483364
Change: by default, make "unload all" leave stations empty ( #9301 )
2021-05-27 18:56:39 +02:00
rubidium42
8372c679e3
Codechange: add helper functions to read an int setting value
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
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
72ec81325b
Cleanup: remove unneeded temporary variables and casts
2021-05-27 18:49:43 +02:00
rubidium42
0d6597a9e6
Codechange: move bits of SettingDesc down to the appropriate sub classes
...
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-27 18:49:43 +02:00
rubidium42
f58611298e
Codechange: use IntSettingDesc in the settings GUI
2021-05-27 18:49:43 +02:00
rubidium42
f6723b53da
Codechange: make parsing of IniItems overridable functions of SettingDesc
2021-05-27 18:49:43 +02:00
rubidium42
1f8ff0e4f9
Codechange: make Write_ValidateSetting a function of StringSettingDesc
2021-05-27 18:49:43 +02:00
rubidium42
be28c95b30
Codechange: make Write_ValidateSetting a function of IntSettingDesc
2021-05-27 18:49:43 +02:00
rubidium42
024e584904
Cleanup: use (config) formatting for console settings functions
2021-05-27 18:49:43 +02:00
rubidium42
c3cd4a683d
Codechange: make formatting of values into strings a method of SettingDesc
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
rubidium42
cf6b91f30f
Codechange: do not use SettingDescBase directly when not needed
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
425d50372f
Codechange: let SettingDesc extend SettingDescBase
2021-05-27 18:49:43 +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
8ffb4122df
Codechange: just pass the SettingDesc to SetSettingValue and remove distinction between (non)company
2021-05-27 18:49:43 +02:00
rubidium42
db54e20825
Change: mark copy-assignment as deleted for classes with a copy-constructor that is not trivial
...
This to prevent the default copy-assignment getting used when during the assignment also some other memory needs to be allocated as that would otherwise be freed.
2021-05-27 18:30:56 +02:00
rubidium42
9197de39e4
Cleanup: remove unused copy-constructor without copy-assignment
2021-05-27 18:30:56 +02:00
rubidium42
6fe4d4ad7b
Codechange: linkgraph always iterates with NodeIDs over the Size(), so make Size() the same type to prevent infinite loops
2021-05-27 18:30:56 +02:00
rubidium42
ed9e38221a
Cleanup: remove dead code; ++ on ostreambuf_iterator is a no-op
2021-05-27 18:30:56 +02:00
rubidium42
b280f16316
Codechange: remove unneeded comparison and casts
...
Division by resize_y is already yielding an unsigned number, so when clicking in the WD_FRAMERECT_TOP you would already get a huge value, so sel would never be negative. So, leave sel an unsigned number and remove the <= check.
2021-05-27 18:30:56 +02:00
rubidium42
b9797a81c0
Codechange: pass large parameter by reference instead of value, especially in a recursive function
2021-05-27 18:30:56 +02:00
rubidium42
b791ffc6de
Fix: do not hide parameter by local variable with the same name
2021-05-27 18:30:56 +02:00
rubidium42
eaa3df1e8e
Fix: part of a tile might not be marked dirty upon terraforming
2021-05-27 18:30:56 +02:00
translators
35dbd53682
Update: Translations from eints
...
russian: 3 changes by Ln-Wolf
slovak: 3 changes by FuryPapaya
spanish: 3 changes by MontyMontana
2021-05-26 19:32:03 +00:00
translators
c96945fa2b
Update: Translations from eints
...
swedish: 27 changes by joeax910
spanish (mexican): 1 change by absay
korean: 4 changes by telk5093
german: 3 changes by Wuzzy2
finnish: 3 changes by hpiirai
french: 3 changes by glx22
portuguese: 3 changes by azulcosta
2021-05-25 19:16:10 +00:00
translators
6b24cd2516
Update: Translations from eints
...
swedish: 50 changes by joeax910
2021-05-24 19:18:21 +00:00
milek7
7607277380
Fix: Network on Haiku, remove old code for BeOS
2021-05-24 08:56:18 +02:00
milek7
886f5c104a
Fix: Workarounds for BeMidi driver to work properly on Haiku
2021-05-24 08:56:18 +02:00
milek7
36bcd2956a
Fix: Building on Haiku
2021-05-24 08:56:18 +02:00
glx22
7c0762da65
Change: Show what is affected by "wagon removal" toggle
2021-05-23 21:51:58 +02:00
glx22
e99352a5d9
Change: Unhide Ctrl effect for group replace protection
2021-05-23 21:51:58 +02:00
translators
64be66216c
Update: Translations from eints
...
chinese (traditional): 3 changes by benny30111
2021-05-23 19:20:55 +00:00
Jonathan G Rennison
a896753ecc
Fix #9264 : Do not attach temporary wagons to free wagon chains when autoreplacing
2021-05-23 21:05:55 +02:00
Vít Šefl
33d99d27f4
Fix: Encountering two-way red signals could prune unrelated branches.
...
The intermediate node branch is now only pruned if the node is on the
path leading to the two-way red signal.
2021-05-23 20:19:39 +02:00
Michael Lutz
97722931a9
Fix: [OpenGL] Increase timeout when waiting for the GPU to be done with the drawing buffer.
...
The old timeout could be too short if v-sync was on on lower refresh rates.
2021-05-23 12:22:59 +02:00
translators
4f7d6cf1ba
Update: Translations from eints
...
japanese: 4 changes by akaregi
korean: 2 changes by telk5093
2021-05-22 19:12:46 +00:00
translators
7b58bfaf6c
Update: Translations from eints
...
japanese: 42 changes by akaregi
2021-05-21 19:16:19 +00:00
translators
08e71eed8b
Update: Translations from eints
...
japanese: 74 changes by akaregi
2021-05-20 19:11:15 +00:00
translators
ca9f9b84d3
Update: Translations from eints
...
japanese: 239 changes by akaregi, 18 changes by scabtert
2021-05-19 19:09:28 +00:00
translators
145f2fc43a
Update: Translations from eints
...
indonesian: 14 changes by NinjaQuince
2021-05-18 19:10:56 +00:00
translators
7caceb26f7
Update: Translations from eints
...
korean: 1 change by telk5093
indonesian: 55 changes by NinjaQuince
2021-05-17 19:08:25 +00:00
rubidium42
e2dc5aa83e
Codechange: [Network] Use C++ string functions to generate company password hash
2021-05-17 16:09:10 +02:00
translators
e2e06633c9
Update: Translations from eints
...
norwegian (bokmal): 1 change by Anolitt
slovak: 1 change by FuryPapaya
2021-05-16 19:07:45 +00:00
rubidium42
4d246cda73
Codechange: [Network] Let NetworkClientInfo use std::string
2021-05-16 10:07:51 +02:00
rubidium42
83679c0e57
Codechange: [Network] Use std::string to populate the client list for company stats
2021-05-16 10:07:51 +02:00
rubidium42
e90b2649b6
Codechange: [Network] Let NetworkCompanyInfo use std::string
2021-05-16 10:07:51 +02:00
Rubidium
5c01f9ea52
Fix #9267 , 47a99bb: [Squirrel] Heap use after free
...
Due to 47a99bb
the order of elements in the garbage collection chain has
changed causing the class to be finalised before the instances of that class.
Since the instance's array of member values depends on the size of the values
in the class, the class finalisation resetting that size to 0 causes not all
finalisations to run, which subsequently causes a heap use after free. So,
just set the SQObjectPtrs to 'null' during the finalisation of the SQClass
so the SQInstance can release all instance variables during its finalisation.
2021-05-16 10:07:38 +02:00
glx22
e66e25ff71
Fix #9269 , f6d5c01: Hide windows without abusing WC_INVALID
2021-05-15 21:08:49 +02:00
translators
2e43f91891
Update: Translations from eints
...
estonian: 1 change by siimsoni
indonesian: 39 changes by w13
2021-05-15 19:05:41 +00:00
rubidium42
fab120ee83
Codechange: [Network] Let chat communication use std::string
2021-05-15 10:20:50 +02:00
rubidium42
ae85af98eb
Codechange: Use std::string GetString where convenient
2021-05-15 10:20:50 +02:00
rubidium42
2e0297b0fa
Add: GetString that returns std::string instead of filling a passed buffer
2021-05-15 10:20:50 +02:00
rubidium42
e6703eac68
Codechange: [Network] Let NetworkTextMessage use std::string
2021-05-15 10:20:50 +02: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
Rubidium
031e91de6e
Fix: [Network] Check on CIDR for netmask check considered everything valid
2021-05-15 10:16:10 +02:00
Rubidium
e6f0d63e25
Codechange: comparison result is always the same due to earlier check
...
Practically the length of the handlers not being equal to the number of
features is the problem as it means something was forgotten when adding
a new feature, so static assert to that and let the existing check on
the feature number take care of invalid data from the NewGRFs.
2021-05-15 10:16:10 +02:00
rubidium42
aa5a8fe28a
Codechange: use thread safe time functions
...
Functions like localtime, gmtime and asctime are not thread safe as they (might) reuse the same buffer. So use the safer _s/_r variant for localtime and gmtime, and use strftime in favour of asctime.
2021-05-14 23:22:29 +02:00
rubidium42
297d6e20bf
Codechange: [Network] Pass passwords as std::string to the network code
2021-05-14 23:22:04 +02:00
rubidium42
ebe32ad912
Codechange: [Network] Use std::string for the internal handling of admin/rcon passwords
2021-05-14 23:22:04 +02:00
rubidium42
6db52d52d0
Codechange: [Network] Use std::string for the internal handling of server passwords
2021-05-14 23:22:04 +02:00
rubidium42
1de5cdeab8
Codechange: [Network] Use std::string for the internal handling of company passwords
2021-05-14 23:22:04 +02:00
rubidium42
98283116fa
Codechange: [Network] Make company state password std::string
2021-05-14 23:22:04 +02:00
frosch
1da0ba95b2
Feature: Define refittability of default vehicles using cargo classes.
...
This ensures that default vehicles can transport any NewGRF defined cargos, albeit with weird graphics and vehicle names.
This also changes the refittability of default vehicles with default industries.
2021-05-13 23:28:43 +02:00
frosch
9f8d0b1bee
Fix: Resolve cargo-types of default vehicles via their cargo label.
...
Default vehicles now behave as if they had a cargo translation table. This fixes default vehicles carrying seemingly random cargos, if NewGRF industry sets are present.
This behavior is disabled, when a NewGRF touches any of the cargo-type or refitting properties. In that case it's up to the NewGRF to define its own cargo translation table.
2021-05-13 23:28:43 +02:00
frosch
a9ff296c3d
Codechange: add constant for number of original cargoes.
2021-05-13 23:28:43 +02: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
rubidium42
77330d09fd
Codechange: move font settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
65cbde4b30
Codechange: move currency settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
2022e34824
Codechange: move locale settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
16437b7c0d
Codechange: move client name in settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
02fdb5b210
Codechange: move server name/id in settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
cc6c078dec
Codechange: move hostnames in settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
c73d64adf9
Codechange: move passwords in settings to std::string
2021-05-13 23:13:17 +02:00
rubidium42
f219354f89
Change: further support for std::string in settings
2021-05-13 23:13:17 +02:00
translators
423a5034ee
Update: Translations from eints
...
french: 2 changes by glx22
2021-05-13 19:09:30 +00:00
Patric Stout
a403653805
Codechange: [Network] split CloseSocket and CloseConnection more clearly ( #9261 )
...
* Codechange: [Network] split CloseSocket and CloseConnection more clearly
- CloseSocket now closes the actual OS socket.
- CloseConnection frees up the resources to just before CloseSocket.
- dtors call CloseSocket / CloseConnection where needed.
2021-05-13 11:46:51 +02:00
Paweł Świątkowski
56a46f5cae
Fix: Correct name of Golub-Dobrzyn
2021-05-13 10:05:07 +02:00
Paweł Świątkowski
6ee8690b47
Fix: Replace Susz with Leszno
...
Susz is masculine, not neuter, so it should result in "Susz Mazowiecki",
"Susz Morski", and not "Susz Mazowieckie" or "Susz Morskie". However,
because order of the names whould not be changed, it was replaced with
Leszno, which is neuter.
2021-05-13 10:05:07 +02:00
Rubidium
187a3f20bf
Codechange: remove pointless close call due to resolving virtual functions statically in destructors
...
In the destructors of many of the network related classes Close() is called, just like the
top class in that hierarchy. However, due to virtual functions getting resolved statically
in the destructor it would always call the empty Close() of the top class.
Document the other cases where a virtual call is resolved statically.
2021-05-13 10:03:26 +02:00
Rubidium
7755f81bb8
Codechange: make explicit that virtual functions in a con/destructor are resolved statically
...
This as during construction the sub class has not been initialized yet, and
during destruction the sub class has already been destroyed, so the overriding
virtual function would be accessing uninitialized data.
2021-05-13 10:03:26 +02:00
Patric Stout
d7ce61f106
Fix #9255 : [Network] TCPConnecter crashes when hostname not found ( #9259 )
2021-05-13 08:13:48 +02:00
glx22
38c97e1492
Codechange: Replace TILE_AREA_LOOP with range-based for loops
2021-05-13 00:13:54 +02:00
frosch
5bd8144853
Fix #9256 , 12e43c697d2: invalid read after free. ( #9258 )
...
This also changes ScriptEventVehicleAutoReplaced when replacing wagons:
The event is now only spawned, if the head engine changes, so only if the VehicleID of the consist changes.
Previously replacing wagons spawned an event with OldVehicleID==NewVehicleID.
2021-05-12 23:40:03 +02:00
frosch
f6d5c0136e
Codechange: make Window destruction not rely on undefined behavior.
2021-05-12 23:22:41 +02:00
frosch
f96f113951
Codechange: use IterateFromBack/Front only if the order is important.
...
Use Iterate if the order does not matter.
2021-05-12 23:22:41 +02:00
frosch
22567a1f43
Codechange: use iterators instead of 'subranges' when iterating from a specific window.
...
Using iterators makes it easier to include or exclude the start window in the iteration.
2021-05-12 23:22:41 +02:00
frosch
aba239479b
Codechange: remove excessive templating in favour of a single const_cast.
...
The const_cast will be removed again in a later commit.
2021-05-12 23:22:41 +02:00