summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-07-20Update: Translations from eintstranslators
swedish: 1 change by joeax910 romanian: 36 changes by ALEX11BR
2021-07-20Feature: allow the use of TURN to connect client and server togetherPatric Stout
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.
2021-07-20Fix: [Network] rework when to close connections and inform Game Coordinator ↵Patric Stout
if needed
2021-07-20Codechange: Make OverflowSafeInt constexprCharles Pigott
2021-07-20Codechange: Remove (unused) ability to specify min/max of OverflowSafeIntCharles Pigott
2021-07-20Codechange: Use GCC/clang builtins for overflow safety when supportedCharles Pigott
2021-07-20Fix: OverflowSafeInt could underflowCharles Pigott
Notably, a company with an extremely negative amount of money would suddenly become very rich
2021-07-20Fix: OverflowSafeInt negation not handling INT64_MINCharles Pigott
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.
2021-07-19Fix 57734fd: Don't enable rename button for network clients in build vehicle ↵Loïc Guilloux
window (#9452)
2021-07-19Update: Translations from eintstranslators
german: 1 change by danidoedel
2021-07-19Fix: [Fluidsynth] Crash when debug output enabled (#9446)Charles Pigott
2021-07-18Update: Translations from eintstranslators
estonian: 1 change by siimsoni russian: 20 changes by Ln-Wolf
2021-07-18Feature: [Game Coordinator] Send NewGRF names to the clientRubidium
2021-07-18Feature: [Network] Optionally send NewGRF names with NewGRFs in GameInforubidium42
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.
2021-07-18Fix c921f6d: [Network] Documentation of Game Info packet was not updatedrubidium42
2021-07-18Remove: the concept of UnknownGRFsrubidium42
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.
2021-07-17Update: Translations from eintstranslators
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
2021-07-17Fix 75b6051b: removing items from the ini could leave the group in a bad ↵Patric Stout
state (#9445)
2021-07-17Feature: Persistant rotation of numbered auto/netsave after restart (#9397)Loïc Guilloux
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.
2021-07-16Change: [Win32] Set the console codepage to UTF-8glx22
2021-07-16Fix 433f74e: GetString() requires a language packglx22
2021-07-16Update: Translations from eintstranslators
spanish (mexican): 1 change by absay dutch: 15 changes by Afoklala portuguese: 1 change by azulcosta
2021-07-16Doc: explain in a bit more detail how we implemented STUNPatric Stout
2021-07-16Feature: allow the use of STUN to connect client and server togetherPatric Stout
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.
2021-07-16Codechange: allow Connect() to bind to a local addressPatric Stout
2021-07-15Update: Translations from eintstranslators
swedish: 14 changes by joeax910
2021-07-14Add: inform clients what game-script a server is running (#9441)Patric Stout
Co-authored-by: The Dude <thedude@novapolis.net>
2021-07-14Update: Translations from eintstranslators
spanish (mexican): 1 change by absay finnish: 14 changes by hpiirai
2021-07-13Update: Translations from eintstranslators
korean: 1 change by telk5093 portuguese: 1 change by azulcosta
2021-07-12Update: Translations from eintstranslators
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
2021-07-11Feature: parse the console settings the same way as config settingsRubidium
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`.
2021-07-11Fix: "Search LAN games" used the socket after it was closed (#9437)Patric Stout
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.
2021-07-11Remove: includes to network/core/config.h from headers when only three cpp ↵Rubidium
files need it
2021-07-11Add: allow setting your server visibility to "invite-only" (#9434)Patric Stout
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.
2021-07-11Update: Translations from eintstranslators
spanish (mexican): 29 changes by absay czech: 11 changes by JustImagine436 korean: 9 changes by telk5093 portuguese: 9 changes by azulcosta hindi: 28 changes by ritwikraghav14
2021-07-11Feature: join servers based on their invite codePatric Stout
This removes the need to know a server IP to join it. Invite codes are small (~7 characters) indentifiers for servers, which can be exchanged with other players to join the servers.
2021-07-11Change: groundwork to allow ServerAddress to use invite codesPatric Stout
Normally TCPConnecter will do a DNS resolving of the connection_string and connect to it. But for SERVER_ADDRESS_INVITE_CODE this is different: the Game Coordinator does the "resolving". This means we need to allow TCPConnecter to not setup a connection and allow it to be told when a connection has been setup by an external (to TCPConnecter) part of the code. We do this by telling the (active) socket for the connection. This means the rest of the code doesn't need to know the TCPConnecter is not doing a simple resolve+connect. The rest of the code only cares the connection is established; not how it was established.
2021-07-11Codechange: track servers with a ServerAddress instead of a NetworkAddressPatric Stout
This allows future extensions to have different ways of referencing a server, instead of forcing to use IP:port.
2021-07-11Feature: raise the maximum NewGRF limit to 255Patric Stout
2021-07-11Fix a4987233: NewGRFs could no longer be loaded from the NewGRF folder.Patric Stout
This statement was removed by accident, as it felt it could be removed. But it is used to know if the NewGRF is from the baseset folder or from the NewGRF folder.
2021-07-11Remove: arbitrary limit on number of statically loaded NewGRFs (#9431)rubidium42
2021-07-11Fix: ensure no more than the allowed number of NewGRFs are loaded from the ↵Rubidium
configuration
2021-07-10Feature: allow setting (game) coordinator and content server connection ↵Rubidium
strings using environment variables OTTD_COORDINATOR_CS for the game coordinator defaults to coordinator.openttd.org:3976 OTTD_CONTENT_SERVER_CS for the content server defaults to content.openttd.org:3978 OTTD_CONTENT_MIRROR_CS for the content mirror server defaults to binaries.openttd.org:80
2021-07-10Codechange: use the C++ std::getenv over the POSIX/C getenvRubidium
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-10Update: Translations from eintstranslators
spanish (mexican): 74 changes by absay vietnamese: 62 changes by KhoiCanDev
2021-07-10Cleanup: remove unused optional ctor parameter for NetworkGameListPatric Stout
2021-07-10Remove: unused UDP protocol partsPatric Stout
2021-07-10Remove: old server listing via Master ServerPatric Stout
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-10Remove: old server announcement to Master ServerPatric Stout
As we now use the Game Coordinator for announcements, there is no longer a need to use the Master Server for this.
2021-07-10Add: use Game Coordinator to get latest public server listingPatric Stout