1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-10 09:32:29 +01:00
Commit Graph

28579 Commits

Author SHA1 Message Date
mix
b96fe8f51b Call ViewportsInvalidate directly in map animations 2025-06-13 21:13:32 +01:00
mix
7df1a8602c Rename MapAnimation::CreateAll to MarkAllTiles 2025-06-13 21:13:32 +01:00
mix
b6537a4799 Load temporary map animations from S6 files 2025-06-13 21:13:32 +01:00
mix
57148e137a Load temporary map animations from S4 files 2025-06-13 21:13:32 +01:00
mix
43b0ed6dc8 Add animations for land edge doors 2025-06-13 21:13:32 +01:00
mix
daf8c186d3 Add is animating state to scenery doors 2025-06-13 21:13:32 +01:00
mix
e467f5db02 Add temporary map animations 2025-06-13 21:13:32 +01:00
ζeh Matt
769a85afb7 Refactor how map animations are created and stored 2025-06-13 21:13:32 +01:00
OpenRCT2 git bot
829d146765 Merge Localisation/master into OpenRCT2/develop 2025-06-12 04:06:26 +00:00
mix
a12cf878fa Fix #17365: Surface slope wrong on x axis when expanding map size 2025-06-11 14:02:42 +02:00
Hielke Morsink
4d9f56b447 Fix: undefined behaviour in string construction (#24602)
Explicitly used `s` string literal suffix to ensure all concatenations are performed between `std::string` objects. This prevents unsafe implicit conversions and resolves a GCC warning about potential memory overlap caused by mixing raw string literals and `std::string` temporaries.

I ran into this issue when compiling OpenRCT2 for raspberry pi using GCC 12. The error it threw was:

```
In file included from /usr/include/c++/12/string:40,
                 from /usr/include/c++/12/stdexcept:39,
                 from /usr/include/c++/12/system_error:41,
                 from /usr/include/c++/12/bits/fs_fwd.h:35,
                 from /usr/include/c++/12/filesystem:44,
                 from OpenRCT2/src/openrct2/interface/../core/FileSystem.hpp:35,
                 from OpenRCT2/src/openrct2/interface/Screenshot.h:12,
                 from OpenRCT2/src/openrct2/interface/Screenshot.cpp:10:
In static member function ‘static constexpr std::char_traits<char>::char_type* std::char_traits<char>::copy(char_type*, const char_type*, std::size_t)’,
    inlined from ‘static constexpr void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:423:21,
    inlined from ‘constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.tcc:532:22,
    inlined from ‘constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:2171:19,
    inlined from ‘constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::insert(size_type, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:1858:29,
    inlined from ‘constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:3531:35,
    inlined from ‘ScreenshotGetNextPath()::<lambda(int)>’ at OpenRCT2/src/openrct2/interface/Screenshot.cpp:158:41,
    inlined from ‘std::optional<std::__cxx11::basic_string<char> > ScreenshotGetNextPath()’ at OpenRCT2/src/openrct2/interface/Screenshot.cpp:164:39:
/usr/include/c++/12/bits/char_traits.h:431:56: error: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ accessing 9223372036854775811 or more bytes at offsets [3, 9223372036854775807] and 2 may overlap up to 9223372036854775815 bytes at offset -4 [-Werror=restrict]
  431 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
      |                                        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/libopenrct2.dir/build.make:2736: CMakeFiles/libopenrct2.dir/src/openrct2/interface/Screenshot.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:89: CMakeFiles/libopenrct2.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
```
2025-06-11 10:00:51 +02:00
OpenRCT2 git bot
0595086f5b Merge Localisation/master into OpenRCT2/develop 2025-06-11 04:07:03 +00:00
Michael Steenbeek
8c7d1bbe9b Merge pull request #24601 from Gymnasiast/refactor/more-window 2025-06-10 23:50:32 +02:00
Gymnasiast
81e3181ebb Pass ScreenSize to makeWindowShim() 2025-06-10 23:21:15 +02:00
Gymnasiast
bdba89f428 Pass ScreenSize to window creation functions 2025-06-10 23:20:28 +02:00
Gymnasiast
bd6ae5848c Rename remaining methods in Widget.h to lowerCamelCase 2025-06-10 23:20:18 +02:00
Aaron van Geffen
dac097ce64 Rework news options into one tab in the news window 2025-06-10 21:13:05 +00:00
Aaron van Geffen
ec3f9d1272 Disable scenario options rather than hiding them (#24559) 2025-06-10 20:05:06 +00:00
mix
6d1b8eba48 Fix ride window vehicle tab crop, position, zoomed out glitching 2025-06-10 19:29:25 +00:00
Michael Steenbeek
01d0fa52ea Merge pull request #24600 from Gymnasiast/refactor/window-stuff-2
Small widget code style refactor
2025-06-10 20:58:51 +02:00
mix
64e5602d60 Fix right click ride construction bugs when ghost track on same tile 2025-06-10 20:35:43 +02:00
Gymnasiast
757ab61b20 Refactor WidgetFlags to FlagHolder 2025-06-10 19:55:37 +02:00
Gymnasiast
650fa3ae2e Rename WindowWidgetType to WidgetType and change for new code style 2025-06-10 19:55:12 +02:00
Gymnasiast
149468406b Update WindowColour enum for new code style 2025-06-10 19:53:12 +02:00
Gymnasiast
86e265f093 Make widget creation functions lowerCamelCase 2025-06-10 19:51:21 +02:00
Aaron van Geffen
a65cb87315 Get minimap and screenshot images from scenario meta objects (#24411)
* Rename ScenarioText object type to ScenarioMeta

* Populate image table for scenario meta objects

* Create park preview images from scenario meta objects

* Show 'loading' stub while preview is being loaded

* Rewrite ParkPreview::drawPreviewImage to use SPR_TEMP

* Optionally allow scenario previews to use screenshots

* Add scenario meta files for the remaining RCT1 DLC scenarios

* Work around TryClassifyFile not working with .sea files

* Load scenario previews using temp objects too

* Defer temp object Load/Unload to calling side

* Default to using screenshots for scenario previews

* Update objects to v1.7.0

* Add changelog entries

---------

Co-authored-by: mix <mixiate@proton.me>
2025-06-10 19:17:55 +02:00
Aaron van Geffen
0779b9f0ab Replace window shim and widget macros with constexpr functions (#24566) 2025-06-07 23:02:14 +02:00
Tulio Leao
a9b51ad3b2 Fix missing version separator on changelog 2025-06-07 06:21:29 -03:00
Tulio Leao
74925bba43 Start v0.4.24 2025-06-07 06:16:14 -03:00
Tulio Leao
b813be9c0c Merge branch 'master' into develop 2025-06-07 06:15:04 -03:00
Tulio Leao
b8d73b523c Release v0.4.23
- Feature: [#22476] “Time since last inspection” statistic is available in the rides window.
- Feature: [#24313] [Plugin] Add API for setting a ride vehicle’s sprite to a smoke plume.
- Improved: [#24345] Vehicle fallback sprites are less likely to glitch with the track.
- Improved: [#24362, #24491] The Windows installer is now translated as well.
- Improved: [#24364] Improve the fallback vehicle sprites for Zero G Rolls, and allow small ones to be built without cheats if the fallbacks are available.
- Improved: [#24368] Clicking the in-game update notication now leads to a more user-friendly download page.
- Improved: [#24400] Ride list in preservation window is now sorted alphabetically.
- Improved: [#24409] Steam installs of RCT Classic are now detected automatically.
- Improved: [#24413] Better performance when moving the viewport on Windows and Linux platforms.
- Improved: [#24417] Improve the fallback vehicle sprites for Dive Loops.
- Improved: [#24433] The ride, new ride, scenery, path, viewport, park and tool windows no longer redraw every frame if they have not changed.
- Improved: [#24467] Apply tweening only to on-screen entities when not zoomed out for better performance with uncapped FPS.
- Improved: [#24474] More efficiently search viewports when playing Audio.
- Improved: [#24479] More descriptive error messages for `set` commands in the in-game console.
- Improved: [#24563] The Linux .desktop file will now request the more powerful dedicated GPU on hybrid graphics systems.
- Change: [#24342, #24484] g2.dat is now split into g2.dat, fonts.dat and tracks.dat.
- Change: [#24362] The Windows installer now prevents installing to the same folder as RollerCoaster Tycoon 2 or Classic.
- Change: [#24418] Small & Large Zero G Rolls can now be built on the LIM Launched RC without cheats if vehicle sprites are available.
- Fix: [#5269] Font bugs when using the Russian release of RCT2 as the base game.
- Fix: [#11071, #22958] The virtual floor does not always draw correctly.
- Fix: [#18220] Some custom RCT1 scenarios are detected as competition DLC scenarios.
- Fix: [#20095] UCES Halloween - Cemetery Ridge scenario has mismatched entrance/exit on haunted house.
- Fix: [#20158] Custom animated scenery .DATs with frame offsets draw a random sprite at the end of their animation.
- Fix: [#22628] Potential crash while rebuilding the scenario index.
- Fix: [#23289] Dodgems and Flying Saucer cars can spawn on top of each other when the ride is opened.
- Fix: [#24332] Banner font renders differently when using RCT Classic as the base game.
- Fix: [#24343] Large gently sloped turns are buildable without cheats when the vehicles do not have sprites for them.
- Fix: [#24346] Possible crash during line drawing in OpenGL mode.
- Fix: [#24353] ‘Show dirty visuals’ is off by one pixel and does not work correctly with higher framerates.
- Fix: [#24362] When upgrading from an older version on Windows, old versions of official objects are not always removed.
- Fix: [#24366] Zero G Rolls have some incorrect vehicle yaw rotations.
- Fix: [#24371] Fix divide by zero in the scenery window when there is no scenery.
- Fix: [#24378] Prevent ride and stall statistics from overflowing.
- Fix: [#24388] Shortcut keys are not localised based on the user’s language settings.
- Fix: [#24403] Park fences draw underneath and through opaque water.
- Fix: [#24406] The network status window uses an undefined string for its title.
- Fix: [#24444] In the object load error window, the guide text overlaps when the title bar is enlarged.
- Fix: [#24446] [Plugin] Fix regression breaking the track iterator on specific track pieces.
- Fix: [#24447] Shortcut list is not refreshed when changing language.
- Fix: [#24448] Shortcuts involving the Caps Lock key are wrongly localised to NumPad Dot.
- Fix: [#24464] Window and viewport visibility is not calculated correctly causing minor performance issues.
- Fix: [#24488] Objects are not always redrawn immediately when they are reloaded from the Object Selection window.
- Fix: [#24544] RCT1 Maze designs with wooden walls are not imported correctly.
- Fix: [#24567] Long flat-to-steep wooden mine support sprites don't connect to flat supports exactly.
v0.4.23
2025-06-07 05:46:48 -03:00
Tulio Leao
bdd2da0996 Merge branch 'develop' 2025-06-07 05:43:09 -03:00
Michael Steenbeek
f9c753e99b Fix version info of NSIS installer 2025-06-07 10:39:34 +02:00
Tulio Leao
78fd458cfc Update backtrace token for upcoming release 2025-06-07 04:27:15 -03:00
OpenRCT2 git bot
b596703fea Merge Localisation/master into OpenRCT2/develop 2025-06-07 04:03:20 +00:00
mix
0d9c585379 Fix flat to steep wooden mine supports not connecting to flat supports 2025-06-06 21:02:51 +02:00
Michael Steenbeek
92db8a9d78 Linux: add .desktop hint to request discrete GPU (#24563)
This hint was added in v1.4 of the spec and supported by GNOME (since 2020) and KDE (since 2021) and is intended for systems with hybrid graphics. It tells the system to launch the application on the more powerful discrete GPU as opposed to the more energy efficient integrated graphics.

Systems like this (e.g. the Optimus laptops) are the spawn of Satan, but this makes the experience much more enjoyable for the poor users with a system like this.

Reference: https://specifications.freedesktop.org/desktop-entry-spec/latest/recognized-keys.html
2025-06-04 20:46:54 +02:00
mix
c97191a3d7 Add required sprites to unbanked and banked large gently sloped turns 2025-06-03 23:52:49 +02:00
mix
2d364ec070 Fix guest window viewport on pick up and thoughts not invalidating (#24535) 2025-06-03 07:04:10 -03:00
Michael Steenbeek
a3494d5358 Fix #24544: RCT1 Maze designs with wooden walls not imported correctly 2025-06-02 21:26:48 +00:00
Aaron van Geffen
b9e2ac9689 Add changelog entries 2025-06-02 22:45:48 +02:00
Aaron van Geffen
6dcc5954f5 Update objects to v1.7.0 2025-06-02 22:45:17 +02:00
Aaron van Geffen
ac21ff24c5 Remove const_cast in GetWidgetByIndex (#24554) 2025-06-02 19:48:57 +02:00
Michael Steenbeek
2ee904d65d Use the intended bounding box for vehicle sprite fallbacks (#24345)
* Use original intended bounding box for fallback vehicle sprites

* Rename spriteNum to spriteIndex in vehicle paint and add const

* Add const to z parameter of vehicle paint functions

* Add bounding box index constants to vehicle paint functions

* Add constants to vehicle paint functions that use corkscrew sprites

* Add changelog entry for using intended bb for vehicle fallbacks
2025-05-31 19:34:35 +02:00
mix
f22782d441 Add changelog entry for using intended bb for vehicle fallbacks 2025-05-31 15:48:55 +01:00
mix
5e2923b1ea Add constants to vehicle paint functions that use corkscrew sprites 2025-05-31 15:48:55 +01:00
mix
e225998452 Add bounding box index constants to vehicle paint functions 2025-05-31 15:48:55 +01:00
mix
be563676df Add const to z parameter of vehicle paint functions 2025-05-31 15:48:55 +01:00
mix
bda27e57ab Rename spriteNum to spriteIndex in vehicle paint and add const 2025-05-31 15:48:55 +01:00
mix
b78906a8b6 Use original intended bounding box for fallback vehicle sprites 2025-05-31 15:48:55 +01:00