Michael Lutz
05ed9f56fd
Feature: [NewGRF] Engine name callback.
2023-01-30 22:00:56 +01:00
Michael Lutz
2d73076056
Add: [NewGRF] Second vehicle property for additional callback flags.
2023-01-30 22:00:56 +01:00
Michael Lutz
f5394ed2ef
Change: [NewGRF] Extend the D8xx (DCxx) string area up to FFFF.
...
This adds the Exxx and Fxxx blocks to the usable range for NewGRF
local strings. TTDPatch uses these ranges for internal strings, but as
we don't support any of them anyway, it is "free" real estate for us.
2023-01-30 22:00:56 +01:00
Michael Lutz and GitHub
150f05dc15
Change: Heading for 14 now. ( #10302 )
2023-01-01 22:52:23 +01:00
Michael Lutz and GitHub
3d3ed87d99
Fix: Bad alignment of button icons when using the original baseset. ( #10200 )
2022-12-25 18:03:39 -05:00
Michael Lutz
d5fc423793
Fix #10223 : Crash when vehicle cloning fails on order cloning.
2022-12-08 00:09:12 +01:00
Michael Lutz
ab9d77ebbe
Add: [Script] Regression for ScriptAccounting.
2022-12-04 11:27:24 +01:00
Michael Lutz
1c205b2cda
Fix #10212 : [Script] Nested ScriptAccounting scopes are not restored properly.
2022-12-04 11:27:24 +01:00
Michael Lutz and GitHub
35d9cea487
Fix: Too many braces make old gcc sad. ( #10116 )
2022-11-02 00:53:44 +01:00
Michael Lutz and GitHub
c4e655b1d4
Remove: [Actions] Ubuntu Bionic and Debian Buster from release workflow. ( #10115 )
2022-10-31 22:37:01 +01:00
Michael Lutz
ac7780af96
Doc: Prepare for 13.0-beta1 release
2022-10-31 21:57:51 +01:00
Michael Lutz
b9635c4712
Doc: Forwardport changelog & doc changes from 12.x branch
2022-10-31 21:57:51 +01:00
Michael Lutz
3a11a2ed0e
Fix a9a21e78: Depots aren't really stations.
2022-10-23 14:03:38 +02:00
Michael Lutz and Charles Pigott
8e6ed8d5e9
Fix db98cedb: Swap the tile parameter validation around as only the first TileIndex is automatically validated.
2022-10-17 07:54:58 +01:00
Michael Lutz and Charles Pigott
10daaca5ea
Fix db98cedb: Swap parameters for CmdRemoveRailroadTrack, too.
2022-10-17 07:54:58 +01:00
Michael Lutz
bd357656ba
Codechange: [NewGRF] Replace magic number for default object size by a constant.
2022-10-16 18:28:08 +02:00
Michael Lutz
dd93244853
Fix: The first tile in commands received from a client wasn't validated properly.
2022-07-08 22:37:41 +02:00
Michael Lutz
8d54f76539
Fix #9837 , 46bd2f1c: Road build with wrong half-tile ends.
2022-03-20 12:56:03 +01:00
Michael Lutz
08a5478a93
Add: [NewGRF] Map seed as global variable.
...
This is useful to provide a feature-agnostic, stable random value that differs between games.
One of the possible uses is to e.g. use it to create pseudo-random regions for towns or industries.
2022-03-13 14:20:23 +01:00
Michael Lutz
57b992717b
Codechange: Extend DrawSpriteToRgbaBuffer to work with 8bpp blitters.
2022-01-01 12:19:30 +01:00
Michael Lutz
69c8ed9965
Codechange: [OSX] Simplify touchbar button data definition.
2022-01-01 12:19:30 +01:00
Michael Lutz
b351cbe490
Fix #9743 : [OSX] Only (re-)create touchbar sprites when requested by the main loop.
2022-01-01 12:19:30 +01:00
Michael Lutz
f40e82a19d
Fix #9743 : [OSX] Don't try to render touchbar sprites with invalid zoom level.
2022-01-01 12:19:30 +01:00
Michael Lutz
80fc5fb46c
Change: [OSX] Allow touchbar usage on all supported OS versions.
...
Touchbar support was introduced in 10.12.2. There's no need to limit
support to 10.15+, as the convenience class NSButtonTouchBarItem is
easily replicated.
2022-01-01 12:19:30 +01:00
Michael Lutz
b11bd185e3
Fix #9756 : Network command unpack proc was not generated in all cases.
...
The case where the callback proc takes all command results but not any of
the command parameters was not handled properly.
2021-12-20 23:32:23 +01:00
Michael Lutz
e67124e174
Change: [Admin] Bump admin port protocol due to command changes.
...
docs/admin_network.md promised that information in an admin packet
is never removed. It does allow the possibility of using a new packet type
for changed data in combination with a bump of the admin port version.
As the recent command handling changes modified the contents of
ADMIN_PACKET_SERVER_CMD_LOGGING, do exactly that.
2021-12-20 19:30:27 +01:00
Michael Lutz
3fede15940
Codechange: [Script] Prettify squirrel call helpers by using C++17.
2021-12-20 19:25:10 +01:00
Michael Lutz
afc3d71fd0
Codechange: Don't generate CommandPacket unpack functions for invalid cmd/callback combinations.
...
If the arguments of the callback proc don't match with the command parameters,
we can't do the proper command execution anyway. As such, don't even generate
an unpack function in the first place, saving a bit of unnecessary code bloat.
Validate on receive that the cmd/callback combination is supported, rejecting
clients that try to send invalid values.
2021-12-16 22:28:32 +01:00
Michael Lutz
c521b965bd
Codechange: Don't use a global for the terrforming error tile.
2021-12-16 22:28:32 +01:00
Michael Lutz
2e39637db2
Codechange: Don't use a global for the 'not enough cash' message.
2021-12-16 22:28:32 +01:00
Michael Lutz
41fa16f325
Codechange: Don't use globals for return values from vehicle command procs.
2021-12-16 22:28:32 +01:00
Michael Lutz
57b82e2e99
Codechange: Don't use globals for story/goal/sign/group command proc return values.
2021-12-16 22:28:32 +01:00
Michael Lutz
3e85e833a7
Codechange: Add support for additional command result values.
2021-12-16 22:28:32 +01:00
Michael Lutz
8503854655
Codechange: Pass unpacked command arguments to command callbacks (except Script).
2021-12-16 22:28:32 +01:00
Michael Lutz
d85348b1d1
Codechange: Template the command callback function type to allow unpacked arguments.
2021-12-16 22:28:32 +01:00
Michael Lutz
13528bfcd0
Codechange: Un-bitstuff all remaining commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
58cff7b081
Codechange: Un-bitstuff the remaining on-map commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
c6d7b98808
Codechange: Un-bitstuff landscape commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
e6e69d5289
Codechange: Un-bitstuff goal and story page commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
1a42a8a5d5
Codechange: Un-bitstuff town-related commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
e08b3abe7f
Codechange: Un-bitstuff group and autoreplace commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
46bd2f1ced
Codechange: Un-bitstuff remaining transport infrastructure commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
55170ae703
Codechange: Un-bitstuff rail commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
6fe445e6c0
Codechange: Un-bitstuff station/depot/waypoint commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
21675ec7e2
Codechange: Un-bitstuff vehicle/engine commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
2637c06f88
Codechange: Un-bitstuff timetable commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
211c630cbe
Codechange: Un-bitstuff order commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
de45a8729c
Codechange: Add DoCommand::Post specialization for commands that take no TileIndex.
...
This adds a new Post overloads that still take a TileIndex which
is used to place any error windows or text effects.
2021-12-16 22:28:32 +01:00
Michael Lutz
4f3ea3907e
Codechange: Un-bitstuff commands taking a ClientID (i.e. CMD_CLIENT_ID).
2021-12-16 22:28:32 +01:00
Michael Lutz
ccefa76a46
Codechange: Template DoCommandPInternal.
2021-12-16 22:28:32 +01:00
Michael Lutz
6691ee3b96
Codechange: Template script command calls.
2021-12-16 22:28:32 +01:00
Michael Lutz
eab18f06a4
Codechange: Pass additional data as byte stream to command callbacks.
2021-12-16 22:28:32 +01:00
Michael Lutz
0f64ee5ce1
Codechange: Template DoCommandP to automagically reflect the parameters of the command proc.
...
When finished, this will allow each command handler to take individually
different parameters, obliviating the need for bit-packing.
2021-12-16 22:28:32 +01:00
Michael Lutz
e740c24eb7
Codechange: Template DoCommand to automagically reflect the parameters of the command proc.
...
When finished, this will allow each command handler to take individually
different parameters, obliviating the need for bit-packing.
2021-12-16 22:28:32 +01:00
Michael Lutz
c88b104ec6
Codechange: Use wrapper struct to automatically manage command depth tracking.
2021-12-16 22:28:32 +01:00
Michael Lutz
996b16de70
Codechange: Use lambdas instead of CommandContainer to manage station picker commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
a05fd7aa50
Change: [Network] Transfer command data as serialized byte stream without fixed structure.
...
The data will be transmitted as the length followed by the serialized data. This allows the command
data to be different for every command type in the future.
2021-12-16 22:28:32 +01:00
Michael Lutz
b0990fcff7
Codechange: Make TileIndex a "strong" typedef to give it a distinct type.
...
This is accomplished by changing it to a single member struct with the
appropriate operator overloads to make it all work with not too much
source modifications.
2021-12-16 22:28:32 +01:00
Michael Lutz
4fc055d6e9
Codechange: Align parameter order of command callbacks to command handlers.
2021-12-16 22:28:32 +01:00
Michael Lutz
123c7f99c3
Codechange: Move command callback declarations to the cmd header files.
2021-12-16 22:28:32 +01:00
Michael Lutz
7048e1522f
Codechange: Move flags in CommandProc in front of the command arguments.
2021-12-16 22:28:32 +01:00
Michael Lutz
33ca4f2b99
Codechange: Let the compile generate the master command table out of templated command traits.
...
This is using a non-intrusive type-traits like templated system, which
allows compile-time validation that the command table and the command
enum match up.
2021-12-16 22:28:32 +01:00
Michael Lutz
5ddfdc8516
Codechange: Declare our custom enum operators as constexpr.
2021-12-16 22:28:32 +01:00
Michael Lutz
a38bbefe1b
Codechange: Untangle command code, flags and error string for DoCommand*.
2021-12-16 22:28:32 +01:00
Michael Lutz
549caca39c
Codechange: Move command arguments to the back of the networked command function calls.
2021-12-16 22:28:32 +01:00
Michael Lutz
b6933a2ebd
Codechange: Move command arguments to the back of the DoCommand function call.
2021-12-16 22:28:32 +01:00
Michael Lutz
39e8783f4b
Fix: Template syntax error when using 'span' with a container type.
2021-12-16 22:28:32 +01:00
Michael Lutz and GitHub
20a30825a0
Fix: Insufficient input validation for CmdIndustryCtrl. ( #9711 )
2021-11-20 23:27:45 +01:00
Michael Lutz
8c558d74a5
Fix 55a11710: Curly braces need to be double-escaped for (std::)fmt.
2021-11-06 20:21:07 +01:00
Michael Lutz
95c8467670
Fix 65cbde4b: Writing to uninitialized string when loading a currency NewGRF.
2021-11-06 19:15:29 +01: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
Michael Lutz
fff09a4af2
Fix d9c1d18f2: Wrong format string for console disconnect message.
2021-08-19 19:56:00 +02:00
Michael Lutz and GitHub
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
Michael Lutz
b14681891d
Fix 8706dcd9: [Script] Byte-swap grfids to match normal expectations.
2021-08-10 21:35:17 +02:00
Michael Lutz and GitHub
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
Michael Lutz
10d8c17236
Codechange: Add CMake source group for the saveload compat tables.
...
While at it, fix the not-working OpenGL sub-group.
2021-07-04 16:31:59 +02: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
Michael Lutz
418e0ea85f
Codechange: Use dynamic string list for contents of land info window.
2021-06-12 22:30:38 +02:00
Michael Lutz
97722931a9
Fix: [OpenGL] Increase timeout when waiting for the GPU to be done with the drawing buffer.
...
The old timeout could be too short if v-sync was on on lower refresh rates.
2021-05-23 12:22:59 +02:00
Michael Lutz
1f159f79de
Fix #9147 : Delay making screenshots until the next draw tick as we may not access the video buffer from the game thread.
2021-05-02 17:57:24 +02:00
Michael Lutz
91b8ce073f
Codechange: Generalise the delayed blitter change to a generic video driver command queue.
2021-05-02 17:57:24 +02:00
Michael Lutz and GitHub
f4d5c8d99e
Fix: [OpenGL] Main loop expects to start with the video buffer unmapped. ( #9100 )
2021-04-25 00:43:38 +02:00
Michael Lutz
d1dd997f07
Change: [Win32] Limit the OpenGL video driver to OpenGL 3.2 or newer on Windows.
2021-04-22 21:04:04 +02:00
Michael Lutz
ef80baf75c
Codechange: [Win32] Try getting an OpenGL 4.5 context first before aiming at 3.2.
2021-04-22 21:04:04 +02:00
Michael Lutz
e53313391a
Fix: [OpenGL] Check maximum supported texture size against screen resolution.
2021-04-21 22:44:59 +02:00
Michael Lutz
433602b072
Fix #9028 : [OpenGL] Clear cursor cache on destroying the OpenGL backend.
2021-04-12 22:40:40 +02:00
Michael Lutz and GitHub
5644c00482
Fix: Check for a validly mapped OpenGL screen buffer during driver init. ( #9007 )
2021-04-11 14:28:29 +02:00
Michael Lutz
96d33ab46a
Fix #8930 : [Win32] Don't handle printable keys on keydown if an edit box is in focus.
...
Handle printable input only when the matching WM_CHAR message is incoming.
Without an edit box, do the handling in keydown as usual to support hotkeys.
2021-04-09 12:24:27 +02:00
Michael Lutz and GitHub
1cd3a3b070
Fix #8935 : [OSX] Crash when clicking 'Save' due to wrongly-threaded OS call. ( #8944 )
2021-04-05 12:18:45 +02:00
Michael Lutz
df958dc907
Fix f0f96e31: [OpenGL] Broken window resizing due to invalid buffer pitch on texture creation.
2021-03-21 22:26:55 +01:00
Michael Lutz and GitHub
f0f96e3103
Fix #8871 : [OpenGL] Initialize all buffers after resize and clear back buffer. ( #8877 )
2021-03-20 19:43:54 +01:00
Michael Lutz
13011e00c6
Fix #8860 : [Win32] Crashlog window wasn't reliably shown for crashes not on the main thread.
2021-03-13 22:09:05 +01:00
Michael Lutz
436cdf1fc8
Fix #8825 : [OpenGL] Don't clear cursor cache from the game loop thread.
2021-03-08 21:35:35 +01:00
Michael Lutz and Patric Stout
3a4a15cc93
Codechange: don't set the window position when changing blitter
...
There really is no need to make an extra call to the OS in
these cases.
2021-03-08 19:18:55 +01:00
Michael Lutz
25656a10cb
Fix #8808 : [OSX, OpenGL] Crash on switching blitters due to double-mapping the video buffer.
2021-03-08 15:43:22 +01:00
Michael Lutz and GitHub
ae1f7bd695
Fix 937d60f2: Broken company colours for 40bpp-blitter. ( #8821 )
2021-03-08 15:43:08 +01:00
Michael Lutz and GitHub
937d60f239
Fix #8774 : Black screenshots when using 40bpp-blitter. ( #8791 )
...
This affected all screenshot types that render to an off-screen
buffer and don't copy the actual screen contents.
2021-03-02 20:55:39 +01:00
Michael Lutz
c656633bea
Fix #8775 : [Win32] Don't create the main window when alt-tabbing back into fullscreen.
2021-03-01 23:41:39 +01:00