Age | Commit message (Collapse) | Author |
|
Cargo payments were stored as unsigned integer, but cast to int64 during
application of inflation. However, then being multiplied with a uint64
making the result uint64. So in the end the payment that should have been
negative becomes hugely positive.
|
|
|
|
portuguese (brazilian): 6 changes by Vimerum
|
|
dutch: 13 changes by Afoklala
|
|
slovak: 39 changes by ApplePie420
|
|
finnish: 14 changes by hpiirai
|
|
german: 10 changes by Wuzzy2
|
|
german: 4 changes by danidoedel
romanian: 23 changes by ALEX11BR
portuguese (brazilian): 6 changes by jpsl00
|
|
romanian: 17 changes by ALEX11BR
|
|
swedish: 9 changes by joeax910
russian: 1 change by Ln-Wolf
|
|
russian: 9 changes by Ln-Wolf
catalan: 25 changes by J0anJosep
|
|
spanish (mexican): 13 changes by absay
|
|
|
|
"my_client" wasn't always free'd when a game ended. "my_client"
keeps a reference inside the PT_NCLIENT pool. The rest of the
code assumes that when you are not in a game, it can freely
reset this pool.
In result: several ways to trigger a use-after-free.
|
|
english (us): 15 changes by 2TallTyler
korean: 12 changes by telk5093
russian: 3 changes by Ln-Wolf
portuguese: 12 changes by azulcosta
polish: 98 changes by pAter-exe
|
|
|
|
swedish: 1 change by joeax910
romanian: 36 changes by ALEX11BR
|
|
TURN is a last resort, used only if all other methods failed.
TURN is a relay approach to connect client and server together, where
openttd.org (by default) is the middleman.
It is very unlikely either the client or server cannot connect to
the STUN server, as they are both already connected to the Game
Coordinator. But in the odd case it does fail, estabilishing the
connection fails without any further possibility to recover.
|
|
if needed
|
|
|
|
|
|
|
|
Notably, a company with an extremely negative amount of money would
suddenly become very rich
|
|
INT64_MIN negated is above INT64_MAX, and would overflow.
Instead, when negating INT64_MIN make it INT64_MAX.
This does mean that -(-(INT64_MIN)) != INT64_MIN.
|
|
window (#9452)
|
|
german: 1 change by danidoedel
|
|
|
|
estonian: 1 change by siimsoni
russian: 20 changes by Ln-Wolf
|
|
|
|
Before 8a2da49 the NewGRF names were synchronized using UDP packets, however
those have been removed. With this a new version of the GameInfo packet is
introduced that allows to specify the type of serialisation happens for
NewGRFs. Either only the GRF ID and checksum, or those two plus the name of
the NewGRF.
On this request for local servers will send the NewGRFs names.
The Game Coordinator will get the names on the first registration, and after
that only the GRF ID and checksum.
|
|
|
|
These were filled with "<Unknown>" (before 8a2da49) and later their name would get filled via UDP requests to the server. These UDP packets do not exist anymore, so they will always remain "<Unknown>".
Remove that logic and just use the generic translated error GRF UNKNOWN string instead.
|
|
korean: 2 changes by telk5093
catalan: 3 changes by J0anJosep
french: 17 changes by glx22
portuguese: 1 change by azulcosta
portuguese (brazilian): 15 changes by Vimerum
|
|
state (#9445)
|
|
It was always starting from 0 on openttd restart.
Now the most recent auto/netsave number will be used as a base to generate the next filename.
|
|
|
|
|
|
spanish (mexican): 1 change by absay
dutch: 15 changes by Afoklala
portuguese: 1 change by azulcosta
|
|
|
|
This method doesn't require port-forwarding to be used, and works for
most common NAT routers in home setups. But, for sure it doesn't work
for all setups, and not everyone will be able to use this.
|
|
|
|
swedish: 14 changes by joeax910
|
|
Co-authored-by: The Dude <thedude@novapolis.net>
|
|
spanish (mexican): 1 change by absay
finnish: 14 changes by hpiirai
|
|
korean: 1 change by telk5093
portuguese: 1 change by azulcosta
|
|
spanish (mexican): 4 changes by absay
english (us): 13 changes by 2TallTyler
korean: 5 changes by telk5093
german: 13 changes by Wuzzy2
portuguese: 4 changes by azulcosta
hindi: 6 changes by ritwikraghav14
|
|
Now you can use things like `set server_game_type public` instead of having to
guess the number, which would not be written into the configuration file nor
would it be shown when doing `set server_game_type`.
|
|
Every outgoing connection, either TCP or UDP, triggered
NetworkInitialize(), which triggered NetworkUDPInitialize() which
first closes all connections.
Now the problem was that "Search LAN games" found a server, added
it to the list, after which (over TCP) it queries the server. This
closes all UDP sockets (as that makes sense, I guess?), while the
UDP was still reading from it.
Solve this by simply stop initializing UDP every time we make an
outgoing TCP connection; instead only do it on start-up.
|
|
files need it
|
|
In this mode you do register to the Game Coordinator, but your
server will not show up in the public server listing. You can give
your friends the invite code of the server with which they can
join.
|