Commit Graph

52678 Commits

Author SHA1 Message Date
Rubidium
8e0b1b5d1a Add: concept of a RandomAccessFile to replace the FIO slot functions 2021-05-08 12:39:34 +02:00
PeterN
69e5da0b54 Codechange: Don't save unused NewGRF override mappings. (#9202) 2021-05-08 11:36:39 +01:00
Jonathan G Rennison
6c3ce55a0b Version: Committing version data for tag: jgrpp-0.41.1 2021-05-08 11:06:31 +01:00
William Davis
881e1da51d Change: Use gender-neutral pronouns in console command messages (and comments) (#9203) 2021-05-08 11:02:30 +01:00
Patric Stout
f187708b3b Fix f7e390bd: getpeername() doesn't work on closed sockets (#9213) 2021-05-08 11:57:41 +02:00
PeterN
1db19dd88c Fix #9209: Excessive time resizing highscore/news window when screen is too small. (#9210)
If the highscore/news window panel size, which is now scaled by GUI zoom, is larger than the screen size, a loop will be entered where the window is repeatedly resized.

This is resolved by removing the minimal size from the panel, as the window is always resized to cover the screen anyway. This means the screen size can never be too small.

(cherry picked from commit 8c3fa2a3bf)
2021-05-08 10:22:22 +01:00
Peter Nelson
2b34256e51 Codechange: Slider widget used different range for drawing vs setting.
Using the same range for setting means that no workaround for setting the extremes is necessary.

(cherry picked from commit dd41de8931)
2021-05-08 10:22:22 +01:00
Peter Nelson
b414060f7c Codechange: Make GetCurrentRect() conform to usual Rect bounds, and reuse it.
Similar code is already repeated in other locations.

(cherry picked from commit d8e06e590a)
2021-05-08 10:22:22 +01:00
Peter Nelson
065ae3964a Codechange: Don't update window contents if scrollbar position has not moved.
(cherry picked from commit 52b16237ad)
2021-05-08 10:22:22 +01:00
Peter Nelson
ad554d913f Codechange: Set specific widgets dirty instead of window.
(cherry picked from commit 8321ef0061)
2021-05-08 10:22:22 +01:00
embeddedt
0676c1f470 Fix: [Emscripten] Use non-XDG directories to simplify lolac storage (#9207)
(cherry picked from commit a879996012)
2021-05-08 10:22:04 +01:00
PeterN
8c3fa2a3bf Fix #9209: Excessive time resizing highscore/news window when screen is too small. (#9210)
If the highscore/news window panel size, which is now scaled by GUI zoom, is larger than the screen size, a loop will be entered where the window is repeatedly resized.

This is resolved by removing the minimal size from the panel, as the window is always resized to cover the screen anyway. This means the screen size can never be too small.
2021-05-08 09:54:32 +01:00
Peter Nelson
dd41de8931 Codechange: Slider widget used different range for drawing vs setting.
Using the same range for setting means that no workaround for setting the extremes is necessary.
2021-05-08 09:54:14 +01:00
Peter Nelson
d8e06e590a Codechange: Make GetCurrentRect() conform to usual Rect bounds, and reuse it.
Similar code is already repeated in other locations.
2021-05-08 09:53:55 +01:00
Peter Nelson
52b16237ad Codechange: Don't update window contents if scrollbar position has not moved. 2021-05-08 09:52:54 +01:00
Peter Nelson
8321ef0061 Codechange: Set specific widgets dirty instead of window. 2021-05-08 09:52:54 +01:00
rubidium42
e2774354b4 Codechange: [Network] Change ChatMessage's message to std::string and simplify some code 2021-05-08 10:19:42 +02:00
embeddedt
a879996012 Fix: [Emscripten] Use non-XDG directories to simplify lolac storage (#9207) 2021-05-08 09:43:17 +02:00
translators
b56c03b120 Update: Translations from eints
dutch: 2 changes by Afoklala
2021-05-07 18:59:46 +00:00
Jonathan G Rennison
26992089d6 Fix use of _mm_cvtsi64_si128 which is not available on 32 bit x86
See: #254
2021-05-07 03:30:36 +01:00
Jonathan G Rennison
011b3b8b8d Avoid data race on map size when clearing link graph jobs in InitializeGame 2021-05-07 00:58:52 +01:00
Patric Stout
f7e390bdc0 Feature: use Happy Eyeballs to make network connections (TCP-only) (#9199)
Hostnames like "content.openttd.org" resolve into multiple IPv4 and IPv6.
It is possible that either of the IPs is not working, either due to
a poorly configured OS (having IPv6 but no valid route), broken network
paths, or a service that is temporary unavailable.

Instead of trying the IPs one by one, waiting for a 3s timeout between
each, be a bit more like browsers, and stack attempts on top of each
other with slight delays. This is called Happy Eyebells.

Initially, try the first IPv6 address. If within 250ms there is no
connection yet, try the first IPv4 address. 250ms later, try the
second IPv6 address, etc, till all addresses are tried.

If any connection is created, abort all the other (pending) connections
and use the one that is created. If all fail 3s after the last connect(),
trigger a timeout for all.
2021-05-06 23:13:35 +02:00
Jonathan G Rennison
9900adae70 Fix #254: AdjustBrightnessOfTwoPixels used in 32bpp-sse2 but requires SSE3 2021-05-06 21:26:15 +01:00
rubidium42
9bfcea0397 Cleanup: [Fluidsynth] Comply better with the coding style
(cherry picked from commit a432009f06)
2021-05-06 21:22:42 +01:00
Tyler Trahan
54deb7516c Change: Use gender-neutral pronouns in english.txt (#9189)
(cherry picked from commit 176d65b472)
2021-05-06 21:22:14 +01:00
glx22
8333323090 Codechange: Replace FOR_ALL_ROADTRAMTYPES with range-based for loops
(cherry picked from commit 2feb801e56)
2021-05-06 21:21:41 +01:00
glx22
72cfb991e5 Codechange: Replace FOR_ALL_SEARCHPATHS with range-based for loops
(cherry picked from commit 983c7ade60)
2021-05-06 21:17:32 +01:00
glx22
ffd30cf91b Codechange: Replace FOR_ALL_TARS with range-based for loops
(cherry picked from commit 34215f7faa)
2021-05-06 21:15:07 +01:00
rubidium42
e71798381b Fix #9117, 04ce1f07: [Fluidsynth] Infinite wait when stopping song (#9181)
In FluidSynth 2.2.0 an extra state was added to denote stopping. To transition
from this state to a stopped state the rendering needs to be running. Since
04ce1f07 locking was added that skipped the rendering when something else held
a lock, so the state would never get to stopped and join would never return.

(cherry picked from commit 6bd7f8816d)
2021-05-06 21:13:47 +01:00
PeterN
0d1c848f78 Fix: Query windows may be partially drawn initially. (#9184)
Query window was not marked dirty after being moved on init. It was then marked dirty once the white border flash completed.

(cherry picked from commit 08781d96ed)
2021-05-06 21:13:46 +01:00
PeterN
b36bfc7ab0 Fix #9174: Don't update text effect if it has been reset. (#9183)
(cherry picked from commit 0bc6f32346)
2021-05-06 21:13:46 +01:00
Milek7
deb2ad8997 Codechange: Acquire video buffer before taking game state lock to prevent erratic fast forward behaviour (#9140)
(cherry picked from commit 20762f9117)
2021-05-06 21:12:59 +01:00
Peter Nelson
01d40812fa Codechange: Validate custom station platform layout tiles are permitted values only.
(cherry picked from commit 756034fa27)
2021-05-06 21:10:33 +01:00
Peter Nelson
da571d6481 Codechange: Use std::vector for NewGRF station tile sprite layouts.
(cherry picked from commit a3e49178d1)
2021-05-06 21:10:33 +01:00
Peter Nelson
72bc8c7595 Codechange: Use std::vector for NewGRF station platform layouts.
This avoids the need to custom memory management and additional members.

This also resolves use-after-free if modifying copied layouts, so presumably nobody has ever done that.

(cherry picked from commit bd1a20f6ee)
2021-05-06 21:10:31 +01:00
Michael Lutz
2e6cadb005 Fix #9147: Delay making screenshots until the next draw tick as we may not access the video buffer from the game thread.
(cherry picked from commit 1f159f79de)
2021-05-06 20:52:00 +01:00
Michael Lutz
1b46ef756e Codechange: Generalise the delayed blitter change to a generic video driver command queue.
(cherry picked from commit 91b8ce073f)
2021-05-06 20:52:00 +01:00
frosch
e856d3f8fe Fix: [NewGRF] industry variable 66 and object variable 46 clamped the squared-euclidian distance to 16 bit, when they should not.
(cherry picked from commit 2cf5df2a50)
2021-05-06 20:52:00 +01:00
frosch
dbcd115a4c Fix: [NewGRF] industry variables 65 and 66 ignored the parameter, and always used the north tile.
(cherry picked from commit 84aa17cea6)
2021-05-06 20:52:00 +01:00
rubidium42
59a817f21f Fix: [Network] Reading beyond the length of the server's ID when hashing password
Under normal circumstances the server's ID is 32 characters excluding '\0', however this can be changed at the server. This ID is sent to the server for company name hashing. The client reads it into a statically allocated buffer of 33 bytes, but fills only the bytes it received from the server. However, the hash assumes all 33 bytes are set, thus potentially reading uninitialized data, or a part of the server ID of a previous game in the hashing routine.
It is still reading from memory assigned to the server ID, so nothing bad happens, except that company passwords might not work correctly.

(cherry picked from commit 56aa6d0edd)
2021-05-06 20:52:00 +01:00
PeterN
43fe7463ba Fix: Update text effect size when font zoom is changed. (#9174)
(cherry picked from commit 18651dd8b1)
2021-05-06 20:52:00 +01:00
PeterN
f9a03c4e63 Fix: Crash when extra viewport height is zero with sign in view. (#9175)
If a viewport sign straddles the top of a viewport, a crash will occur if the viewport height is zero. This is resolved by simply not attempting to draw the viewport in this situation, consistent with other widgets.

(cherry picked from commit 256dbee255)
2021-05-06 20:52:00 +01:00
Peter Nelson
0b4d45af93 Codechange: Warn if randomaction2 group count is not a power of 2.
Previously noted by a comment, this does not need to be guarded against as non-powers of 2 will not cause issues beyond the choice of results being reduced.

(cherry picked from commit 18fb1c3866)
2021-05-06 20:52:00 +01:00
Peter Nelson
02a62e4c98 Cleanup: Use range iterator to evaluate DeterministicSpriteGroup.
(cherry picked from commit 6b0b1bb3de)
2021-05-06 20:52:00 +01:00
rubidium42
f1dfa661a1 Codechange: [Network] Use std::string for NetworkGameInfo 2021-05-06 21:45:36 +02:00
rubidium42
cb89d22cf2 Codechange: add DrawString(Multiline) that accepts std::string& 2021-05-06 21:45:36 +02:00
rubidium42
6bca9e090d Codechange: add SetDParamStr that accepts std::string& 2021-05-06 21:45:36 +02:00
Peter Nelson
f5722a999e Cleanup: Use std::vector in RandomSpriteGroup.
(cherry picked from commit 913d8a7f28)
2021-05-06 20:25:59 +01:00
Peter Nelson
a69a1d19a9 Cleanup: Use std::vector in DeterministicSpriteGroup.
(cherry picked from commit 1aeaf39954)
2021-05-06 20:21:57 +01:00
Peter Nelson
d3b9d19c5a Cleanup: Use std::vector in RealSpriteGroup.
(cherry picked from commit f785a70a2b)
2021-05-06 20:21:57 +01:00