1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-22 23:33:04 +01:00
Commit Graph

28402 Commits

Author SHA1 Message Date
mix
f73a7b64d9 Remove fallthrough annotations in TrackPlaceAction::Execute 2025-06-13 21:13:34 +01:00
mix
8d2309a4c2 Change magic numbers to constants in Viewport::Invalidate function 2025-06-13 21:13:34 +01:00
mix
92dd81b9ea Change tile related magic numbers to consts in map animation code 2025-06-13 21:13:34 +01:00
mix
b56f150533 Change MapAnimations::ShiftAll parameter from CoordsXY to TileCoordsXY 2025-06-13 21:13:34 +01:00
mix
ed4f926d7d Remove RCT1 land edge door map animations 2025-06-13 21:13:34 +01:00
mix
22f3dd429d Change invalidating map animations from set to vector of bools 2025-06-13 21:13:34 +01:00
mix
c7dba755b1 Skip viewport in map animation invalidation if over max zoom 2025-06-13 21:13:34 +01:00
mix
aed3a9cb3b Prevent scrolling text map animations invalidating when not drawn 2025-06-13 21:13:34 +01:00
mix
d6d44f05b9 Raise map animation invalidation max zoom to 2 2025-06-13 21:13:34 +01:00
mix
46e85d4468 Mark auto pointers explicitly in map animations 2025-06-13 21:13:33 +01:00
mix
89f349f6e8 Change MapAnimations::MarkTileForInvalidation parameter to TileCoordsXY 2025-06-13 21:13:33 +01:00
mix
d98a06564a Change MapAnimations::MarkTileForUpdate parameter to TileCoordsXY 2025-06-13 21:13:33 +01:00
mix
9f44a475fd Simplify MapGetTrackElementAtFromRideIsUnderground 2025-06-13 21:13:33 +01:00
mix
dd3e62b56e Pass viewport as pointer in map animations 2025-06-13 21:13:33 +01:00
mix
7100c6b476 Don't update map animations on ticks where nothing is updated 2025-06-13 21:13:33 +01:00
mix
0a63059580 Prevent land edge doors creating animations if not underground 2025-06-13 21:13:33 +01:00
mix
17d321103f Don't invalidate temporary map animation if not in view 2025-06-13 21:13:33 +01:00
mix
8a5145678c Pass viewport through map animation invalidation functions 2025-06-13 21:13:33 +01:00
mix
d5bd92c483 Prevent scenery clocks from invalidating every frame 2025-06-13 21:13:33 +01:00
mix
bfe150f249 Move update all temporary map animations to own function 2025-06-13 21:13:33 +01:00
mix
78c2b85b1d Rename MapAnimation namespace to MapAnimations 2025-06-13 21:13:33 +01:00
mix
d847c37fc8 Calculate visible animated tiles by tile position 2025-06-13 21:13:33 +01:00
mix
e464b2ebe7 Don't invalidate map animations for tiles that are not in view 2025-06-13 21:13:33 +01:00
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