Commit Graph

38650 Commits

Author SHA1 Message Date
Jonathan G Rennison
66289bbda4 Log packet size parse failures in NetworkTCPSocketHandler 2021-05-21 01:42:31 +01:00
Jonathan G Rennison
6d58115458 Net: Log sent and received game packets with type and status names 2021-05-21 01:40:00 +01:00
Jonathan G Rennison
7677d2d01a Fix mishandling of PACKET_SERVER_MAP_BEGIN queuing at server
This could result in broken packet framing in the TCP stream
2021-05-21 00:58:24 +01:00
Jonathan G Rennison
7c706923f8 Fix a15e26f3: Leftover debugging statement 2021-05-20 22:07:38 +01:00
Jonathan G Rennison
31aec93cca Fix leftover strings in Frisian language 2021-05-20 22:05:13 +01:00
Jonathan G Rennison
3ecda2b735 Fix handling of SlError when called from game thread 2021-05-20 20:20:45 +01:00
Jonathan G Rennison
a8157770df Add fast path to vehicle var 0x42 if only upper byte is required 2021-05-20 18:34:06 +01:00
Jonathan G Rennison
aa0c1ba2e0 Only update vehicle image when in the vicinity of a viewport
This reduces the performance impact of expensive NewGRF
graphics chains.
2021-05-20 18:03:11 +01:00
Jonathan G Rennison
3e8ee4f49f Remove "Disable vehicle image update" setting 2021-05-19 20:42:04 +01:00
Milek7
7ab6ab7400 Fix: missing <limits> include in network/core/packet.h (#9123)
(cherry picked from commit a341852cd5)
2021-05-19 18:19:59 +01:00
Jonathan G Rennison
55915d8d55 Elide vehicle random trigger callbacks 2021-05-18 22:14:19 +01:00
Jonathan G Rennison
6ea97d6068 Viewport: Cache viewport areas for use in MarkAllViewportsDirty 2021-05-18 21:37:05 +01:00
Jonathan G Rennison
a15e26f369 NewGRF: Elide unmasked vehicle callbacks where possible
This includes:
* CBID_VEHICLE_32DAY_CALLBACK
* CBID_VEHICLE_REFIT_COST
* CBID_VEHICLE_MODIFY_PROPERTY
  This is on a per-property basis

The main benefit of this is to avoid callbacks not handled by the
vehicle's current sprite group from using the full graphics chain as
the "default" branch in the callback switch.
In the case where the graphics chain is long/expensive, a lot of work
had to be done before a callback failure result was eventually returned.
2021-05-18 19:07:44 +01:00
Rubidium
7274432987 Fix #9267, 47a99bb: [Squirrel] Heap use after free
Due to 47a99bb the order of elements in the garbage collection chain has
changed causing the class to be finalised before the instances of that class.
Since the instance's array of member values depends on the size of the values
in the class, the class finalisation resetting that size to 0 causes not all
finalisations to run, which subsequently causes a heap use after free. So,
just set the SQObjectPtrs to 'null' during the finalisation of the SQClass
so the SQInstance can release all instance variables during its finalisation.

(cherry picked from commit 5c01f9ea52)

See: #256
2021-05-16 09:54:56 +01:00
Jonathan G Rennison
8eb34b2f10 Do not attach temporary wagons to free wagon chains when autoreplacing
See: https://github.com/OpenTTD/OpenTTD/issues/9264
2021-05-15 22:32:50 +01:00
Jonathan G Rennison
f3e0507c54 Network: Include extra info in PACKET_CLIENT_ERROR packets
Log more details in server when PACKET_CLIENT_ERROR received
2021-05-14 20:31:31 +01:00
Jonathan G Rennison
e04218b528 Network: Log received packets at log level net=3 2021-05-14 19:34:15 +01:00
PeterN
66cac92028 Fix #9202: Invalid test for unset NewGRF override mapping. (#9226)
(cherry picked from commit 3d9436bd75)
2021-05-14 18:33:19 +01:00
Patric Stout
457b4f80b6 Fix 91b8ce07: dedicated servers could no longer create screenshots (#9232)
Although most commands are not useful on a dedicated server,
screenshot commands should be dequeued.

(cherry picked from commit 56050fc96f)
2021-05-14 18:25:34 +01:00
PeterN
f52da3de3a Codechange: Don't save unused NewGRF override mappings. (#9202)
(cherry picked from commit 69e5da0b54)
2021-05-14 18:15:17 +01:00
William Davis
879de9781b Change: Use gender-neutral pronouns in console command messages (and comments) (#9203)
(cherry picked from commit 881e1da51d)
2021-05-14 18:15:00 +01:00
Jonathan G Rennison
088922b120 Fix poor performance of recursive iteration of group hierarchies 2021-05-14 02:04:37 +01:00
Jonathan G Rennison
2e28bc8e6a Tracerestrict: Add engine class conditional 2021-05-13 23:49:03 +01:00
Paweł Świątkowski
56a46f5cae Fix: Correct name of Golub-Dobrzyn 2021-05-13 10:05:07 +02:00
Paweł Świątkowski
6ee8690b47 Fix: Replace Susz with Leszno
Susz is masculine, not neuter, so it should result in "Susz Mazowiecki",
"Susz Morski", and not "Susz Mazowieckie" or "Susz Morskie". However,
because order of the names whould not be changed, it was replaced with
Leszno, which is neuter.
2021-05-13 10:05:07 +02:00
Rubidium
187a3f20bf Codechange: remove pointless close call due to resolving virtual functions statically in destructors
In the destructors of many of the network related classes Close() is called, just like the
top class in that hierarchy. However, due to virtual functions getting resolved statically
in the destructor it would always call the empty Close() of the top class.
Document the other cases where a virtual call is resolved statically.
2021-05-13 10:03:26 +02:00
Rubidium
7755f81bb8 Codechange: make explicit that virtual functions in a con/destructor are resolved statically
This as during construction the sub class has not been initialized yet, and
during destruction the sub class has already been destroyed, so the overriding
virtual function would be accessing uninitialized data.
2021-05-13 10:03:26 +02:00
Patric Stout
d7ce61f106 Fix #9255: [Network] TCPConnecter crashes when hostname not found (#9259) 2021-05-13 08:13:48 +02:00
glx22
38c97e1492 Codechange: Replace TILE_AREA_LOOP with range-based for loops 2021-05-13 00:13:54 +02:00
frosch
5bd8144853 Fix #9256, 12e43c697d: invalid read after free. (#9258)
This also changes ScriptEventVehicleAutoReplaced when replacing wagons:
The event is now only spawned, if the head engine changes, so only if the VehicleID of the consist changes.
Previously replacing wagons spawned an event with OldVehicleID==NewVehicleID.
2021-05-12 23:40:03 +02:00
frosch
f6d5c0136e Codechange: make Window destruction not rely on undefined behavior. 2021-05-12 23:22:41 +02:00
frosch
f96f113951 Codechange: use IterateFromBack/Front only if the order is important.
Use Iterate if the order does not matter.
2021-05-12 23:22:41 +02:00
frosch
22567a1f43 Codechange: use iterators instead of 'subranges' when iterating from a specific window.
Using iterators makes it easier to include or exclude the start window in the iteration.
2021-05-12 23:22:41 +02:00
frosch
aba239479b Codechange: remove excessive templating in favour of a single const_cast.
The const_cast will be removed again in a later commit.
2021-05-12 23:22:41 +02:00
frosch
95abdfdef9 Cleanup: remove unneeded labels and gotos.
The window list supports deletion of arbitrary windows, while iterating over it.
2021-05-12 23:22:41 +02:00
PeterN
ba193f2e23 Fix #9186: Fix incorrect bounding box height causing station sprite glitch. (#9187)
Increased height of small station building bounding box to cover the build rather than just the platform.
2021-05-12 21:35:48 +01:00
translators
3e7e2d9ca3 Update: Translations from eints
romanian: 38 changes by kneekoo
slovak: 19 changes by FuryPapaya
catalan: 1 change by J0anJosep
turkish: 191 changes by Anceph
2021-05-12 19:08:38 +00:00
PeterN
b972ed8604 Fix #9242: Tree tick handler did not scale by map size. (#9246)
This means that random tree generation density is higher on small maps and lower on large maps. This difference is enough to make the Lumber Mill impractical to use on large maps.

This change skips ticks on maps smaller than 256x256 and increases iterations or shortens the interval on maps larger than 256x256.
2021-05-12 18:17:57 +01:00
Jonathan G Rennison
892feb1665 Define __STDC_FORMAT_MACROS in stdafx.h 2021-05-12 18:09:09 +01:00
PeterN
7b7dbbc935 Fix #9063: Caption of news window incorrectly aligned. (#9252) 2021-05-12 17:43:35 +01:00
Patric Stout
b136e65cf9 Change: reworked the debug levels for network facility (#9251)
It now follows very simple rules:
0 - Fatal, user should know about this
1 - Error, but we are recovering
2 - Warning, wrong but okay if you don't know
3 - Info, information you might care about
4 -
5 - Debug #1 - High level debug messages
6 - Debug #2 - Low level debug messages
7 - Trace information
2021-05-12 16:34:02 +02:00
Patric Stout
56050fc96f Fix 91b8ce07: dedicated servers could no longer create screenshots (#9232)
Although most commands are not useful on a dedicated server,
screenshot commands should be dequeued.
2021-05-12 16:31:31 +02:00
PeterN
3d9436bd75 Fix #9202: Invalid test for unset NewGRF override mapping. (#9226) 2021-05-12 09:11:14 +02:00
translators
1dfc148613 Update: Translations from eints
korean: 1 change by telk5093
slovak: 149 changes by ApplePie420
2021-05-11 19:03:10 +00:00
Patric Stout
d0eb3e4bc4 Fix: [Network] mark server as offline when no longer reachable (#9244) 2021-05-11 19:19:37 +02:00
rubidium42
0968d009c8 Fix #9243: [Network] For a dedicated server use a fallback client and server name
Also warn when the client or server name has not been set and provide pointers on how to set them
2021-05-11 19:09:04 +02:00
Patric Stout
9e7e87ce3e Fix: [Network] don't rebuild the host-list during iterating the list (#9240)
Additionally, only rebuild it when we added a new manual server,
as otherwise it is a noop anyway.
2021-05-11 12:32:27 +02:00
Patric Stout
9841ebb0bd Fix: [Network] don't mark the last-joined server as manual (#9239) 2021-05-11 12:26:30 +02:00
Patric Stout
36e22f3a7b Fix: [Network] clients leaving because of broken connections was not broadcasted (#9238)
The code mixed up "client has quit but we already told everyone"
with "client lost connection, handle this".

Split up those two signals:
- CLIENT_QUIT means we told everyone and the connection is now dead
- CONNECTION_LIST means we should tell everyone we lost a client
2021-05-11 12:26:16 +02:00
translators
2e429ee485 Update: Translations from eints
german: 2 changes by Wuzzy2
2021-05-10 19:04:28 +00:00