30207 Commits

Author SHA1 Message Date
Michael Steenbeek f4f66c9b79 Make CLI exit code into strong enum (#26723) 2026-06-26 22:43:32 +02:00
Michael Steenbeek bc87826fbe Merge pull request #26717 from Gymnasiast/fix/g1-export
Bring G1 building more in line with vanilla
2026-06-26 22:42:51 +02:00
Daniel Rödl 4da7daa2f9 Fix OpenRCT2#7921: Search in user's wine path for RCT2 and RCT1 install files (#26292) 2026-06-25 20:41:25 +02:00
Michael Steenbeek 3ff49155f2 Merge pull request #26325 from MarcelVos96/resetStatsWhenNumLapsChanges
Add stats reset when lap count is forcibly changed & avoid unnecessary lap count resets
2026-06-24 16:44:50 +02:00
MarcelVos96 06a325e895 Don't reset lap count if changing train type, length. or direction of a single train 2026-06-24 16:30:57 +02:00
MarcelVos96 d30e0c5d83 Make ride stats reset when changing the number of trains changes the number of laps 2026-06-24 16:30:07 +02:00
Gymnasiast 51b7b6cc43 Fix RLE check in GfxDrawSpriteRawMaskedSoftware() 2026-06-24 13:59:48 +02:00
Gymnasiast ad4bbd02db Do not write two stray null bytes if we hit the last pixel of a compressed image 2026-06-24 12:34:53 +02:00
Gymnasiast 5bc368dfdb Set G1Flag::hasZoomSprite when a zoom offset has been specified in JSON 2026-06-24 12:34:53 +02:00
Gymnasiast 0833b474c4 Always set G1Flag::hasTransparency (bit 0) when importing an image
RCT1/2 always set this flag when an entry is an image of any sort (as opposed to a palette entry). It may be misnamed, as both regular and compressed/"RLE" images support transparency.

This modifies a single bit in the example.dat file, as expected. For convenience:

2c2
< 00000010: 0000 0000 0400 0000 0001 0501 0a01 0f01  ................
---
> 00000010: 0000 0000 0500 0000 0001 0501 0a01 0f01  ................
2026-06-24 12:34:04 +02:00
Gymnasiast 96fae1b2ae Allow images over 256×256 pixels
RCT1 uses these and RCT2 may too (specifically for the reverse freefall coaster), so this limit does not seem to be inherent to g1.
Maybe it could be removed outright.
2026-06-24 12:10:38 +02:00
Alex Parisi 99ea620836 Fix desync when placing tracks (#26605)
When any player in multiplayer places a track design, `TrackDesignAction::Execute` runs on every client which calls `UtilRand()`, resulting in every client getting a different colour since it's non-deterministic. Each client then commits its own local colour to `Vehicle::colours`. Since that field is part of the entity checksum, `NetworkBase::CheckSRAND` will flag a desync.

This PR adds a parameter to `RideGetUnusedPresetVehicleColour` to allow the caller to pass in a random value and make the choice of determinism. The UI call sites can still use `UtilRand`, but `TrackDesignAction` should be using `ScenarioRand`.
2026-06-24 09:39:00 +00:00
Gymnasiast b38b8505e1 Fix changelog entry 2026-06-24 11:10:20 +02:00
Michael Steenbeek a5a2da1f12 Update to objects release v1.7.10 (#26715) 2026-06-24 11:06:49 +02:00
Tulio Leao e226367de4 Merge pull request #26714 from tupaschoal/open_patch
Fix #26654: Allow .parkpatch files to set rides to open
2026-06-23 17:28:04 -03:00
OpenRCT2 git bot 6ce977cb87 Merge Localisation/master into OpenRCT2/develop 2026-06-23 05:18:30 +00:00
Tulio Leao b42d4a3942 Fix #26654: closed shops on scenario startup 2026-06-22 19:55:19 -03:00
Tulio Leao d1d3044dac Part of #26654: Allow .parkpatch files to set rides to open 2026-06-22 19:46:53 -03:00
mix 34df5c1001 Fix #24613, #26578: Incorrect sprites drawn or crash with invalid paths (#26600) 2026-06-22 18:26:32 +00:00
Harry Hopkinson 63fd3f9458 Fix ratingMultiplier spelling mistake (#26664) 2026-06-22 20:02:15 +02:00
Alex Parisi f4008a433a Fix DEBUG flag checks 2026-06-22 19:51:45 +02:00
OpenRCT2 git bot aab9944563 Merge Localisation/master into OpenRCT2/develop 2026-06-22 05:46:04 +00:00
Gymnasiast 8625ac2a24 Remove irrelevant changelog entry
[ci skip]
(Discussed with Aaron)
2026-06-21 18:21:00 +02:00
Gymnasiast 63fd423e63 Merge branch 'rename-opaque-flag-transparent' into develop 2026-06-21 17:54:41 +02:00
Harry Hopkinson 95df165f9b WALL_SCENERY_2_IS_OPAQUE flag denotes transparent wall object 2026-06-21 17:19:21 +02:00
Harry Hopkinson 7e01b1ec1e Remove redundant includes from openrct2/actions (#26699) 2026-06-19 11:03:19 +02:00
OpenRCT2 git bot 6df662bf1b Merge Localisation/master into OpenRCT2/develop 2026-06-19 05:40:49 +00:00
OpenRCT2 git bot 05a3a7b0ce Merge Localisation/master into OpenRCT2/develop 2026-06-17 05:36:26 +00:00
mrmbernardi a64f0eff6c Fix crash when ScPark::generateGuest fails to generate a guest (#26681) 2026-06-16 20:24:53 +02:00
OpenRCT2 git bot 321b715e21 Merge Localisation/master into OpenRCT2/develop 2026-06-16 05:47:26 +00:00
Aaron van Geffen ad24c5c17f Introduce SceneManager class (#26691) 2026-06-14 16:46:48 +00:00
Michał Janiszewski 193b2da77e Turn off optimizations for MSVC to fix miscompilation (#26678)
This adds a workaround for the MSVC bug reported here:
https://developercommunity.visualstudio.com/t/MSVC-amd64-O2-miscompiles-SDL_ttf-deriv/11104938

Fixes #26637
2026-06-14 18:45:12 +02:00
Alex Parisi fd34b5b556 Free buffer during reassignment (#26582) 2026-06-14 18:39:50 +02:00
Aaron van Geffen 068af83a31 Move EditorStep to its own header file (#26690) 2026-06-14 18:27:02 +02:00
Aaron van Geffen e4a705b4e8 Allow starting editor directly from command line (#26689) 2026-06-14 18:26:16 +02:00
MarcelVos96 45e30a559a Fix the boosts/penalties to excitement and nausea that air time provides (#26505)
* Fix air time calculations

* Bump kStreamVersion

* Update rating tests

* Update replay bundle
2026-06-11 09:27:23 +00:00
OpenRCT2 git bot 797f90cd01 Merge Localisation/master into OpenRCT2/develop 2026-06-11 05:31:38 +00:00
MarcelVos96 bf4810ea50 Fix where walls block the view of rides/scenery on the first tile next to the path (#26495) 2026-06-10 18:49:31 +00:00
MarcelVos96 86f282f7c0 Add cheat to disable grass growing (#26442) 2026-06-09 23:03:27 +02:00
tbarford d56e884c60 Add all new track pieces to the inverted roller coaster (#26308) 2026-06-07 13:14:55 +00:00
Michał Janiszewski eaf38d2129 Start v0.5.3 2026-06-07 12:55:11 +02:00
Michał Janiszewski 8664a608cd Merge branch 'master' into develop 2026-06-07 12:52:58 +02:00
Michał Janiszewski 7d2958ea63 Release v0.5.2
- Improved: [#26322] [Plugin] Add footpath flags to FootpathSurfaceObject in the plugin API.
- Improved: [#26566] Improve the performance of sorting sprites.
- Fix: [#26350] [Plugin] ListViews altered by plugins post their creation are not invalidated.
- Fix: [#26565] Game crashes when switching to another tab in the guest window.
- Fix: [#26583] The default tab is not highlighted when opening a ride window.
- Fix: [#26602] Crash when locating the nearest mechanic for a ride that has not previously been inspected.
- Fix: [#26615] Missing junction path tile in Build your own Six Flags Over Texas.
- Fix: [#26616] Fix gap in buyable land in Build your own Six Flags Magic Mountain.
- Fix: [#26624] Tile elements selected by clicking on them with the tile inspector open do not always redraw correctly.
- Fix: [#26634] Add missing park patch file for Build your own Six Flags Great Adventure.
v0.5.2
2026-06-07 12:17:24 +02:00
Michał Janiszewski e0b1e826f0 Merge branch 'develop' 2026-06-07 12:13:24 +02:00
Michał Janiszewski d35233a155 Update BACKTRACE_TOKEN for upcoming release 2026-06-07 12:11:01 +02:00
OpenRCT2 git bot 63e7dfcc65 Merge Localisation/master into OpenRCT2/develop 2026-06-07 05:29:57 +00:00
Tulio Leao 5afa4f6f44 Add missing [Plugin] labels to changelog (#26660) 2026-06-06 16:48:55 -03:00
Harry Hopkinson 5e7fd1840c Move raw constant in Paint.Balloon.cpp to SpriteIds.h (#26642) 2026-06-06 16:37:16 -03:00
Stephan Spengler bcdac632a4 Add footpath object flags to API (#26322)
* add footpath object flags to API

* Add changelog

---------

Co-authored-by: Tulio Leao <tupaschoal@gmail.com>
2026-06-06 16:31:03 -03:00
Xeonacid d8a6aab651 Fix build error on riscv64 (#26641)
Fixes:
In function ‘constexpr void std::_Construct(_Tp*, _Args&& ...) [with _Tp = unsigned char; _Args = {unsigned char}]’,
    inlined from ‘constexpr _ForwardIterator std::__do_uninit_copy(_InputIterator, _Sentinel, _ForwardIterator) [with _InputIterator = move_iterator<__gnu_cxx::__normal_iterator<unsigned char*, vector<unsigned char> > >; _Sentinel = move_iterator<__gnu_cxx::__normal_iterator<unsigned char*, vector<unsigned char> > >; _ForwardIterator = unsigned char*]’ at /usr/include/c++/16.1.1/bits/stl_uninitialized.h:165:17,
    inlined from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = move_iterator<__gnu_cxx::__normal_iterator<unsigned char*, vector<unsigned char> > >; _ForwardIterator = unsigned char*]’ at /usr/include/c++/16.1.1/bits/stl_uninitialized.h:324:30,
    inlined from ‘constexpr _ForwardIterator std::__uninitialized_copy_a(_InputIterator, _Sentinel, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = move_iterator<__gnu_cxx::__normal_iterator<unsigned char*, vector<unsigned char> > >; _Sentinel = move_iterator<__gnu_cxx::__normal_iterator<unsigned char*, vector<unsigned char> > >; _ForwardIterator = unsigned char*; _Tp = unsigned char]’ at /usr/include/c++/16.1.1/bits/stl_uninitialized.h:659:32,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_range_initialize_n(_Iterator, _Sentinel, size_type) [with _Iterator = std::move_iterator<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char> > >; _Sentinel = std::move_iterator<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char> > >; _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/16.1.1/bits/stl_vector.h:1979:37,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::vector(_InputIterator, _InputIterator, const allocator_type&) [with _InputIterator = std::move_iterator<__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char> > >; <template-parameter-2-2> = void; _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/16.1.1/bits/stl_vector.h:736:29,
    inlined from ‘static constexpr bool std::__shrink_to_fit_aux<_Tp, true>::_S_do_it(_Tp&) [with _Tp = std::vector<unsigned char>]’ at /usr/include/c++/16.1.1/bits/alloc_traits.h:1043:6,
    inlined from ‘constexpr bool std::vector<_Tp, _Alloc>::_M_shrink_to_fit() [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/16.1.1/bits/vector.tcc:924:56,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::shrink_to_fit() [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>]’ at /usr/include/c++/16.1.1/bits/stl_vector.h:1189:25,
    inlined from ‘void EditorObjectFlagsClear()’ at /build/openrct2/src/OpenRCT2-0.5.1/src/openrct2/EditorObjectSelectionSession.cpp:368:40,
    inlined from ‘void EditorObjectFlagsClear()’ at /build/openrct2/src/OpenRCT2-0.5.1/src/openrct2/EditorObjectSelectionSession.cpp:365:6:
/usr/include/c++/16.1.1/bits/stl_construct.h:133:7: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
  133 |       ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2026-06-06 15:31:52 -03:00