Commit Graph

19504 Commits

Author SHA1 Message Date
translators
9b1651a267 Update: Translations from eints
swedish: 8 changes by Abbin44
norwegian (bokmal): 14 changes by Anolitt
chinese (traditional): 6 changes by SiderealArt
slovenian: 4 changes by Matej1245
vietnamese: 14 changes by KhoiCanDev
luxembourgish: 24 changes by phreeze83
hungarian: 1 change by baliball
serbian: 29 changes by nkrs
german: 1 change by SecretIdetity
russian: 2 changes by SecretIdetity, 1 change by Ln-Wolf
catalan: 1 change by J0anJosep
turkish: 1 change by ahmetlii
french: 1 change by glx22
2021-09-25 18:46:38 +00:00
Patric Stout
394c749b6b
Change: Heading for 13 now (#9573) 2021-09-25 13:48:03 +02:00
dP
39662aabef
Add: allow gamescripts to build neutral objects (#9568) 2021-09-25 13:39:40 +02:00
translators
66c7d9b8ed Update: Translations from eints
dutch: 4 changes by Afoklala
spanish: 4 changes by MontyMontana
polish: 9 changes by pAter-exe
2021-09-24 18:48:15 +00:00
Tyler Trahan
4aa63ce8f3
Fix: Changing raw industry funding method redraws GUI (#9572) 2021-09-23 21:07:54 +02:00
Danny de Bruijne
753b1d7e15 Feature: Add selected toolbar buttons to MacBook Pro Touch Bar 2021-09-23 21:03:00 +02:00
translators
16aac9c341 Update: Translations from eints
english (us): 1 change by 2TallTyler
2021-09-23 18:48:02 +00:00
translators
909a83758c Update: Translations from eints
spanish (mexican): 8 changes by absay
portuguese (brazilian): 14 changes by Vimerum
2021-09-22 18:47:46 +00:00
translators
7c6b39e189 Update: Translations from eints
korean: 4 changes by telk5093
greek: 1 change by dionisis84
russian: 2 changes by Ln-Wolf
finnish: 1 change by hpiirai
portuguese: 1 change by azulcosta
2021-09-21 18:50:15 +00:00
translators
b5e8b36b5b Update: Translations from eints
chinese (traditional): 19 changes by benny30111
german: 3 changes by Wuzzy2
catalan: 3 changes by J0anJosep
2021-09-20 18:47:59 +00:00
SamuXarick
45edd9f326
Fix: Incorrect error messages on placing water on scenario editor (#9560)
Additionally changes the behaviour of placing sea on sea/river/canal and placing canal/river on canal to (over)build, instead of disallowing it
2021-09-19 23:14:07 +02:00
dP
31cf9e888b
Add: [Network] external chat messages for remote admins (#9563) 2021-09-19 23:09:06 +02:00
Patric Stout
d9f8ed7bdf
Add: [Network] On join, log the ClientID + IP + Name clearly (#9558)
Additionally, reword the disconnect to match connect / join messages.

Co-authored-by: Berbe <4251220+Berbe@users.noreply.github.com>
2021-09-19 21:52:46 +01:00
PeterN
7e70ead396
Fix #9562: Handle case of invalid action2 with zero results. (#9564) 2021-09-19 21:52:08 +01:00
Patric Stout
b8f9e24189
Fix #9484: update locale currencies settings mapping (#9559) 2021-09-19 22:44:28 +02:00
translators
0babadfbe4 Update: Translations from eints
english (us): 3 changes by 2TallTyler
greek: 3 changes by dionisis84
finnish: 3 changes by hpiirai
french: 3 changes by glx22
portuguese: 4 changes by azulcosta
2021-09-19 18:47:36 +00:00
translators
28d9181d5d Update: Translations from eints
korean: 4 changes by telk5093
finnish: 4 changes by hpiirai
irish: 151 changes by temuchie
french: 11 changes by glx22
2021-09-18 18:46:53 +00:00
Patric Stout
cd03bac3dd
Fix: add back 'Spectate' option to company toolbar menu (#9556)
This was removed in ce7406f88b, but people used this to quickly
mark themselves as away.

Co-authored-by: dP <dp@dpointer.org>
2021-09-18 20:27:56 +02:00
Patric Stout
7acdaaaf2f
Fix: Prevent train reversing when wholly inside a train depot (#9557)
Co-authored-by: Jonathan G Rennison <j.g.rennison@gmail.com>
2021-09-18 15:56:23 +02:00
SamuXarick
18247bb3b8
Fix #9521: Don't load at just removed docks that were part of a multi-dock station (#9524) 2021-09-18 13:25:07 +02:00
SamuXarick
b335b0501c Fix: wrong error message when building canals over ship depots / locks
IsTileType() also considers ship depots and locks water. IsWaterTile() does the right thing.
2021-09-18 13:24:49 +02:00
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.
2021-09-18 13:24:49 +02:00
Bernard Teo
20717ededf Feature: Button to open order window from VL_SHARED_ORDERS window 2021-09-18 11:17:49 +02:00
Bernard Teo
6a6dbbaad2 Feature: Ctrl-Clicking GB_SHARED_ORDERS vehicle list opens order window 2021-09-18 11:17:49 +02:00
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
2021-09-17 18:45:40 +00:00
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
2021-09-16 18:47:49 +00:00
translators
19a6513607 Update: Translations from eints 2021-09-15 18:49:54 +00:00
SamuXarick
a57c2b073a
Feature: Display icon/text whether vehicle is lost in vehicle (list) window (#9543) 2021-09-14 22:10:00 +02:00
SamuXarick
37de878129
Feature: [AI/GS] Missing water related functions and objects (#8390) 2021-09-14 22:06:55 +02:00
translators
c6035158ca Update: Translations from eints
german: 5 changes by Wuzzy2
2021-09-14 18:47:07 +00:00
translators
c8ab5e58f9 Update: Translations from eints
portuguese: 6 changes by azulcosta
2021-09-13 18:49:03 +00:00
translators
d757aa7591 Update: Translations from eints
swedish: 5 changes by joeax910
finnish: 5 changes by hpiirai
latvian: 67 changes by lexuslatvia
2021-09-12 18:48:50 +00:00
Niels Martin Hansen
6bd3106681 Feature: Multiple rotating views on title screen 2021-09-12 19:46:48 +02:00
Vít Šefl
710b758b81
Fix #9241: Grove and forest tree brushes also create rainforests (#9542) 2021-09-12 08:42:24 +02:00
Charles Pigott
d4588df9f9 Fix #9527: Crash when trying to place multitile objects at map edge 2021-09-11 23:10:50 +01:00
Charles Pigott
16dca0d7bc Codechange: Object non-zero dimension check was not logically correct 2021-09-11 23:10:50 +01:00
translators
ceaff9c9f2 Update: Translations from eints
korean: 6 changes by telk5093
2021-09-11 18:48:07 +00:00
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.
2021-09-11 15:42:34 +02:00
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.
2021-09-11 15:34:46 +02:00
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
2021-09-10 18:47:58 +00:00
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
2021-09-09 18:49:31 +00:00
Tyler Trahan
66620b497b
Fix #8603: Don't give focus to text filter when opening Object GUI (#9547) 2021-09-09 18:30:03 +02:00
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.
2021-09-09 18:06:00 +02:00
Tyler Trahan
7469f00c5b
Feature: Hide block signals in GUI by default (#8688) 2021-09-05 20:22:27 +02:00
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.
2021-09-05 18:17:39 +02:00
Patric Stout
9c74dc2468
Codechange: validate that all STR_NNN strings are defined and used (#9518) 2021-09-02 22:32:10 +02:00
Rubidium
92559e6f3a Fix #9388: thread unsafe use of NetworkAdminConsole/IConsolePrint 2021-09-01 22:40:44 +02:00
Patric Stout
63116bd59f
Fix a2051bad: SendCmdNames only sent one name per packet (#9528) 2021-08-31 21:40:38 +02:00
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.
2021-08-31 14:31:37 +02:00
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.
2021-08-31 09:57:44 +02:00
translators
219598a90b Update: Translations from eints
vietnamese: 6 changes by myquartz
2021-08-30 18:51:16 +00:00
translators
80231975e5 Update: Translations from eints
greek: 121 changes by dionisis84
2021-08-29 18:48:25 +00:00
Patric Stout
d8e870c50c
Fix: when DNS didn't resolve any IPs, the debug message was misleading (#9519) 2021-08-28 21:19:53 +02:00
Patric Stout
13b53e1290
Codechange: remove unused strings (#9516) 2021-08-28 21:09:07 +02:00
translators
20ff6fd3f1 Update: Translations from eints
arabic (egypt): 21 changes by AviationGamerX
finnish: 2 changes by hpiirai
turkish: 59 changes by ahmetlii
2021-08-28 18:47:10 +00:00
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.
2021-08-28 17:08:01 +02:00
Loïc Guilloux
8d2162ba2d
Fix b6a116a: convert server_advertise to server_game_type in config file (#9515) 2021-08-28 14:41:07 +02:00
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
2021-08-27 18:48:25 +00:00
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
2021-08-26 18:50:32 +00:00
translators
e9f3ddb6ba Update: Translations from eints
greek: 28 changes by dionisis84
portuguese: 2 changes by azulcosta
2021-08-25 18:49:22 +00:00
translators
ef3c4a8737 Update: Translations from eints
greek: 17 changes by dionisis84
catalan: 4 changes by J0anJosep
portuguese (brazilian): 2 changes by Vimerum
2021-08-24 18:48:45 +00:00
translators
52d57b17b0 Update: Translations from eints
swedish: 8 changes by joeax910
2021-08-23 18:50:19 +00:00
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.
2021-08-23 20:16:22 +02:00
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.
2021-08-23 19:38:02 +02:00
Patric Stout
b2f0491a90
Fix #9501: [Network] crash when more than one game-info query was pending (#9502) 2021-08-23 19:37:51 +02:00
Patric Stout
47ce306085
Fix c4b700f1: remove left-over debug statement (#9510) 2021-08-23 14:05:37 +02:00
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.
2021-08-23 12:41:20 +02:00
translators
f939f48cd2 Update: Translations from eints
indonesian: 32 changes by dimaspaf14
russian: 2 changes by Ln-Wolf
2021-08-21 18:48:45 +00:00
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.
2021-08-21 11:56:29 +02:00
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.
2021-08-20 22:37:03 +02:00
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
2021-08-20 18:49:51 +00:00
translators
07f98f9234 Update: Translations from eints
italian: 13 changes by CoderLel
russian: 1 change by Ln-Wolf
french: 2 changes by glx22
2021-08-19 18:46:20 +00:00
Michael Lutz
fff09a4af2 Fix d9c1d18f2: Wrong format string for console disconnect message. 2021-08-19 19:56:00 +02:00
translators
a7fe82c646 Update: Translations from eints
finnish: 3 changes by hpiirai
portuguese: 2 changes by azulcosta
2021-08-18 18:53:42 +00:00
Joan Josep
cc38a42b07
Fix 659989af45: Set appropriate town window dirty when building/removing airports. (#9497) 2021-08-18 14:33:32 +02:00
translators
335a2392e7 Update: Translations from eints
finnish: 2 changes by hpiirai
portuguese: 1 change by azulcosta
2021-08-18 10:13:13 +00:00
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.
2021-08-18 12:06:14 +02:00
Patric Stout
996ae28989
Fix #9491: reword "no connection" error message (#9495) 2021-08-18 12:00:36 +02:00
Patric Stout
5da60cef46
Fix: typo in the word "spectator" (tnx Heiki) (#9496) 2021-08-18 12:00:17 +02:00
Nicolas Chappe
de28817d9f Fix 977604ef: [Linkgraph] Add a special case for unknown travel times on link update 2021-08-18 01:48:11 +02:00
translators
325d031082 Update: Translations from eints
catalan: 2 changes by J0anJosep
french: 1 change by glx22
2021-08-17 18:54:07 +00:00
Patric Stout
5c776f21e7
Fix 6acf204d: crash when showing coordinator-error-messages (#9488) 2021-08-17 19:42:46 +02:00
translators
04e9df47d9 Update: Translations from eints
russian: 1 change by Ln-Wolf
2021-08-17 13:47:15 +00:00
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.
2021-08-17 14:57:59 +02:00
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.
2021-08-17 13:35:29 +02:00
translators
b531a0c1cf Update: Translations from eints
chinese (simplified): 1 change by goodspeed34
2021-08-16 18:55:59 +00:00
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.
2021-08-16 11:18:47 +02:00
dP
2e6a77a78a
Fix: connecting with the same name thrice hangs the server (#9485) 2021-08-16 11:09:54 +02:00
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
2021-08-15 18:48:50 +00:00
translators
cb9a2dec0d Update: Translations from eints
portuguese: 1 change by azulcosta
2021-08-15 11:06:15 +00:00
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.
2021-08-15 12:28:51 +02:00
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)."
2021-08-15 12:14:53 +02:00
Vít Šefl
2183fd4dab
Feature: [NewGRF] Maximum curve speed modifier for rail vehicles (#9346) 2021-08-15 11:17:05 +02:00
Patric Stout
579f393374
Add: open Online Players GUI on starting/joining a server (#9479) 2021-08-15 00:17:10 +02:00
Patric Stout
1ef4d3cf19
Remove: COMPANY_INFO packets and related code (#9475) 2021-08-14 23:24:02 +02:00
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.
2021-08-14 23:07:18 +02:00
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.
2021-08-14 21:00:30 +02:00
translators
c3d43d7b1c Update: Translations from eints 2021-08-14 18:48:37 +00:00
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.
2021-08-14 10:19:47 +02:00
Patric Stout
508e465b59
Add: synchronize server name to clients and display in Online Players GUI (#9472) 2021-08-14 10:19:40 +02:00
Patric Stout
65b8614d26
Add: mention you are a spectator in the status bar (if you are, ofc) (#9471) 2021-08-14 10:19:32 +02:00
SamuXarick
120d216b0b
Add: [AI] Get the number of vehicles in a given group (#9462) 2021-08-12 21:29:03 +02:00
SamuXarick
26f7f592cd
Fix #8316: Make sort industries by production and transported with a cargo filter possible (#8468) 2021-08-11 19:25:59 +02:00
SamuXarick
76b8343777
Fix #9392: Return a valid value with GetBuildWithRefitCapacity when AIs are maxed out in vehicles (#9393) 2021-08-11 19:21:34 +02:00
Michael Lutz
b14681891d Fix 8706dcd9: [Script] Byte-swap grfids to match normal expectations. 2021-08-10 21:35:17 +02:00
translators
580dd118cb Update: Translations from eints 2021-08-10 18:56:17 +00:00
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.
2021-08-10 20:03:13 +02:00
Loïc Guilloux
8a083cd7f8
Fix 68f2213: Don't use GetPoolSize() for end of pool iterator (#9461) 2021-08-10 19:03:15 +02:00
Loïc Guilloux
4eb368c786
Fix 14f197c: [Script] int64 values don't fit into int (#9465) 2021-08-10 19:00:54 +02:00
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.
2021-08-09 23:34:50 +02:00
translators
d58772ecda Update: Translations from eints
vietnamese: 28 changes by KhoiCanDev
2021-08-07 18:49:22 +00:00
translators
2dd46b964a Update: Translations from eints
latvian: 13 changes by osprinkis
2021-08-05 18:56:58 +00:00
translators
b681935fc8 Update: Translations from eints
norwegian (bokmal): 28 changes by Anolitt
2021-08-04 19:00:04 +00:00
translators
1838726985 Update: Translations from eints
french: 12 changes by glx22
2021-08-02 18:51:35 +00:00
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.
2021-08-02 20:44:53 +02:00
dP
c1d79398d5 Fix: Use of unstable sort when distributing cargo production can cause desyncs 2021-08-01 07:43:49 +02:00
translators
6fce05689c Update: Translations from eints
portuguese (brazilian): 6 changes by Vimerum
2021-07-31 18:51:38 +00:00
translators
8380ff8dd0 Update: Translations from eints
dutch: 13 changes by Afoklala
2021-07-30 18:53:15 +00:00
translators
9df60a2759 Update: Translations from eints
slovak: 39 changes by ApplePie420
2021-07-29 18:53:22 +00:00
translators
dea999566d Update: Translations from eints
finnish: 14 changes by hpiirai
2021-07-28 18:52:35 +00:00
translators
476c039332 Update: Translations from eints
german: 10 changes by Wuzzy2
2021-07-27 18:51:08 +00:00
translators
d17e4f7d29 Update: Translations from eints
german: 4 changes by danidoedel
romanian: 23 changes by ALEX11BR
portuguese (brazilian): 6 changes by jpsl00
2021-07-26 18:51:36 +00:00
translators
7409e6fea1 Update: Translations from eints
romanian: 17 changes by ALEX11BR
2021-07-25 18:50:47 +00:00
translators
cab212258f Update: Translations from eints
swedish: 9 changes by joeax910
russian: 1 change by Ln-Wolf
2021-07-24 18:52:09 +00:00
translators
333de9f15d Update: Translations from eints
russian: 9 changes by Ln-Wolf
catalan: 25 changes by J0anJosep
2021-07-23 18:52:46 +00:00
translators
72737a91f3 Update: Translations from eints
spanish (mexican): 13 changes by absay
2021-07-22 18:53:58 +00:00
Rubidium
ba29edb0b3 Cleanup: remove some references to the old master-server 2021-07-21 22:28:51 +02:00
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.
2021-07-21 21:55:30 +02:00
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
2021-07-21 18:51:59 +00:00
Charles Pigott
6c33b4ed28
Fix #8335: Race condition in music mixer (#9450) 2021-07-21 10:32:33 +01:00
translators
dd54e4c835 Update: Translations from eints
swedish: 1 change by joeax910
romanian: 36 changes by ALEX11BR
2021-07-20 18:51:39 +00:00
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.
2021-07-20 19:57:23 +02:00
Patric Stout
8a36134003 Fix: [Network] rework when to close connections and inform Game Coordinator if needed 2021-07-20 19:57:23 +02:00
Charles Pigott
f1dfc2f482 Codechange: Make OverflowSafeInt constexpr 2021-07-20 10:42:03 +01:00
Charles Pigott
549a58731f Codechange: Remove (unused) ability to specify min/max of OverflowSafeInt 2021-07-20 10:42:03 +01:00
Charles Pigott
e6e2a67aa1 Codechange: Use GCC/clang builtins for overflow safety when supported 2021-07-20 10:42:03 +01:00
Charles Pigott
3d0d9edafd Fix: OverflowSafeInt could underflow
Notably, a company with an extremely negative amount of money would
suddenly become very rich
2021-07-20 10:42:03 +01:00
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.
2021-07-20 10:42:03 +01:00
Loïc Guilloux
9b0bb21f3b
Fix 57734fd: Don't enable rename button for network clients in build vehicle window (#9452) 2021-07-19 22:38:36 +02:00
translators
d1cf56609d Update: Translations from eints
german: 1 change by danidoedel
2021-07-19 18:53:13 +00:00
Charles Pigott
1e529e1632
Fix: [Fluidsynth] Crash when debug output enabled (#9446) 2021-07-19 10:36:35 +01:00
translators
9421cb1e2c Update: Translations from eints
estonian: 1 change by siimsoni
russian: 20 changes by Ln-Wolf
2021-07-18 18:50:19 +00:00
Rubidium
386ef4dac3 Feature: [Game Coordinator] Send NewGRF names to the client 2021-07-18 19:36:38 +02:00
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.
2021-07-18 19:36:38 +02:00
rubidium42
5dd524139f Fix c921f6d: [Network] Documentation of Game Info packet was not updated 2021-07-18 11:42:25 +02:00
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.
2021-07-18 11:42:25 +02:00
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
2021-07-17 18:50:07 +00:00
Patric Stout
ab601115a9
Fix 75b6051b: removing items from the ini could leave the group in a bad state (#9445) 2021-07-17 17:26:50 +02:00
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.
2021-07-17 12:48:35 +02:00
glx22
16abdd5254 Change: [Win32] Set the console codepage to UTF-8 2021-07-16 23:01:08 +02:00
glx22
afea5e85ae Fix 433f74e: GetString() requires a language pack 2021-07-16 23:01:08 +02:00
translators
96add9c36d Update: Translations from eints
spanish (mexican): 1 change by absay
dutch: 15 changes by Afoklala
portuguese: 1 change by azulcosta
2021-07-16 18:51:17 +00:00
Patric Stout
29cceb59a5 Doc: explain in a bit more detail how we implemented STUN 2021-07-16 19:50:29 +02:00
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.
2021-07-16 19:50:29 +02:00
Patric Stout
55eed246b8 Codechange: allow Connect() to bind to a local address 2021-07-16 19:50:29 +02:00
translators
695e1493c9 Update: Translations from eints
swedish: 14 changes by joeax910
2021-07-15 18:49:29 +00:00
Patric Stout
c921f6d817
Add: inform clients what game-script a server is running (#9441)
Co-authored-by: The Dude <thedude@novapolis.net>
2021-07-14 21:23:44 +02:00
translators
333cba6a61 Update: Translations from eints
spanish (mexican): 1 change by absay
finnish: 14 changes by hpiirai
2021-07-14 18:53:00 +00:00
translators
e9b157f1f5 Update: Translations from eints
korean: 1 change by telk5093
portuguese: 1 change by azulcosta
2021-07-13 18:52:35 +00:00
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
2021-07-12 18:51:48 +00:00
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`.
2021-07-11 23:11:05 +02:00
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.
2021-07-11 22:37:14 +02:00
Rubidium
178ea3196b Remove: includes to network/core/config.h from headers when only three cpp files need it 2021-07-11 22:13:59 +02:00
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.
2021-07-11 21:57:05 +02:00
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
2021-07-11 18:50:16 +00:00
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.
2021-07-11 20:38:42 +02:00
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.
2021-07-11 20:38:42 +02:00
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.
2021-07-11 20:38:42 +02:00
Patric Stout
f4dd2d88c7 Feature: raise the maximum NewGRF limit to 255 2021-07-11 12:16:07 +02:00
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.
2021-07-11 12:16:07 +02:00
rubidium42
a498723345
Remove: arbitrary limit on number of statically loaded NewGRFs (#9431) 2021-07-11 11:23:47 +02:00
Rubidium
f6955a304c Fix: ensure no more than the allowed number of NewGRFs are loaded from the configuration 2021-07-11 11:20:07 +02:00
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
2021-07-10 23:09:45 +02:00
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