From dae57fccf678b3eb2edc38e80c13186de8dd1045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Sun, 1 Feb 2026 16:17:17 +0100 Subject: [PATCH] Release v0.4.31 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Feature: [#25844] The sprite builder now also supports adding JSON-based palettes. - Improved: [#3788] Self-intersecting track designs can now be placed. - Improved: [#25719] The weather change dropdown now shows icons next to the weather types for easier selection. - Improved: [#25765] The ‘View options’ and ‘Special track elements’ dropdowns no longer need click-and-hold. - Improved: [#25858] macOS now supports the onboarding menu. - Improved: [#25882] Maze construction now auto-removes trees. - Improved: [objects#421] The vehicle tab of some rides now shows more of the vehicle. - Change: [#25018] Add upkeep cost to booster pieces. - Fix: [#4643, #25167] Many metal supports draw with a filled in top when they didn’t in vanilla, causing some slight misalignment and glitching. - Fix: [#15009] Landscaping tools do not display estimates when the game is paused (original bug). - Fix: [#18441] Replacing footpaths sometimes results in a spurious “Footpath in the way” error (original bug). - Fix: [#20620] In-game console caret does not update when pasting. - Fix: [#20652] Twister Roller Coaster design ‘u(0241)’ has no preview and cannot be built (bug in track design). - Fix: [#23859] Wrong banner text displayed after loading a different park. - Fix: [#25221] When trying to cancel game file discovery, the prompt reappears. - Fix: [#25703, #25889] Crash when scanning scenarios with packed objects in parallel. - Fix: [#25739] Game freezes when a tab in the New Ride window contains more than 384 items. - Fix: [#25745] Crash when a player connection is aborted early. - Fix: [#25775] Network download sizes are in bytes instead of the listed kibibytes. - Fix: [#25799] The animated options tab icon of the news window does not always redraw. - Fix: [#25850] Guests do not have their happiness penalised by low energy, high hunger, high thirst, high toilet. - Fix: [#25850] Ride nausea generation is different compared to vanilla. - Fix: [#25854] When a guest is at 0 happiness or energy, the game draws too big of a bar in the guest stats window. - Fix: [#25862] Diagonal and inclined brakes are not counted when calculating upkeep cost. - Fix: [#25873] Repainting a banner in OpenRCT2-specific colours results in an error message. - Fix: [#25879] Guest window viewport doesn’t follow vehicle when they board a ride. - Fix: [#25908] Crash from use-after-free in banner text formatting during multithreaded rendering. - Fix: [objects#419] Alignment of RCT2 red, yellow and green queue previews is off. - Fix: [objects#424] Jet Aeroplane decor has a hole in it. - Fix: [objects#425] Capacity of ‘Blob from outer space ride’ is incorrectly listed. --- .github/workflows/ci.yml | 2 +- debian/changelog | 33 +++++++++++++++++++ distribution/changelog.txt | 4 +-- .../linux/io.openrct2.openrct2.appdata.xml | 5 ++- distribution/macos/Info.plist | 2 +- src/openrct2-android/app/build.gradle | 4 +-- src/openrct2/Version.h | 2 +- src/openrct2/network/NetworkBase.cpp | 2 +- 8 files changed, 45 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c9a1134cac..e7a68e3d2c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ env: OPENRCT2_BUILD_SERVER: GitHub OPENRCT2_ORG_TOKEN: ${{ secrets.OPENRCT2_ORG_TOKEN }} BACKTRACE_IO_TOKEN: ${{ secrets.BACKTRACE_IO_TOKEN }} - OPENRCT2_VERSION: 0.4.30 + OPENRCT2_VERSION: 0.4.31 # https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value concurrency: diff --git a/debian/changelog b/debian/changelog index 4696ef7a1c..3de670c35b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,36 @@ +openrct2 (0.4.31-develop-1) unstable; urgency=medium + + * Feature: [#25844] The sprite builder now also supports adding JSON-based palettes. + * Improved: [#3788] Self-intersecting track designs can now be placed. + * Improved: [#25719] The weather change dropdown now shows icons next to the weather types for easier selection. + * Improved: [#25765] The ‘View options’ and ‘Special track elements’ dropdowns no longer need click-and-hold. + * Improved: [#25858] macOS now supports the onboarding menu. + * Improved: [#25882] Maze construction now auto-removes trees. + * Improved: [objects#421] The vehicle tab of some rides now shows more of the vehicle. + * Change: [#25018] Add upkeep cost to booster pieces. + * Fix: [#4643, #25167] Many metal supports draw with a filled in top when they didn’t in vanilla, causing some slight misalignment and glitching. + * Fix: [#15009] Landscaping tools do not display estimates when the game is paused (original bug). + * Fix: [#18441] Replacing footpaths sometimes results in a spurious “Footpath in the way” error (original bug). + * Fix: [#20620] In-game console caret does not update when pasting. + * Fix: [#20652] Twister Roller Coaster design ‘u(0241)’ has no preview and cannot be built (bug in track design). + * Fix: [#23859] Wrong banner text displayed after loading a different park. + * Fix: [#25221] When trying to cancel game file discovery, the prompt reappears. + * Fix: [#25703, #25889] Crash when scanning scenarios with packed objects in parallel. + * Fix: [#25739] Game freezes when a tab in the New Ride window contains more than 384 items. + * Fix: [#25745] Crash when a player connection is aborted early. + * Fix: [#25775] Network download sizes are in bytes instead of the listed kibibytes. + * Fix: [#25799] The animated options tab icon of the news window does not always redraw. + * Fix: [#25850] Guests do not have their happiness penalised by low energy, high hunger, high thirst, high toilet. + * Fix: [#25850] Ride nausea generation is different compared to vanilla. + * Fix: [#25854] When a guest is at 0 happiness or energy, the game draws too big of a bar in the guest stats window. + * Fix: [#25862] Diagonal and inclined brakes are not counted when calculating upkeep cost. + * Fix: [#25873] Repainting a banner in OpenRCT2-specific colours results in an error message. + * Fix: [#25879] Guest window viewport doesn’t follow vehicle when they board a ride. + * Fix: [#25908] Crash from use-after-free in banner text formatting during multithreaded rendering. + * Fix: [objects#419] Alignment of RCT2 red, yellow and green queue previews is off. + * Fix: [objects#424] Jet Aeroplane decor has a hole in it. + * Fix: [objects#425] Capacity of ‘Blob from outer space ride’ is incorrectly listed. + openrct2 (0.4.30-develop-1) unstable; urgency=medium * Improved: [#24912] Staff now use an appropriate standing animation while waiting at level crossings. diff --git a/distribution/changelog.txt b/distribution/changelog.txt index 07c2de744a..7f31b5814f 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -1,4 +1,4 @@ -0.4.31 (in development) +0.4.31 (2026-02-01) ------------------------------------------------------------------------ - Feature: [#25844] The sprite builder now also supports adding JSON-based palettes. - Improved: [#3788] Self-intersecting track designs can now be placed. @@ -26,7 +26,7 @@ - Fix: [#25862] Diagonal and inclined brakes are not counted when calculating upkeep cost. - Fix: [#25873] Repainting a banner in OpenRCT2-specific colours results in an error message. - Fix: [#25879] Guest window viewport doesn’t follow vehicle when they board a ride. -- Fix: [#25908] Crash from use-after-free in banner text formatting during multithreaded rendering. +- Fix: [#25908] Crash from use-after-free in banner text formatting during multithreaded rendering. - Fix: [objects#419] Alignment of RCT2 red, yellow and green queue previews is off. - Fix: [objects#424] Jet Aeroplane decor has a hole in it. - Fix: [objects#425] Capacity of ‘Blob from outer space ride’ is incorrectly listed. diff --git a/distribution/linux/io.openrct2.openrct2.appdata.xml b/distribution/linux/io.openrct2.openrct2.appdata.xml index de95e3054c..a4b29e607b 100644 --- a/distribution/linux/io.openrct2.openrct2.appdata.xml +++ b/distribution/linux/io.openrct2.openrct2.appdata.xml @@ -456,6 +456,9 @@ none + + https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.31 + https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.30 @@ -477,7 +480,7 @@ https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.24 - + https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.23 diff --git a/distribution/macos/Info.plist b/distribution/macos/Info.plist index bbc7d2d997..d55f1cf7c9 100644 --- a/distribution/macos/Info.plist +++ b/distribution/macos/Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.4.30 + 0.4.31 CFBundleSignature ORCT LSMinimumSystemVersion diff --git a/src/openrct2-android/app/build.gradle b/src/openrct2-android/app/build.gradle index 983de72df2..45160cf476 100644 --- a/src/openrct2-android/app/build.gradle +++ b/src/openrct2-android/app/build.gradle @@ -21,8 +21,8 @@ android { minSdkVersion 24 targetSdkVersion 36 - versionCode 17 - versionName '0.4.30' + versionCode 18 + versionName '0.4.31' externalNativeBuild { cmake { arguments '-DANDROID_STL=c++_shared', '-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON' diff --git a/src/openrct2/Version.h b/src/openrct2/Version.h index cb63bc4dd2..b57bfba641 100644 --- a/src/openrct2/Version.h +++ b/src/openrct2/Version.h @@ -12,7 +12,7 @@ #include #define OPENRCT2_NAME "OpenRCT2" -#define kOpenRCT2Version "0.4.30" +#define kOpenRCT2Version "0.4.31" #if defined(__amd64__) || defined(_M_AMD64) #define OPENRCT2_ARCHITECTURE "x86-64" diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index f32ab7084f..39c128f1ee 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -47,7 +47,7 @@ // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -constexpr uint8_t kStreamVersion = 2; +constexpr uint8_t kStreamVersion = 0; const std::string kStreamID = std::string(kOpenRCT2Version) + "-" + std::to_string(kStreamVersion);