Commit Graph

19256 Commits (11dece205c83b530d7ddaa1290efde04f4dfdeb9)

Author SHA1 Message Date
Patric Stout 2c05412d72
Fix #9407: desync when founding a town nearby a station (#9526)
"stations_near" wasn't updated when founding a town near
a station. As this variable is not saved, any client joining
after the town is founded has a different value for
"stations_near", potentially causing desyncs.

As the intention of this if() statement was to skip an expensive
calculation when there are clearly no stations, better to move
that check inside the function, so other places also enjoy
the speedup.
3 years ago
Patric Stout f87fe395a7
Fix: pathfinders always tried to avoid docking tiles (even if nothing was on them) (#9522)
When coming across any docking tile (for example, all tiles around
an oilrig are docking tiles), it always at least added a penalty
of 3 times a normal tile, even when there are no ships on them.

In result, the pathfinder got suggested to always go around docking
tiles. This was most likely not the intention of the change made in
31db4f8d5e.
3 years ago
translators 219598a90b Update: Translations from eints
vietnamese: 6 changes by myquartz
3 years ago
translators 80231975e5 Update: Translations from eints
greek: 121 changes by dionisis84
3 years ago
Patric Stout d8e870c50c
Fix: when DNS didn't resolve any IPs, the debug message was misleading (#9519) 3 years ago
Patric Stout 13b53e1290
Codechange: remove unused strings (#9516) 3 years ago
translators 20ff6fd3f1 Update: Translations from eints
arabic (egypt): 21 changes by AviationGamerX
finnish: 2 changes by hpiirai
turkish: 59 changes by ahmetlii
3 years ago
Patric Stout 8ab267496b
Codechange: reference a string by its name, not with "another + 1" (#9517)
It is wrong anyway, as "TINY" normally is at -1. Just weird code.
3 years ago
Loïc Guilloux 8d2162ba2d
Fix b6a116a: convert server_advertise to server_game_type in config file (#9515) 3 years ago
translators aa83488fde Update: Translations from eints
swedish: 2 changes by joeax910
spanish (mexican): 7 changes by absay
slovenian: 2 changes by Yeznick
greek: 60 changes by dionisis84
german: 7 changes by Wuzzy2
dutch: 2 changes by Afoklala
3 years ago
translators 56d4749ac9 Update: Translations from eints
norwegian (bokmal): 5 changes by buzzCraft, 2 changes by Anolitt
english (us): 7 changes by 2TallTyler
russian: 2 changes by Ln-Wolf
3 years ago
translators e9f3ddb6ba Update: Translations from eints
greek: 28 changes by dionisis84
portuguese: 2 changes by azulcosta
3 years ago
translators ef3c4a8737 Update: Translations from eints
greek: 17 changes by dionisis84
catalan: 4 changes by J0anJosep
portuguese (brazilian): 2 changes by Vimerum
3 years ago
translators 52d57b17b0 Update: Translations from eints
swedish: 8 changes by joeax910
3 years ago
Patric Stout dc5b7b996c
Fix: [Network] show query errors in the server listing instead of error popup (#9506)
When you are query several servers at once, it is rather unclear
for which server you got a popup. Instead, show any errors on the
server itself.

This is only true for the query-part. Joining a server still gives
an error popup to tell you about any issue.
3 years ago
Patric Stout e31b5d3870
Fix #9490: [Network] a full server couldn't be queried either (#9508)
You can now still query a full server, as long as the maximum
amount of allowed connections isn't reached. This means that as
long as there are not 255 clients connected to a server, you can
always connect to query.
3 years ago
Patric Stout b2f0491a90
Fix #9501: [Network] crash when more than one game-info query was pending (#9502) 3 years ago
Patric Stout 47ce306085
Fix c4b700f1: remove left-over debug statement (#9510) 3 years ago
Patric Stout 0d26359b5b
Fix: [Network] don't show GameScript " (v0)" for old servers (#9507)
Old servers don't tell the GameScript they are running, so nothing
should be shown.
All values in NetworkGameInfo initialize as 0/empty, except for GS
version. Someone has to be different from the rest, I guess.
3 years ago
translators f939f48cd2 Update: Translations from eints
indonesian: 32 changes by dimaspaf14
russian: 2 changes by Ln-Wolf
3 years ago
Patric Stout 4066a07d8f
Fix: [Network] crash when last-joined server that is no longer available (#9503)
If you update the server-list while not having last-joined selected
and it is no longer available, the game crashed.
3 years ago
Nicolas Chappe b83820e723 Change: [Linkgraph] Delete links only served by vehicles stopped in depot
A stale link is not deleted if the link refresher finds a vehicle that still serves it.
This commit excludes vehicles stopped in depot for a very long time from the link refresher,
so that their stale links can be deleted.
3 years ago
translators dd3acccb1b Update: Translations from eints
korean: 5 changes by telk5093
dutch: 5 changes by Afoklala
portuguese (brazilian): 3 changes by AKANexus
polish: 5 changes by pAter-exe
3 years ago
translators 07f98f9234 Update: Translations from eints
italian: 13 changes by CoderLel
russian: 1 change by Ln-Wolf
french: 2 changes by glx22
3 years ago
Michael Lutz fff09a4af2 Fix d9c1d18f2: Wrong format string for console disconnect message. 3 years ago
translators a7fe82c646 Update: Translations from eints
finnish: 3 changes by hpiirai
portuguese: 2 changes by azulcosta
3 years ago
Joan Josep cc38a42b07
Fix 659989af45: Set appropriate town window dirty when building/removing airports. (#9497) 3 years ago
translators 335a2392e7 Update: Translations from eints
finnish: 2 changes by hpiirai
portuguese: 1 change by azulcosta
3 years ago
Patric Stout c4b700f1b0
Fix #9492: show for what server a relay session is being created (#9494)
Currently it says "the server" which is a bit ambigious. Be more
specific.
3 years ago
Patric Stout 996ae28989
Fix #9491: reword "no connection" error message (#9495) 3 years ago
Patric Stout 5da60cef46
Fix: typo in the word "spectator" (tnx Heiki) (#9496) 3 years ago
Nicolas Chappe de28817d9f Fix 977604ef: [Linkgraph] Add a special case for unknown travel times on link update 3 years ago
translators 325d031082 Update: Translations from eints
catalan: 2 changes by J0anJosep
french: 1 change by glx22
3 years ago
Patric Stout 5c776f21e7
Fix 6acf204d: crash when showing coordinator-error-messages (#9488) 3 years ago
translators 04e9df47d9 Update: Translations from eints
russian: 1 change by Ln-Wolf
3 years ago
Nicolas Chappe 977604ef08 Feature: [Linkgraph] Prioritize faster routes for passengers, mail and express cargo
Passengers usually prefer fast paths to short paths.
Average travel times of links are updated in real-time for use in Dijkstra's algorithm,
and newer travel times weigh more, just like capacities.
3 years ago
Patric Stout 6acf204d14
Fix: report reuse of invite-code and switch to local game-type (#9487)
This prevents two servers battling for the same invite-code. Now
the last one wins.
3 years ago
translators b531a0c1cf Update: Translations from eints
chinese (simplified): 1 change by goodspeed34
3 years ago
Frédéric Simonis ac4a7d02c7
Codechange: Improve LineCache queries (#9417)
Adds the support to query the linecache without copying the string.
This uses a custom transparent comparator in conjunction with
a query type using a std::string_view.
3 years ago
dP 2e6a77a78a
Fix: connecting with the same name thrice hangs the server (#9485) 3 years ago
translators d212505dcf Update: Translations from eints
chinese (simplified): 82 changes by goodspeed34
french: 2 changes by glx22
portuguese: 1 change by azulcosta
portuguese (brazilian): 2 changes by Vimerum
3 years ago
translators cb9a2dec0d Update: Translations from eints
portuguese: 1 change by azulcosta
3 years ago
Patric Stout eca73a810c Change: rebrand 1.12.0 to 12.0
One question that keeps popping up: "when do we release 2.0?".
NewGRF will force that at least 1.16 will be 2.0, but to not wait
for this, let's drop the "1." and be for ever done with that
conversation.

We are following in the footstep of giants here.
3 years ago
Michael Lutz ee333a9549
Fix 2183fd4d: [NewGRF] Use divide instead of right shift for signed numbers. (#9480)
"For negative a, the value of a >> b is implementation-defined (in most implementations, this performs arithmetic right shift, so that the result remains negative)."
3 years ago
Vít Šefl 2183fd4dab
Feature: [NewGRF] Maximum curve speed modifier for rail vehicles (#9346) 3 years ago
Patric Stout 579f393374
Add: open Online Players GUI on starting/joining a server (#9479) 3 years ago
Patric Stout 1ef4d3cf19
Remove: COMPANY_INFO packets and related code (#9475) 3 years ago
Patric Stout 3d55ea2d4d
Feature: make "join game" button join the game, instead of first showing a lobby window (#9467)
Nobody really paid attention to the lobby window, and it completely
missed its purpose. Most people don't even wait for companies to
show up, but just hit "New Company".
This in turn means people create a lot of unneeded companies, while
they "just want to watch the game" or join another company.

Instead, "Join Game" now just joins the game as spectators.
3 years ago
Patric Stout db13eebf29
Fix 508e465b: network servers didn't show invite-code / connection-type in Online Players GUI (#9478)
The selector selects the first widget, which by accident was now only
the server visibility.
3 years ago
translators c3d43d7b1c Update: Translations from eints 3 years ago
Patric Stout 132c540d58
Fix: name the Online Players caption the same as in the menu (#9473)
Referring to one window in two ways is a bit annoying.
3 years ago
Patric Stout 508e465b59
Add: synchronize server name to clients and display in Online Players GUI (#9472) 3 years ago
Patric Stout 65b8614d26
Add: mention you are a spectator in the status bar (if you are, ofc) (#9471) 3 years ago
SamuXarick 120d216b0b
Add: [AI] Get the number of vehicles in a given group (#9462) 3 years ago
SamuXarick 26f7f592cd
Fix #8316: Make sort industries by production and transported with a cargo filter possible (#8468) 3 years ago
SamuXarick 76b8343777
Fix #9392: Return a valid value with GetBuildWithRefitCapacity when AIs are maxed out in vehicles (#9393) 3 years ago
Michael Lutz b14681891d Fix 8706dcd9: [Script] Byte-swap grfids to match normal expectations. 3 years ago
translators 580dd118cb Update: Translations from eints 3 years ago
Patric Stout 4c1ea4020d
Change: remove the ability to control "max spectators" (#9466)
Soon we will make "join game" join the game as spectator first,
so limiting the amount of spectators makes no sense anymore in
that context. Not sure it ever did make sense.
3 years ago
Loïc Guilloux 8a083cd7f8
Fix 68f2213: Don't use GetPoolSize() for end of pool iterator (#9461) 3 years ago
Loïc Guilloux 4eb368c786
Fix 14f197c: [Script] int64 values don't fit into int (#9465) 3 years ago
Michael Lutz 8706dcd9c1
Add: [Script] Basic information about loaded NewGRFs for scripts. (#9464)
Currently, scripts use various heuristics to detect loaded NewGRFs that are inherently unreliable.
The list of loaded NewGRFs is easily accessible to a human player, and thus giving
scripts the same information is consistent with the current approach to not give scripts
more information than a human player.
3 years ago
translators d58772ecda Update: Translations from eints
vietnamese: 28 changes by KhoiCanDev
3 years ago
translators 2dd46b964a Update: Translations from eints
latvian: 13 changes by osprinkis
3 years ago
translators b681935fc8 Update: Translations from eints
norwegian (bokmal): 28 changes by Anolitt
3 years ago
translators 1838726985 Update: Translations from eints
french: 12 changes by glx22
3 years ago
Rubidium d83647f9a7 Fix #9440: negative cargo payments not being handled right
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.
3 years ago
dP c1d79398d5 Fix: Use of unstable sort when distributing cargo production can cause desyncs 3 years ago
translators 6fce05689c Update: Translations from eints
portuguese (brazilian): 6 changes by Vimerum
3 years ago
translators 8380ff8dd0 Update: Translations from eints
dutch: 13 changes by Afoklala
3 years ago
translators 9df60a2759 Update: Translations from eints
slovak: 39 changes by ApplePie420
3 years ago
translators dea999566d Update: Translations from eints
finnish: 14 changes by hpiirai
3 years ago
translators 476c039332 Update: Translations from eints
german: 10 changes by Wuzzy2
3 years ago
translators d17e4f7d29 Update: Translations from eints
german: 4 changes by danidoedel
romanian: 23 changes by ALEX11BR
portuguese (brazilian): 6 changes by jpsl00
3 years ago
translators 7409e6fea1 Update: Translations from eints
romanian: 17 changes by ALEX11BR
3 years ago
translators cab212258f Update: Translations from eints
swedish: 9 changes by joeax910
russian: 1 change by Ln-Wolf
3 years ago
translators 333de9f15d Update: Translations from eints
russian: 9 changes by Ln-Wolf
catalan: 25 changes by J0anJosep
3 years ago
translators 72737a91f3 Update: Translations from eints
spanish (mexican): 13 changes by absay
3 years ago
Rubidium ba29edb0b3 Cleanup: remove some references to the old master-server 3 years ago
Patric Stout 9cc706847c
Fix: crash when joining a server again after a TCP disconnect (#9453)
"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.
3 years ago
translators 99d0d9be6b Update: Translations from eints
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
3 years ago
Charles Pigott 6c33b4ed28
Fix #8335: Race condition in music mixer (#9450) 3 years ago
translators dd54e4c835 Update: Translations from eints
swedish: 1 change by joeax910
romanian: 36 changes by ALEX11BR
3 years ago
Patric Stout fa1e27994d Feature: allow the use of TURN to connect client and server together
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.
3 years ago
Patric Stout 8a36134003 Fix: [Network] rework when to close connections and inform Game Coordinator if needed 3 years ago
Charles Pigott f1dfc2f482 Codechange: Make OverflowSafeInt constexpr 3 years ago
Charles Pigott 549a58731f Codechange: Remove (unused) ability to specify min/max of OverflowSafeInt 3 years ago
Charles Pigott e6e2a67aa1 Codechange: Use GCC/clang builtins for overflow safety when supported 3 years ago
Charles Pigott 3d0d9edafd Fix: OverflowSafeInt could underflow
Notably, a company with an extremely negative amount of money would
suddenly become very rich
3 years ago
Charles Pigott 1e439979f7 Fix: OverflowSafeInt negation not handling INT64_MIN
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.
3 years ago
Loïc Guilloux 9b0bb21f3b
Fix 57734fd: Don't enable rename button for network clients in build vehicle window (#9452) 3 years ago
translators d1cf56609d Update: Translations from eints
german: 1 change by danidoedel
3 years ago
Charles Pigott 1e529e1632
Fix: [Fluidsynth] Crash when debug output enabled (#9446) 3 years ago
translators 9421cb1e2c Update: Translations from eints
estonian: 1 change by siimsoni
russian: 20 changes by Ln-Wolf
3 years ago
Rubidium 386ef4dac3 Feature: [Game Coordinator] Send NewGRF names to the client 3 years ago
rubidium42 3eaa470632 Feature: [Network] Optionally send NewGRF names with NewGRFs in GameInfo
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.
3 years ago
rubidium42 5dd524139f Fix c921f6d: [Network] Documentation of Game Info packet was not updated 3 years ago
rubidium42 09a7825d1e Remove: the concept of UnknownGRFs
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.
3 years ago
translators 3479e59eea Update: Translations from eints
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
3 years ago
Patric Stout ab601115a9
Fix 75b6051b: removing items from the ini could leave the group in a bad state (#9445) 3 years ago