Commit Graph

39339 Commits (168dc4678d1473a8b664dcb0d3317c3a446235b1)

Author SHA1 Message Date
SamuXarick 6ce74b2a1b Fix: reduce cost of building canals over objects on sea
It is not like we will drain the sea first, to put water back in it after.
Besides, the cost for draining the sea isn't calculated for all other cases either.
3 years ago
Bernard Teo 20717ededf Feature: Button to open order window from VL_SHARED_ORDERS window 3 years ago
Bernard Teo 6a6dbbaad2 Feature: Ctrl-Clicking GB_SHARED_ORDERS vehicle list opens order window 3 years ago
Jonathan G Rennison 2bd535e834 Merge branch 'master' into jgrpp-beta
# Conflicts:
#	src/engine_base.h
#	src/gfxinit.cpp
#	src/graph_gui.cpp
#	src/lang/brazilian_portuguese.txt
#	src/lang/dutch.txt
#	src/lang/french.txt
#	src/lang/korean.txt
#	src/lang/norwegian_bokmal.txt
#	src/lang/portuguese.txt
#	src/lang/russian.txt
#	src/lang/spanish.txt
#	src/lang/spanish_MX.txt
#	src/network/core/address.cpp
#	src/network/core/game_info.h
#	src/network/core/os_abstraction.h
#	src/network/core/udp.cpp
#	src/network/network_client.cpp
#	src/network/network_client.h
#	src/network/network_internal.h
#	src/newgrf_engine.cpp
#	src/settings_gui.cpp
#	src/station_cmd.cpp
#	src/string_func.h
#	src/town_gui.cpp
#	src/video/video_driver.cpp
#	src/widget_type.h
3 years ago
Jonathan G Rennison 7e39d3f24a Support sending extended game info in response to PACKET_CLIENT_GAME_INFO 3 years ago
Jonathan G Rennison 8a0821c96e Merge branch 'master' into jgrpp-beta
# Conflicts:
#	src/network/core/game_info.h
#	src/network/core/udp.cpp
#	src/network/core/udp.h
#	src/network/network.cpp
#	src/network/network_client.cpp
#	src/network/network_client.h
#	src/network/network_internal.h
#	src/network/network_udp.cpp
3 years ago
translators ff6c934916 Update: Translations from eints
english (us): 4 changes by 2TallTyler
greek: 10 changes by dionisis84
german: 4 changes by MagnumSociety
dutch: 4 changes by Afoklala
spanish: 66 changes by MontyMontana
polish: 10 changes by pAter-exe
3 years ago
Jonathan G Rennison 0dcb04f450 Fix #320: Misspelling of SLXI chunk name 3 years ago
translators a53c4f0fb7 Update: Translations from eints
japanese: 30 changes by scabtert
russian: 4 changes by Ln-Wolf
finnish: 4 changes by hpiirai
catalan: 4 changes by J0anJosep
portuguese: 4 changes by azulcosta
3 years ago
translators 19a6513607 Update: Translations from eints 3 years ago
Jonathan G Rennison e7480620af Include liblzma error code in message 3 years ago
SamuXarick a57c2b073a
Feature: Display icon/text whether vehicle is lost in vehicle (list) window (#9543) 3 years ago
SamuXarick 37de878129
Feature: [AI/GS] Missing water related functions and objects (#8390) 3 years ago
translators c6035158ca Update: Translations from eints
german: 5 changes by Wuzzy2
3 years ago
Jonathan G Rennison 54e2d1b851 Log SLXI version label at level sl=2 3 years ago
translators c8ab5e58f9 Update: Translations from eints
portuguese: 6 changes by azulcosta
3 years ago
Jonathan G Rennison 7018babeac Reverse behind signal pathfinding now takes into account train length
This is to avoid pathfinding into a reversing track section which
is too short
3 years ago
Charles Pigott 29df09e917 Fix #9527: Crash when trying to place multitile objects at map edge
(cherry picked from commit a2d93441fab53077c832247f09263762c38c8e90)
3 years ago
Jonathan G Rennison aff4dc74d0 Avoid premature reservations with reverse at waypoint orders with wait time 3 years ago
translators d757aa7591 Update: Translations from eints
swedish: 5 changes by joeax910
finnish: 5 changes by hpiirai
latvian: 67 changes by lexuslatvia
3 years ago
Niels Martin Hansen 6bd3106681 Feature: Multiple rotating views on title screen 3 years ago
Jonathan G Rennison 5be32627b7 Fix extra aspects variable not being set for newly generated maps 3 years ago
Tyler Trahan 9d18a8869f Fix #8603: Don't give focus to text filter when opening Object GUI (#9547)
(cherry picked from commit 66620b497b)
3 years ago
Vít Šefl 710b758b81
Fix #9241: Grove and forest tree brushes also create rainforests (#9542) 3 years ago
TELK efec8cb02c Update: Korean translation up to 0748d54 3 years ago
TELK b2245806ae Update: Korean translation up to ebab945 3 years ago
TELK 8686eaacb7 Update: Korean translation up to b8d5113c5a 3 years ago
TELK b016811070 Update: Korean translation up to e76c5dfda7 3 years ago
Jonathan G Rennison 0748d540e8 Implement improved breakdown speed reductions for ships 3 years ago
Charles Pigott d4588df9f9 Fix #9527: Crash when trying to place multitile objects at map edge 3 years ago
Charles Pigott 16dca0d7bc Codechange: Object non-zero dimension check was not logically correct 3 years ago
translators ceaff9c9f2 Update: Translations from eints
korean: 6 changes by telk5093
3 years ago
Michael Lutz ee57afc285 Fix #9463: [Win32] Try to work around XAudio2 crashes by catching SEH exceptions.
If an exceptions is thrown during context creation, just declare the XAudio
driver as unusable. The driver logic will try to find an alternative for us.
3 years ago
Patric Stout a8641ea44a
Add: support filtering content entries for patchpacks (#9541)
This changes nothing for us, but allows patchpacks to add the
right pieces of code to start filtering content entries on patchpack
only entries.
3 years ago
Jonathan G Rennison 282f5f22e3 Partially revert "Update: Translations from eints"
This partially reverts b721787c7f

Unremove string: STR_NETWORK_COMPANY_LIST_SPECTATE
3 years ago
dP 40a6181a16 Change: Return 'New company/Spectate' option to company toolbar menu
(cherry picked from commit dc2bbfd3f4c78ea14631c2005544bb6898faf1b0)

Include spectate option part
3 years ago
Jonathan G Rennison b67efb7e38 Add support for retrieving JGRPP-only content from content service
See: https://github.com/OpenTTD/OpenTTD/pull/9541, 84cba1b8
3 years ago
Patric Stout 84cba1b842 Add: support filtering content entries for patchpacks
This changes nothing for us, but allows patchpacks to add the
right pieces of code to start filtering content entries on patchpack
only entries.

(cherry picked from commit 77860bb61e61307e4d9cf869ba62be8ca4d9d9b3)
3 years ago
translators 9e85f40733 Update: Translations from eints
spanish (mexican): 4 changes by absay
english (us): 6 changes by 2TallTyler
russian: 6 changes by Ln-Wolf
catalan: 6 changes by J0anJosep
dutch: 6 changes by Afoklala
3 years ago
Jonathan G Rennison 3c55250cd6 Fix last station visited not being set when reservation ends at target
Long reserve and subsequent routing restrictions immediately beyond
the reservation were evaluated without the last station visited being
updated to reflect that the target station was already reached.
3 years ago
translators 7107e63f8c Update: Translations from eints
korean: 6 changes by telk5093
hungarian: 34 changes by pnpBrumi
indonesian: 16 changes by dimaspaf14
latvian: 94 changes by lexuslatvia
polish: 2 changes by pAter-exe
3 years ago
Tyler Trahan 66620b497b
Fix #8603: Don't give focus to text filter when opening Object GUI (#9547) 3 years ago
Jonathan G Rennison 6e3d023e69
Fix #9535: Maintain a reverse dependency map of network content (#9538)
Fixes performance issues with dependency lookup when retrieving
content list from the content server.
3 years ago
Jonathan G Rennison afd66c1631 Show linear scaling value in settings window for cargo scaling settings 3 years ago
Jonathan G Rennison a0cb27b73c Add a release version string to rev.cpp 3 years ago
Tyler Trahan 7469f00c5b
Feature: Hide block signals in GUI by default (#8688) 3 years ago
Patric Stout f656b0ae96
Fix: use-after-free after ClientNetworkCoordinatorSocketHandler::CloseAllConnections() (#9534)
The function clears all stun-handlers. This causes all of those
objects to be destroyed.
A handler can have a pending connecter, which was only killed in
case CloseConnection() was called. This is never the case when
the object is destroyed. In result, the connecter could finish
and cause a use-after-free by calling into the (now deleted)
handler.
3 years ago
Jonathan G Rennison fda17d25de Send back a message for rcon and settings_access failures 3 years ago
Jonathan G Rennison 2ada5767df Realistic braking: Increase value of RBC_BRAKE_FORCE_PER_LENGTH 3 years ago
Jonathan G Rennison 964ea7b910 Debug: Show realistic braking approach speeds in debug window 3 years ago
Jonathan G Rennison ebab945838 Network content: Maintain a reverse dependency map
Fixes performance issues with dependency lookup

See: https://github.com/OpenTTD/OpenTTD/issues/9535
3 years ago
Jonathan G Rennison 5d351a14d2 Add new signal type: no-entry signal
This is only passable in one direction, but does not have a signal
or show an aspect in the opposite direction

Add a setting for whether this is shown in the signal UI.
Off by default.
3 years ago
Jonathan G Rennison b3aa59c85d Fix using wrong flag for railtype restricted signal custom sprite enabled 3 years ago
Patric Stout 9c74dc2468
Codechange: validate that all STR_NNN strings are defined and used (#9518) 3 years ago
Jonathan G Rennison 6af182c3ca Add sort by number of vehicles calling to station list window 3 years ago
Patric Stout 306726827d Fix a2051bad: SendCmdNames only sent one name per packet (#9528)
(cherry picked from commit 63116bd59f)
3 years ago
Patric Stout 91f2710783 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.

(cherry picked from commit f87fe395a7)
3 years ago
Rubidium 92559e6f3a Fix #9388: thread unsafe use of NetworkAdminConsole/IConsolePrint 3 years ago
Patric Stout 63116bd59f
Fix a2051bad: SendCmdNames only sent one name per packet (#9528) 3 years ago
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
Jonathan G Rennison bbe079c906 Fix reverse behind signal pathfinding when there is no dead-end
This could cause issues if all the paths behind the reverse signal
converge with paths not via the reverse signal with a lower cost
3 years ago
Jonathan G Rennison ae6b9f6e9c Fix ESRB_REVERSE not being include in YAPF ESRB dumper 3 years ago
Jonathan G Rennison f8e30e807d Fix ProcessOrders not always being called after leaving a waiting order
Fixes conditional order loop on leaving a depot
3 years ago
Jonathan G Rennison 58a290d8e9 Include version label in output of -q switch 3 years ago
Jonathan G Rennison b08cc3cf38 Reduce screen re-draw area for tunnel/bridge end signal updates 3 years ago
Jonathan G Rennison f6c2a81f72 Reduce screen re-draw area for bridge middle signal updates 3 years ago
Jonathan G Rennison 50f1c25ff5 Fix redrawing of bridge signals more than 2 middle signals need updating
On exit signal aspect change, with 5+ aspect signalling
3 years ago
Jonathan G Rennison 1af37ef845 Fix ship speed changes not updating image as per VCF_REDRAW_ON_SPEED_CHANGE 3 years ago
Jonathan G Rennison 4cf6b1e923 Fix ViewportAddVehiclesIntl using wrong image rotation for ships
When rotating in place
3 years ago
translators 80231975e5 Update: Translations from eints
greek: 121 changes by dionisis84
3 years ago
Jonathan G Rennison fea967bbbf Prevent train reversing when wholly inside a train depot
See: #316, https://github.com/OpenTTD/OpenTTD/issues/9520
3 years ago
Jonathan G Rennison 16f2ef227b Store tunnel/bridge signal spacing on tile, adjust spacing to fit length 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
Jonathan G Rennison bfef89344d Show depot reservation state in railtype debug window 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
Jonathan G Rennison bcffd6157a Fix #314: Typo in find_non_realistic_braking_signal help text 3 years ago
Jonathan G Rennison b2ef6c0de8 Add implementation of multi-aspect signalling and GRF support
Requires realistic braking

See: #247
3 years ago
Jonathan G Rennison 6546f6deba Fix tunnel exit signal not being set to red when train exited 3 years ago
Jonathan G Rennison dc4b7e0558 Add helper function to set tunnel/bridge entrance signal green 3 years ago
Jonathan G Rennison 55c4fe7d45 Add helper functions to get tunnel/bridge entrance/exit trackdirs 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
Jonathan G Rennison 93c23b4096 Fix signals on dual railtype tiles using wrong per-railtype custom sprites 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
Jonathan G Rennison 13603cb8e1 Block signals into blocks with junctions now default to red with realistic braking 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
Jonathan G Rennison a026d82c6b Allow cloning trains directly from the template train list
See: #312
3 years ago
Jonathan G Rennison a4c73e71c3 Fix vertical scrollbar extents in template window info sections 3 years ago
Jonathan G Rennison 5afa1b93eb Show buy cost and running cost in template windows
See: #312
3 years ago
Jonathan G Rennison d67f63a04e Remove unused template replacement value strings 3 years ago
Jonathan G Rennison 40599c1ad4 Add hotkey support to the signal build toolbar 3 years ago
Jonathan G Rennison 072e3ff5fc Show refitted capacity when adding template vehicles with cargo filter
See: #312
3 years ago
Jonathan G Rennison 6944e689a0 Fix #313: Make remove and routing restriction buttons mutually exclusive 3 years ago
Jonathan G Rennison f1fde8c684 Enable recolouring of custom signal graphics (global and per-railtype) 3 years ago
Jonathan G Rennison 322a046f49 NewGRF: Allow using Action 2/3 for custom signal sprites
This is mostly the same format as the railtype custom signal mechanism
3 years ago
Jonathan G Rennison a6b0d0cde4 Fix signals on bridge middle parts not using per-railtype custom signals 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
Jonathan G Rennison 2283ce3a2b ATC: Reduce lower limit of nominal look-ahead distance for speed timers
See: #310
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
Jonathan G Rennison b8d5113c5a Tracerestrict: Add slot action mode, try to acquire (only on reserve) 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
Jonathan G Rennison 8113b4bdbf Fix build issues on MinGW 3 years ago
translators b681935fc8 Update: Translations from eints
norwegian (bokmal): 28 changes by Anolitt
3 years ago
Rubidium 9f4a71335d 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).

(cherry picked from commit 1c0c4637d2)
3 years ago
Rubidium 230866ca3e 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.

(cherry picked from commit d83647f9a7)
3 years ago
Jonathan G Rennison e76c5dfda7 Revert "Temporarily mark dual pane train purchase window as experimental"
This reverts commit f9bb004b05.
3 years ago
Jonathan G Rennison d2dc9fe3d4 Use ID as sort tie-breaker in TimetableProgress comparison 3 years ago
Jonathan G Rennison 4d99c501b3 Add defensive checks to DrawVehiclePurchaseInfo 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
dP 9176fe5f64 Fix: Use of unstable sort when distributing cargo production can cause desyncs
(cherry picked from commit 4ed694fe98b146d984826d06b96e0c11045239bc)

See: https://github.com/OpenTTD/OpenTTD/pull/9460
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
Jonathan G Rennison 9003ef7d11 When reversing train, ensure that loading is aborted if necessary 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
Jonathan G Rennison 2135aa2ae8 Fix false positive desync log message for powered free wagon chains 3 years ago
Rubidium 1c8f4bfaef Fix #9388: thread unsafe use of NetworkAdminConsole/IConsolePrint
(cherry picked from commit d7a0e80fc18b689455eaca09883fccbcc722d7e3)

# Conflicts:
#	src/debug.cpp
#	src/debug.h
#	src/table/settings/gui_settings.ini

See: https://github.com/OpenTTD/OpenTTD/pull/9456
3 years ago
Jonathan G Rennison 63d8f3bdd7 Revert "Fix thread safety issues in network admin socket console logging"
This reverts commit ad15d4fd8f.
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
Jonathan G Rennison 71dfd2900a Add depot order flag for specific depot
Use upper half of order flags for extra depot flags

See: #302
3 years ago
Jonathan G Rennison fd0cb63963 Fix send vehicle to specific depot allowing incompatible rail types 3 years ago
Jonathan G Rennison 382955396f Fix send vehicle to specific depot allowing incompatible road/tram types
See: #302
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
Jonathan G Rennison 6a009686c9 Fix #299: Add estimated max speed (full) to template windows 3 years ago
Jonathan G Rennison 502af119e5 Rename and move train max speed estimation functions 3 years ago
Jonathan G Rennison d01cfa8c08 Update template vehicle properties when freight multiplier or accel model changed 3 years ago
Jonathan G Rennison 8c9dd75b5b Fix #301: Network server local company change on load did not update network state 3 years ago
Jonathan G Rennison 2fc35aed2f Fix #300: Toggling auto separation does not redraw sched dispatch enable button 3 years ago
Jonathan G Rennison 4174fe727c Add NewGRF feature: Extra station name strings
These are used when all the default names have been used up,
instead of "Town Station #NNN".
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
Loïc Guilloux 460991ecf4
Feature: Persistant rotation of numbered auto/netsave after restart (#9397)
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.
3 years ago
glx22 16abdd5254 Change: [Win32] Set the console codepage to UTF-8 3 years ago
glx22 afea5e85ae Fix 433f74e: GetString() requires a language pack 3 years ago
translators 96add9c36d Update: Translations from eints
spanish (mexican): 1 change by absay
dutch: 15 changes by Afoklala
portuguese: 1 change by azulcosta
3 years ago
Patric Stout 29cceb59a5 Doc: explain in a bit more detail how we implemented STUN 3 years ago
Patric Stout 8adade26ed Feature: allow the use of STUN to connect client and server together
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.
3 years ago
Patric Stout 55eed246b8 Codechange: allow Connect() to bind to a local address 3 years ago
translators 695e1493c9 Update: Translations from eints
swedish: 14 changes by joeax910
3 years ago
Patric Stout c921f6d817
Add: inform clients what game-script a server is running (#9441)
Co-authored-by: The Dude <thedude@novapolis.net>
3 years ago
translators 333cba6a61 Update: Translations from eints
spanish (mexican): 1 change by absay
finnish: 14 changes by hpiirai
3 years ago
translators e9b157f1f5 Update: Translations from eints
korean: 1 change by telk5093
portuguese: 1 change by azulcosta
3 years ago
Jonathan G Rennison d23720cc60 Fix server crash when client joined during threaded (auto)save 3 years ago
translators 80f4e42627 Update: Translations from eints
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
3 years ago
Jonathan G Rennison 2b4741b97d Fix station ratings tooltip in right click mode
See: #298
3 years ago
Jonathan G Rennison f9f83df92d Change dedicated debug level to net=3 3 years ago
Jonathan G Rennison cb421294bb Network: Log sent packets at net=5 3 years ago
Rubidium c71f06e59b Feature: parse the console settings the same way as config settings
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`.
3 years ago
Patric Stout dd7f69be6e
Fix: "Search LAN games" used the socket after it was closed (#9437)
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.
3 years ago
Rubidium 178ea3196b Remove: includes to network/core/config.h from headers when only three cpp files need it 3 years ago
Patric Stout b6a116a247
Add: allow setting your server visibility to "invite-only" (#9434)
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.
3 years ago
translators 8bb9c3f646 Update: Translations from eints
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
3 years ago
Patric Stout e4d216e44b Feature: join servers based on their invite code
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.
3 years ago
Patric Stout 1baec41542 Change: groundwork to allow ServerAddress to use invite codes
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.
3 years ago
Patric Stout cee8174d02 Codechange: track servers with a ServerAddress instead of a NetworkAddress
This allows future extensions to have different ways of referencing
a server, instead of forcing to use IP:port.
3 years ago
Patric Stout f4dd2d88c7 Feature: raise the maximum NewGRF limit to 255 3 years ago
Patric Stout 6f0c6fb2ae Fix a4987233: NewGRFs could no longer be loaded from the NewGRF folder.
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.
3 years ago
rubidium42 a498723345
Remove: arbitrary limit on number of statically loaded NewGRFs (#9431) 3 years ago
Rubidium f6955a304c Fix: ensure no more than the allowed number of NewGRFs are loaded from the configuration 3 years ago
Rubidium e99134654b Feature: allow setting (game) coordinator and content server connection 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
3 years ago
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.
3 years ago
translators d158eba72c Update: Translations from eints
spanish (mexican): 74 changes by absay
vietnamese: 62 changes by KhoiCanDev
3 years ago
Patric Stout de7ab2eb1c Cleanup: remove unused optional ctor parameter for NetworkGameList 3 years ago
Patric Stout 6212d0a8da Remove: unused UDP protocol parts 3 years ago
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!
3 years ago
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.
3 years ago
Patric Stout aa93d76223 Add: use Game Coordinator to get latest public server listing 3 years ago
Patric Stout b1280fd17e Add: use Game Coordinator to annouce public servers 3 years ago
Patric Stout e1e2212e0e Codechange: track version of network servers to prune once out-of-date 3 years ago
Patric Stout cbaac5609f Codechange: use UpdateNetworkGameWindow() over manually marking window dirty 3 years ago
Loïc Guilloux ddb6024bc6
Codechange: Don't explicitly unset _generating_world outside of genworld.cpp (#9418) 3 years ago