File openrct2.changes of Package openrct2

-------------------------------------------------------------------
Wed Feb 04 14:57:25 UTC 2026 - Björn Kettunen <bjorn.kettunen@thaodan.de>

- Build with discord-rpc enabled.
- Update dependencies
  * music 1.6.1
  * sound effects 1.0.6
  * objects 1.7.6
  * title sequences 0.4.26

- Update to version 0.4.31.32.a7fdbcd23:
  * Reduce duplication in scrolling text rendering (#25912)
  * Remove redundant negation in a few expressions (#25940)
  * Add silent to arguments when building sprite dats with sprite build cmd
  * Improve perf by remove reserves, copy to insert in SpriteFile::AddImage
  * Move some workflows to ubuntu-slim (#25939)
  * Move some CI jobs to ubuntu-slim (#25938)
  * Update GitHub Actions versions (#25936)
  * Add new .clang-tidy rules (#25923)
  * Update upload/download-artifact actions (#25922)
  * Remove deprecated C headers (#25921)
  * Fix #25911: Non-working screenshot URL in appdata
  * Merge Localisation/master into OpenRCT2/develop
  * Fix: Restore TrackElement forward declaration and fix kBannerBoundBoxes linkage
  * Fix compilation on Haiku
  * Re-enable multithreading on Haiku
  * Refactor: Remove unused PathElement forward declaration
  * Refactor: Move PaintSurface declaration to Paint.Surface.h
  * Refactor: Extract PaintBanner to Paint.Banner.h
  * Refactor: Extract PaintTrack to Paint.Track.h
  * Refactor: Extract PaintLargeScenery to Paint.LargeScenery.h
  * Refactor: Extract PaintWall to Paint.Wall.h
  * Refactor: Extract PaintSmallScenery to Paint.SmallScenery.h
  * Refactor: Extract PaintEntrance to Paint.Entrance.h
  * Start v0.4.32
  * Release v0.4.31
  * Fix #23859: Wrong banner text displayed after loading different park
  * Fix: Crash from use-after-free in banner text formatting during multithreaded rendering
  * Fix typo in changelog
  * Add #20652 to changelog
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #25889, #25703: Crash when scanning scenarios with packed objects (#25899)
  * Add missing changelog entries, fix up a few
  * Remove redundant typename keyword usage (#25901)
  * Update objects release to v1.7.6 (#25897)
  * Fix #25879: Guest window viewport doesn't follow vehicle when on ride (#25883)
  * Remove old HasFlag() function
  * Refactor RtdFlags into FlagHolder
  * Refactor ImportFlags into FlagHolder
  * Fix #25882: Maze construction does not auto-remove trees (#25886)
  * Fix #3788: Self-intersecting track designs cannot be placed (#25894)
  * Split one changelog entry into two
  * Clamp Guest fields
  * Clamp ParkData fields
  * Update BACKTRACE_TOKEN for upcoming release
  * Fix #25749: Windows release builds are not built with LTCG (#25895)
  * Merge Localisation/master into OpenRCT2/develop
  * Add small weather icons and tweak alignment
  * Fix #20620: Console caret does not update when pasting
  * Convert car entry flags into a FlagHolder (#25784)
  * Fix #25775: Network download sizes are not in the claimed KiB
  * Merge Localisation/master into OpenRCT2/develop
  * Fix weather dropdown item padding in enlarged UI
  * Change colour to a strong enum (#25873)
  * Merge Localisation/master into OpenRCT2/develop
  * Add "original bug" to issue #18441
  * Fix #18441: Spurious error when trying to replace footpath (#25880)
  * Fix #15009: Landscaping tools do not display estimates when paused (#25866)
  * Merge Localisation/master into OpenRCT2/develop
  * Extract TrackGetIsSheltered()
  * Extract kDynamicRideShelterRating constant
  * Rework palette information into palettes.dat (#25681)
  * Deduplicate water colour names
  * Replace kTextColour254 and kTextColour255 with COLOUR_NULL
  * Move left palette index constants out of Colour.h
  * Add "use bool literals" rule to .clang-tidy (#25842)
  * Fix: diagonal and inclined brakes not counted when calculating upkeep cost
  * Add running cost to boosters
  * Remove redundant namespaces qualifiers (#25837)
  * Fix minimum height of Zenity/Kdialog window to 350 pixels
  * Fix #25221: When trying to cancel game file discovery, the prompt reappears
  * Add quit button to onboarding options
  * Implement ShowMenuDialog on macOS
  * Merge Localisation/master into OpenRCT2/develop
  * Add Kate temporary files to .gitignore (#25856)
  * Fix #25854: Game draws too much bar at 0 happiness and energy (#25855)
  * Fix implementation mistake from #1644. Guest happiness calcs (#25850)
  * Move BlendColourMap to its own file
  * Name palette fields in Water object
  * Rename some palette indices (#25843)
  * Fix #23636: Mismatched entity count in save file (#25731)
  * Improve error messages, add changelog entry
  * Allow importing palettes in `sprite build`
  * Move importing JSON palettes to ImageImporter
  * Remove commented-out code from Themes.cpp
  * Move colour map to its own file
  * Remove redundant const qualifiers
  * Refactor maze import
  * Add missing copyright header to ColourPalette.h
  * Rename members of ColourShadeMap
  * Rename PaletteBGRA and its members
  * Merge iterator variable assignment and definition into one line
  * Simplify vertical tracked ride falling logic
  * Bring some variables to inner scope
  * Merge variable declarations and assignment into one line
  * Add missing include guards
  * Remove stray semicolons after declarations
  * Replace for-loops with while-loops
  * Fix block comment mistake
  * Remove redundant control flow statements
  * Remove stray semicolon
  * Use nested namespace syntax
  * Remove redundant void parameter list
  * Rename variables in ScObject.hpp (#25827)
  * Remove more redundant namespace qualifiers (#25828)
  * Add label configuration for plug-ins (#25824)
  * Remove top-level const qualifiers from function declarations (#25813)
  * Remove redundant namespace qualifiers (#25821)
  * Remove redundant const qualifier in constexpr assignments (#25822)
  * Fix #25167: Type A metal supports draw with cap if heightExtra is positive (#25823)
  * Fix #25745: Crash when a player connection is aborted early (#25811)
  * Remove redundant namespace qualifiers from miscellaneous files (#25816)
  * Use bool literals instead of constants (#25817)
  * Automatically apply basic pull request labels (#25770)
  * Untangle metal support repositioning (#25794)
  * Remove redundant namespace qualifiers from Vehicle.cpp (#25801)
  * Fix news window option tab not invalidating (#25799)
  * Refactor FootpathPaintInfo, create Paint.Path.h (#25796)
  * Refactor reading BGR values from g1 palette entries (#25778)
  * Rename members of FootpathSelection
  * Rename members of PathRailingsDescriptor
  * Rename members of PathSurfaceDescriptor
  * Rename members of RailingEntrySupportType
  * Move kScrollingModeNone to ScrollingText.h (#25797)
  * Fix PaletteIndex asserts (#25783)
  * Convert ride measurement flags into a FlagHolder (#25782)
  * Remove redundant namespace qualifiers from /paint directory (#25780)
  * Remove Drawing.h include from a few more places (#25779)
  * Remove redundant namespace qualifiers from /actions folder (#25773)
  * Rename Vehicle.VirginaReel.cpp to Vehicle.VirginiaReel.cpp (#25781)
  * Pass GameState ref down to subfunctions in game actions (#25777)
  * Create RideInvalidateFlag FlagHolder (#25722)
  * Include string_view in ObjectManager.h (#25774)
  * Remove redundant static_casts in miscellaneous files (#25772)
  * Make namespace qualifier explicit
  * Remove redundant namespace qualifiers from tests project
  * Rename Sub6A3F61PathAddition() to paintPathAddition()
  * Name Sub6E1F34*, remove redundant window checks
  * Make PaletteIndex into a strong enum and move into namespace
  * Refactor Map window palette index handling
  * Rename missed occurrences of DrawPixelInfo/DPI to RenderTarget/RT (#25768)
  * Remove redundant qualifiers from paint code (#25769)
  * Add "StayOpen" flag to special track parts dropdown (#25765)
  * Remove superfluous includes from /test/tests folder (#25766)
  * Pass PaletteIndex to Rectangle::fill() and IDrawingContext::FillRect()
  * Pass FilterPaletteID to GetPaletteG1Index() and GetPaletteMapForColour()
  * Make InputFlag a strong enum
  * Make CarSpriteFlag a strong enum
  * Convert TerrainSurfaceFlags into a FlagHolder
  * Remove unused includes from /openrct2-win folder
  * Reduce dependencies for Ride.h (#25757)
  * Remove unused includes in miscellaneous files (#25707)
  * Remove unused include from /openrct2-cli folder
  * Rework drawing header includes (#25744)
  * Rework object header includes (#25742)
  * Preliminary Haiku OS support (#25659)
  * Update copyright years to 2026 (#25741)
  * Fix #25739: Freezes when exceeding 384 items per tab in New Ride (#25740)
  * Start v0.4.31
  * Release v0.4.30
  * Update BACKTRACE_TOKEN for v0.4.30 release
  * Add sprites to weather cheat dropdown
  * Allow cheated umbrellas to use the full colour palette again (#25717)
  * Fix #25469: Assertion when drawing in ui.imageManager.draw callback (#25716)
  * Prevent _preloaderScene nullptr deref (#25710)
  * Rename RCT1G1Element and its fields
  * Rename RCTG1Header and its fields
  * Create strong enum+Flagholder for G1 flags
  * Include <optional> header in Paint.h (#25711)
  * Rename G1Element members, add unions for palette entries
  * Fix #11617: Zero clearance ghost track design paths break connections (#25685)
  * Fix #25187: On-ride photo platform does not render as ghost when placing track design (#25680)
  * Unwrangle Drawing.h and Paint.h (#25706)
  * Change MechanicStatus to a strong enum (#25704)
  * Turn TrackElementFlag into strong enum and flagholder
  * Clamp inspection interval when importing from S4/S6
  * Update replays
  * Pass inspection interval as a parameter to game actions
  * Change inspection interval to use enum class
  * Move constants in Track.h closer to each other
  * Rename DEFAULT_SEAT_ROTATION to kDefaultSeatRotation
  * Rename MAX_TRACK_HEIGHT to kMaximumTrackHeight
  * Rename members of TrackPitch
  * Rename members of TrackRoll
  * Create enum class for MazeBuildMode
  * Rename members of TrackCurve
  * Rename members of TrackElemType
  * Remove redundant parentheses around FlagHolder method invocations (#25695)
  * Only add invisible entrances to S4/S6 if they were actually used (#25682)
  * Remove redundant parenthesis around negated .has FlagHolder checks
  * Move ZoomLevel::min implementation to ZoomLevel.cpp (#25689)
  * Rename ViewportInitAll to ContextResetSubsystems (#25690)
  * Merge Localisation/master into OpenRCT2/develop
  * Replace if chain with else ifs
  * Close #25244: Unify kImageIndexUndefined and kSpriteIdNull (#25683)
  * Fix inclusion of "thirdparty" openrct2-cli for Android
  * Create CLI command to trigger Steam download
  * Create function to trigger Steam download
  * Move RCT2 Steam path retrieval to its own function
  * Refactor Steam path handling
  * Close #25515: create a specific permission for the path drag tool (#25675)
  * Fix #25660: Ride entrances are sometimes visible in ‘Highlight path issues’ mode (#25679)
  * Refactor shop item handling with switch statement
  * Send "scenery changed" intent after unloading an object from a script
  * Fix #25639: Scenery window crashes when a no longer present object is still selected
  * Convert height markers field to sequence flag (#25501)
  * Use TextColours in the text drawing structs
  * Moving scrolling text handling into its own namespace, fix usage of colour_t
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Add changelog entry for improved sprite build performance
  * Use hash map of images in cli sprite build command instead of reload
  * Move import out of cli SpriteImageImport and return image file instead
  * Update contributors.md
  * Merge Localisation/master into OpenRCT2/develop
  * Remove now defunct OpenBSD ports link in README (#25653)
  * Merge Localisation/master into OpenRCT2/develop
  * Update changelog.txt
  * Only log top level game actions and filter ghost ones
  * Merge Localisation/master into OpenRCT2/develop
  * Rename InputFlag::unk6 to allowRightMouseRemoval
  * Fix patrol area tool allowing right click removal of paths and scenery
  * Fix land purchase selection grid colour not being white (#25642)
  * Merge Localisation/master into OpenRCT2/develop
  * Do not allow guests to slide down the Spiral Slide if it’s broken (#25403)
  * Make getEntranceConnectionSides() constexpr
  * Fix missed occurrences
  * Rename SequenceFlag flags again
  * Convert flags field to FlagHolder
  * Rename sequence flags
  * Fix return value of Widget::height()
  * Fix cramped MacOS default window settings
  * Categorise toilet income as shop sales instead of ride tickets
  * Add files created during testing to .gitignore
  * Rename members of Vehicle::Type
  * Rename VehicleTrackDirectionMask and VehicleTrackTypeMask
  * Rename members of VehicleInfo
  * Rename members of GForces
  * Rename members of Vehicle::Status
  * Remove unnecessary includes from Vehicle.h
  * Rename members of GameActions::Result
  * Rename members of GameActions::Status
  * Rename ByteAlignedBitSize to kByteAlignedBitSize
  * Fix typo in ‘remainder’
  * Add support for Polish Złoty (PLN)
  * Fix missed 'using' in Finance.h
  * Reorganise VehicleFlags comments
  * Refactor GAME_COMMAND_FLAG_* to enum+FlagHolder
  * Make renewing a ride also reset its downtime
  * Fix #25628: AVX2 and SSE4 availability not detected correctly
  * Rename StoppedOnLift to StoppedBySafetyCutOut
  * Show error message when issuing replay_start with a nonexistent file
  * Implement Gymnasiast's suggestion
  * Update network version
  * Add changelog entry
  * Make crossing-related Peep methods protected
  * Check if guest action is interruptable
  * Move WaitingAtCrossing logic to peep.cpp
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #9895: standup coaster gets incorrect intensity boost from synchronisation
  * Refactor the network code also change protocol (#25575)
  * Update changelog.txt
  * Update changelog.txt
  * Update changelog.txt
  * Update network version
  * If the master server vanishes make sure to register again, cleanup (#25588)
  * Fix #25592: Some water rides have wrong breakdowns
  * Merge Localisation/master into OpenRCT2/develop
  * Make ClearingFunction a reference, rather than a pointer
  * Make `MapPlaceClearFunc()` return bool, fix name of CLEAR_FUNC
  * Create `landSlopeFitsUnderPath()` function
  * Create `landSlopeFitsUnderTrack()` function
  * Update changelog.txt
  * Fix #25571: Potential crash due to drawing a Crooked House ride
  * Make the progress bar work with large numbers
  * Fix #25552: Clear Scenery does not show an error message about insufficient money if cash is negative
  * Remove check if Guest/Staff is deleted, this is handled by EntityList
  * Fix #22484: Lingering ghost entrance after placing park entrance
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #24952: Duplicate track designs when running via Steam without having RCT1 linked
  * Make the pressed swatch sprite more pronounced
  * Fix chairlift station end tunnels not drawing at certain angles
  * Close #25530: Allow cancelling wall drag without closing Scenery window (#25564)
  * Update badge links in README for releases and commits (#25550)
  * Merge Localisation/master into OpenRCT2/develop
  * Rename OpenRCT2::MapSelection functions to lowerCamelCase
  * Add changelog entry for map selection grid invalidation improvements
  * Prevent large scenery selected tiles invalidating every frame
  * Invalidate map selection if selection type was changed
  * Encapsulate selected tiles and invalidate when changed
  * Invalidate map selection region and arrow only if changed
  * Remove manual map selection invalidation calls
  * Fix track construction arrow position when removing track pieces
  * Remove unnecessary type specifiers from AddClamp calls
  * Start 0.4.30
  * Release v0.4.29
  * Update backtrace token
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * GCC16 fixes (Missing #include <cstdint>) (#25533)
  * Allow dragging lines of walls
  * Fix #25028: Stalls can only use 1 colour preset
  * Fix crackling when resampling audio
  * Fix virtual floor invalidating incorrectly if expanded on x and y axes
  * Rename byteRate to outputByteRate
  * Rename _format to _outputFormat
  * Replace reinterpret_cast with static_cast
  * Fix UB for empty string_views
  * Merge Localisation/master into OpenRCT2/develop
  * Increase maximum size of the New Ride window further
  * Remove hardcoded ride type IDs in ride type dropdown
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #25454: Pathing Tool Closes When Land Tool Opens
  * Move flat ride animation to VehicleData
  * Merge Localisation/master into OpenRCT2/develop
  * Update contributors.md
  * Fix go karts steep to flat not drawing correctly in flat side tunnel
  * Fix headless mode crash (#25488)
  * Allow resizing the New Ride window
  * Fix openrct2.d.ts Socket.on type (#25491)
  * Update expected ride ratings in test data for LIM Launched changes
  * Update objects to v1.7.4
  * Merge Localisation/master into OpenRCT2/develop
  * Capture track location for callback by value (#25455)
  * Fix track design mini preview enlarged UI position
  * Fix return value of Widget::width()
  * Fix paths in track design previews not being connected correctly
  * Bump network version
  * Fix #6228: Track design queue connections not preserved when built
  * Fix Windows build; use WIN32_LEAN_AND_MEAN in more places
  * Fix RCT1/2 install confusion when both are present
  * Update contributors.md
  * Add #25426 to changelog
  * Rename gPlacingTrackDesign to _placingTrackDesign
  * Bump network version
  * Add changelog for raised track design path connection fix
  * Prevent track design ghost add/delete when shift height is invalid
  * Fix track design paths breaking if ghost is removed after placing
  * Merge Localisation/master into OpenRCT2/develop
  * Move ColourFlags/ColourWithFlags to own compilation units
  * Create TextDrawFlag
  * Use ColourFlags in TextDrawInfo
  * Use FlagHolder in ColourWithFlags
  * Add with(), without() methods to FlagHolder
  * Unwrap always-true if
  * Replace darkness flags with TextDarkness enum
  * Create Drawing.String.h
  * Update members of FontStyle
  * Update members of TextAlignment
  * Update members of TextUnderline
  * Update members of TextDarkness
  * Update fields of TextDrawInfo
  * Fix #14365: Previews broken for track designs with scenery below track
  * Fix dropdown tooltips stuck open if mouse over empty space
  * Start v0.4.29
  * Release v0.4.28
  * Update BACKTRACE_TOKEN in Crash.cpp for upcoming release
  * Fix #25437: no mouse over highlight on new ride window previews
  * Merge Localisation/master into OpenRCT2/develop
  * Add blocked segments to track sequence descriptors
  * Add large colour swatches for enlarged UI
  * Update process execution flow for Linux (#25206)
  * Fix claxon audio bug on crossings that span multiple tiles
  * Add loadImages parameter to LoadTempObject()
  * Fix #25406: Crash while building track designs repository
  * Merge Localisation/master into OpenRCT2/develop
  * Remove guarded assertion. (#25420)
  * Merge Localisation/master into OpenRCT2/develop
  * Align Staff viewport resizing with the Guest window (#25072)
  * Slightly refactor and document Spiral Slide code
  * Close #21375: extend  to allow loading JSON objects
  * Unwrap long if
  * Add method to allow object loading by ObjectRepositoryItem
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #25410: Guest flags (e.g. tracking) not imported from RCT1
  * Remove unnecessary include
  * Fix #20198: Guest inventory from RCT1 base game saves is not imported
  * Fix temperature display (#25408)
  * Use proper type name
  * Refactor GetRideNaming(), add getTypeNaming() to Ride
  * Add ride type filter to Ride List window
  * Rename Rect namespace to Rectangle
  * Replace remaining rectangle flags with Rect::FillMode enum
  * Replace INSET_RECT_FLAG_FILL_MID_LIGHT with Rect::FillBrightness enum
  * Move rectangle drawing into its own namespace
  * Move rectangle drawing to Rect.{cpp,h}
  * Create border style enum for GfxFillRectInset
  * Set slide as not in use when using cheat to remove guests
  * Fix mazes able to be built 2 units above support limits
  * Use second colour of bottom toolbar for news buttons
  * Introduce WidgetType::hiddenButton
  * Add theme features to draw border around image buttons
  * Merge Localisation/master into OpenRCT2/develop
  * S4: Correctly import supports on ground paths
  * Remove mapping for S4 footpath railings
  * Use getters for all VehicleGeometry tables
  * fix formatting
  * move doppler and crash direction arrays
  * rename pitch direction vector and move roll component array
  * use getter for pitch components
  * combine horizontal and vertical arrays into one
  * move horizontal and vertical arrays
  * replace AccelerationFromPitch with getter
  * move AccelerationFromPitch
  * move array unk9A36C4 to kFreeroamVehicleMovementData
  * use getter for subposition translation distance
  * add getter for SubpositionTranslationDistance
  * move SubpositionTranslationDistance to VehicleGeometry
  * add VehicleGeometry files
  * Add option to command line screenshot to draw debug segment heights
  * Fix lay down roller coaster left corkscrew supports wrong at one angle
  * Fix: Shortcut Keys window uses wrong colours for separators, scrollbars and buttons
  * Fix: clicking an unsuitable piece of land in footpath drag mode will place a piece anyway
  * Fix #25359: No preview when hovering on sloped land in path drag mode
  * Fix #25375: SHIFT placement no longer works on singular path tool
  * Fix land tool clearance checks underneath maze track pieces
  * Fix #25376: Hovering singular path tool will remove real path above it
  * Fix stack corruption when footpath dragging
  * Merge Localisation/master into OpenRCT2/develop
  * Remove now-unused INSET_RECT_FLAG_FILL_GREY
  * Use constant instead of hardcoded number
  * Fill scrollbar gap in news window if no scrollbar is visible
  * Allow theming news item background
  * Replace remaining defines in Theme.cpp
  * Remove COLOURS_RCT1 define
  * Use C++ arrays instead of C ones
  * Rename unused defines in Theme.cpp
  * Rename constants in Theme.cpp
  * Correct indentation of Theme.cpp
  * Remove remnants of scrolling text disclaimer
  * Fix: scrolling intro cannot be skipped using a mouse click
  * Fix: When skipping scrolling intro, the screen does not get cleared properly
  * Fix: scrolling intro background switches colour halfway through
  * Fix corkscrew and lim launched quarter loop tunnels being too high
  * Rewrite GetNameAndPrice using templated subfunction
  * Inline single use of namespace Numerics
  * Fix Wooden RC small banked turns blocking more supports than RCT2
  * Split onToolUpdate function into smaller functions
  * Split onToolDown function into smaller functions
  * Scenery window: remove indirection from tool functions
  * Fix hybrid coaster diag brakes not blocking supports consistently
  * Add changelog entry for fixing go karts turns blocked segments
  * Fix and improve go karts small sloped turns blocked segments
  * Change go kart medium turn blocked segments to wide segments
  * Improve blocked segments for go karts small turns
  * Fix stand up coaster left corkscrew not blocking supports correctly
  * Fix assert when opening Six Flags Holland
  * Fix mine train coaster flat to steep track not blocking all supports
  * Add footpath dragging tool
  * Pass the actual parameter down
  * Use primitive for loop for window iterations, iterators can invalidate
  * Fix #20486: Multiplayer desync when placing track designs without any scenery. (#25337)
  * Fix changelog order
  * Bump network version
  * Fix comments in Banner.cpp
  * Fix #25272: Truncated text in Banner window text colour dropdown
  * Rename swing flags
  * Rename rotation consts and flags
  * Replace checkerboard -> chequerboard (#25346)
  * Merge Localisation/master into OpenRCT2/develop
  * Replace direct RIDE_TYPE_COMPACT_INVERTED_COASTER check with RtdFlag
  * Replace direct RIDE_TYPE_LOOPING_ROLLER_COASTER check with RtdFlag
  * Replace direct RIDE_TYPE_CHAIRLIFT check with RtdFlag
  * Replace direct RIDE_TYPE_DODGEMS check with RtdFlag
  * Replace direct RIDE_TYPE_BOAT_HIRE check with SpecialType
  * Replace direct RIDE_TYPE_SPACE_RINGS check with SpecialType
  * Replace direct RIDE_TYPE_MOTION_SIMULATOR check with SpecialType
  * Replace direct RIDE_TYPE_ENTERPRISE check with SpecialType
  * Rename inverter ship main support vars and values
  * Rename TrackPaint.h variables and values
  * Clang formatting fix
  * Fix missing tunnel at end of go-karts medium right gentle sloped turn (#25342)
  * Remove stray change
  * Small codestyle fixes
  * Use SlopePitch for _footpathConstructSlope
  * Create SlopePitch
  * Create struct for footpath slope
  * Add up25even wooden support transition type
  * Make rest of WoodenCurveSupportImageIds comments consistent
  * Rename long flat to steep wooden support sprite ids
  * Move wooden truss flat to steep sprites to sub folder
  * en-GB: Capitalise film names
  * Fix some scenario path errors
  * Changelog: fix entry for #25328
  * Use extraSupportRotation in wooden DrawSupportForSequence functions
  * Fix BPB spiral slide entrance/exit (#25328)
  * Merge Localisation/master into OpenRCT2/develop
  * MapRange: do not inherit from RectRange
  * Rename members of ObjectStringID
  * Rename members of SourceKind
  * Rename members of PathAdditionDrawType
  * Rename members of ObjectError
  * Rename members of ObjectSourceGame
  * Rename members of Network::Permission
  * Rename members of ResearchCategory
  * Rename members of Research::EntryType
  * Rename members of AwardType
  * Rename members of RCT2LanguageId
  * Rename members of FormatToken
  * Rename members of CurrencyAffix
  * Rename members of CurrencyType
  * Rename field of all config categories
  * Rename members of RCT1::PeepAnimationGroup
  * Rename members of RCT1::BannerType
  * Rename members of RCT1::VehicleType
  * Rename members of RCT1::RideType
  * Rename members of RCT2::OriginalRideClass
  * Rename members of RCT2::StaffMode
  * Rename members of RCT2::EntityListId
  * Rename members of RCT12PeepAnimationGroup
  * Rename members of RCT12PeepType
  * Rename members of RCT12MiscEntityType
  * Rename members of RCT12EntityIdentifier
  * Rename members of RCT12EntityLinkListOffset
  * Rename members of RCT12::TrackElemType
  * Rename members of RCT12TileElementType
  * Merge Localisation/master into OpenRCT2/develop
  * Do force close in RideClearForConstruction instead, to cover all cases
  * Force close simulating rides when changing ride mode
  * Also catch TrackRemoveAction case
  * Rename members of ShopItem
  * Rename members of Litter::Type
  * Rename members of EntityType
  * Rename members of StaffType
  * Rename members of PeepAnimationGroup
  * Rename members of PeepAnimationType
  * Rename members of PeepActionType
  * Rename members of PeepUsingBinSubState
  * Rename members of PeepRideSubState
  * Rename members of PeepSittingSubState
  * Rename members of PeepState
  * Merge Localisation/master into OpenRCT2/develop
  * Rename fields of PeepAnimation
  * Rename fields of SpriteBounds
  * Rename members of AnimationPeepType
  * Make peeps not stop on level crossings (#25089)
  * Fix mine train coaster left large helix drawing incorrect sprites
  * Fix merge conflict
  * Start v0.4.28
  * Release v0.4.27
  * Update BACKTRACE_TOKEN in Crash.cpp for upcoming release
  * Merge Localisation/master into OpenRCT2/develop
  * Add force redraw debug paint option
  * Correct changelog mistake
  * Make thundersnow less common in blizzards
  * Make the LIM Launched Coaster's operating mode default to powered launch without passing station
  * Rename members of ShortcutManager
  * Rename members of RegisteredShortcut
  * Rename members of ShortcutInput
  * Rename members of MouseState
  * Rename methods of InputManager
  * Rename members of InputEvent
  * Rename members of InputEventState
  * Rename members of InputDeviceKind
  * Remove unused kMaxDeviceNameSize and kMaxDefaultMusic
  * Rename members of SoundId
  * Rename members of VehicleSoundParams
  * Rename members of VehicleSound
  * Rename members of Sound
  * Change CheatType to lowerCamelCase
  * Fix: Log Flume lift sound does not loop
  * JobPool: Simplify lock guard objects (#25281)
  * Changelog: update entry for #25201
  * Parsing floats/doubles currently unsupported
  * Use the parse functions, adjust code to account for the split change
  * Rename parse to tryParse, add throwing version, return views for split
  * Add tests for String::parse
  * Rename String::Parse to String::parse, use from_chars instead
  * Cleanup String::split
  * Fix multithreaded access to additional crash files (#25271)
  * Don't use the variable after it is moved
  * Update title sequence release dependency (#25274)
  * Update changelog.txt
  * Fix logicalCmp not sorting in natural order, refactor the entire thing
  * Make unknown satisfaction go at the bottom when sorted by highest
  * Make unknown popularity go at the bottom when sorted by highest
  * Fix #25201: Unstable sorting of the ride list
  * Fix chance of thunder effects being lower than vanilla
  * Split off WindowFootpathUpdateModifierKeyState to its own function
  * Revert crooked house & circus default prices to vanilla values
  * Merge Localisation/master into OpenRCT2/develop
  * Rename sound_vector_factor to dopplerShift
  * Make frozen guests no longer finish food or drinks (#25251)
  * Split CLI commands into their own files (#25241)
  * Fix missing word in changelog
  * Change FilterPaletteID to lowerCamelCase
  * Update kTranslucentWindowPalettes name, replace defines
  * Make S4Importer::CorrectRCT1ParkValue independent of global game state (#25178)
  * Pass car by reference
  * Convert legacy sprite groups to FlagHolder
  * Fix #25207: No switch to block sectioned mode after building one on the LIM LRC
  * Include crashing scenario in breakpad upload (#25204)
  * Remove repository from IReadObjectContext, ObjectFileIndex and helper functions
  * Do not read from repository when loading objects
  * Fix #24998: Some custom small scenery objects do not load
  * Update default permissions for pull requests (#25224)
  * Change "sprite exportalldat" into "sprite exportobject", take a filename instead of an already loaded DAT
  * Create function to create object from file
  * Scripting: order available costumes array by display name (#25228)
  * Add missing getCostumeStrings to openrct2.d.ts (#25227)
  * Update name in contributors.md
  * Check if we're in shop tab before drawing track design info
  * Change WindowFlag to strong enum
  * Don't print the trailing comma in sprite exportalldat JSON output
  * Use regular interval for swing sprite threshold (#25171)
  * Skip drawing accessories whilst peep is clapping
  * Add information about run-clang-format licence
  * Mark git directory as safe for formatting job
  * Format files in-place so the changes can be viewed with `git diff`
  * Update CI images to 24
  * Update run-clang-format.py to 39081c9c42768ab5e8321127a7494ad1647c6a2f
  * Pass ParkData& to scenario objective checks (#25209)
  * Fix bugged states involving simulating with block sections
  * Scenery window: increase minimum height
  * Rename validate_global_widx to VALIDATE_GLOBAL_WIDX
  * Make WindowView into strong enum
  * Turn WindowDetail into strong enum
  * Change WindowClass members to use lowerCamelCase
  * Rename g_window_list to gWindowList
  * Allow shifting track designs underground
  * Change window functions to use lowerCamelCase
  * Rename Window fields
  * Replace RCT_WINDOW_{RIGHT,BOTTOM} defines
  * Rename rct_windownumber to WindowNumber
  * Rename member of WidgetIdentifier and WidgetRef
  * Rename local variables like ‘pressedWidgets’ in anticipation of field renames
  * Rename centre_2d_coordinates to centre2dCoordinates
  * Make ViewportCreate take a reference to a window
  * Rename g_music_tracking_viewport to gMusicTrackingViewport
  * Change code style of enums in Viewport.h
  * Prevent PRs marked "on hold" from going stale (#25188)
  * Fix hybrid coaster diag flat support blocks and clearance height
  * Fix checking incorrect flags field when determining number of sprites of legacy vehicles
  * Don't set rightMousePressed flag in InputViewportDragBegin (#25186)
  * Amend changelog, bump network and park file versions
  * Use correct hash
  * Update replays
  * Restore maximum ride price algo to vanilla
  * Add isEntertainer method to Staff class, small cleanup
  * Rename InputFlags::unk{4,5} to {left,right}MousePressed
  * Fix LIM launched inline twists general support heights
  * Create FootpathGetPlacementFromScreenCoords()
  * Move WallInTheWay() to Wall.{cpp,h}
  * Move FootpathGetDefaultSurface() into window
  * Move two footpath globals into the window
  * Remove unused gFootpathSelectedId
  * Pass entrance path type to game action
  * Refactor footpath placement functions
  * Fix Junior RC flat to steep general support heights different to RCT1
  * Merge Localisation/master into OpenRCT2/develop
  * Fix go karts steep to flat general support heights
  * Move command line units into OpenRCT2 namespace
  * Park: pass ParkData ref directly to Park::Update
  * Park: distinguish between CalculateParkSize and Park::UpdateSize
  * Move Guest specific ThrowUp logic to Guest.cpp
  * Move Context fully into OpenRCT2 namespace; types into Input.h
  * No need to double check if its Guest or Staff
  * Remove redundant cast
  * Reduce scope of some variables
  * Move game tick time constants from Context.h to Game.h
  * Move Resolution struct from Context to UiContext
  * Add a cast method for entities, sometimes we know the type
  * Finance: remove pre-gamestate accessor functions
  * Fix vehicles visually glitching on diagonal steep slopes
  * Fix diag brakes general support height of junior, flying, lay down RCs
  * Rename local variable spr to entity
  * Move localisation units into OpenRCT2 namespace
  * Fix log flume steep general support heights
  * Turn MapSelectType into enum class
  * Turn MapSelectFlags into FlagHolder
  * RideManager: use explicit game state rather than using implicit global
  * Park: pass ParkData& and GameState_t& refs down
  * ScenarioObjective: pass GameState_t& down to check functions
  * Park: remove unused forward declarations
  * Award: pass GameState_t down to checks; use RideManager directly
  * Make PathConstructionMode into an enum class
  * Fix reverse freefall photo using the wrong track sprite
  * Change land tool to account for sloped track and paths
  * Rename tunnel door types and remove unused entries
  * Fix #25132: crash when trying to use simulate on incomplete ride (#25133)
  * Use strong types for VehiclePitch and VehicleRoll
  * Skip stripping of Linux binaries (#25037)
  * Update AppImage metadata to rDNS
  * Pass game state ref as parameter to game actions (#25065)
  * Add variable for number of spin frames
  * Change some fields related to the spiral slide
  * Separate flat ride and tracked ride users of pitch and roll fields
  * Use `set -x`
  * Rename bank_rotation to roll, Pitch to pitch
  * Add libzstd-dev to Build-Depends for debian (#25116)
  * Use libraries v41 (#25087)
  * Replace duplicate MapIsLocationAtEdge function with MapIsEdge (#25107)
  * Merge pull request #25109 from matheusvb3/clean-cheats
  * Start v0.4.27
  * Release v0.4.26
  * Rework ServerEvent, PlayerFlags, TickFlags
  * Drop 'Network' prefix from more classes as suggested
  * Drop 'Network' from namespaced network constants
  * Changelog: fix entry about game speeds
  * Rework Map.h includes (remove transitive header includes)
  * Move CoordsXYE to Location.hpp
  * Split off MapSelection.h from Map.h
  * Update BACKTRACE_TOKEN in Crash.cpp for upcoming release
  * Split off MapLimits.h from Map.h
  * Fix width calculation
  * Apply changes to STR_1156/7 to all languages
  * Small cleanup
  * Change text field to a char array
  * Remove ‘format’ and ‘args’ altogether
  * Revert "Fix #18048: Play music from all ride's stations (#24722)" (#25097)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix for Attempt to decrement guests in park and guests heading for park below zero.
  * Make guests in mazes not jump during heavy snow or blizzard (#25024)
  * Fix for Attempt to decrement guests in park and guests heading for park below zero. #21172
  * Fix #25080: Missing water edges in certain land slope configurations
  * Fix dropdown separator fallback code
  * Remove Network function name prefixes given namespace qualifiers
  * Remove unnecessary OpenRCT2 qualifiers
  * Move network units to OpenRCT2::Network namespace
  * Rework EntityRegistry into class
  * Fix Hybrid Coaster quarter loops drawing over land edges and walls
  * Fix glitch and crash panning viewport partially outside game window (#25054)
  * Allow disabling of REPL (#25071)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix check in Peep::IsOnLevelCrossing() (#25062)
  * Add #9890 to changelog
  * Add missing range check
  * Prevent progress bar from flickering during map download (#25067)
  * Improve visual of Rides window
  * Update official website links
  * Fix #18714: Allow block-sectioned rides to simulate with incomplete circuit (#25034)
  * Fix incorrect synchronisation reporting number of processed objects (#25043)
  * Add reference to plug-ins to README (#25048)
  * Fix Hybrid Coaster large banked sloped turn to orth support rotation (#25064)
  * Move ClearAction, GameAction, ScenarioSetSettingAction into GameActions (#25045)
  * Add Go Karts variant to the progress window (#25057)
  * Fix spelling of ‘separate’ and ‘separator’
  * Move entity storage back into EntityRegistry unit
  * Fix extra viewport zoom buttons not centred on middle of viewport
  * Pass GameState on when importing entities from save files
  * Set viewport pos on zoom to avoid unnecessary draw and shift
  * Move RideSetStatus, RideSetVehicle into GameActions namespace
  * Move RideEntranceExit{Place/Remove}/FreezeRating/SetAppearance/SetColourScheme
  * Move RideSetName/Price/Setting actions into GameActions namespace
  * Remove unused function WindowViewportCentreTileAroundCursor
  * Remove unused function WindowViewportGetMapCoordsByCursor
  * Calculate zoom to cursor based on mouse coordinates
  * Merge Localisation/master into OpenRCT2/develop
  * Reduce includes for S4Importer and S6Importer
  * Move EntityList and EntityRegistry into OpenRCT2 namespace (#25039)
  * Add 'const utf8*' to the args type union
  * Move RideCreateAction, RideDemolishAction into GameActions namespace
  * Move Pause, PeepSpawn, Player, TileModify game actions to GameActions namespace
  * Move Track game actions to GameActions namespace
  * Move LoadOrQuit, Map, Maze, Network game actions
  * Move Park game actions to GameActions namespace
  * Move Staff game actions into GameActions namespace
  * Finish land and water game commands
  * Move scenery game actions into GameActions namespace
  * Move Guest and Land game actions into GameActions namespace
  * Move Footpath game actions into GameActions namespace
  * Rework more game actions into GameActions namespace
  * Use macos-15-built libraries v40 (#24939)
  * Use ParkData refs in more places (#25035)
  * Start moving game actions into GameActions namespace
  * Fix formatting
  * Create PlainMenuLabel overload for C strings
  * Create PlainMenuLabel constructor
  * Create ImageItem constructor, add tooltips to land styles
  * Create MenuLabel overload for C strings
  * Create ToggleOption and Separator constructors
  * Create MenuLabel constructor
  * Fold tooltips and images into dropdown items
  * Replace dropdown disabled/checked functions
  * Merge Localisation/master into OpenRCT2/develop
  * Create struct for all dropdown-related globals (#25023)
  * Drop unused forward declarations from RCT2.h
  * Update crediting of translators (#25022)
  * Improve string 5862
  * Move two legacy enums to RCT2.h
  * Move Scenario::Category into its own unit
  * Move ScenarioOptions struct into its own header file
  * Move Scenario::Objective into its own unit; enum class ObjectiveType
  * Move landPrice/constructionRightsPrice into Scenario::Options
  * Move scenario objective/category/name/details into Scenario::Options
  * Introduce Scenario::Options struct; move cash and guest options
  * Add ClimateIsPrecipitating()
  * Fix LIM Launched inline twists drawing over land when built underground
  * Merge Localisation/master into OpenRCT2/develop
  * Rename dword_988E60 to kCountTowardsCurrentExpenditure
  * Rename research_cost_table to kResearchCosts
  * Rename MaxBankLoanInterestRate to kMaxBankLoanInterestRate
  * Update ExpenditureType enum to new code style
  * Update ParkData fields to new code style
  * Modify two dropdowns as an example
  * Create new methods for dropdowns
  * Remove leftover WindowDropdownShowColourAvailable() declaration
  * Update dropdown item fields and functions to new code style
  * Update OrcaStream::Chunkstream methods to new code style
  * Update OrcaStream methods to new code style
  * Update OrcaStream::ChunkEntry fields to new code style
  * Update OrcaStream::Header fields to new code style
  * Update OrcaStream::Mode enum to new code style
  * Fix Twister RC inline twists not drawing in tunnels at certain angles
  * Merge Localisation/master into OpenRCT2/develop
  * Fix corkscrew rc inline twist inverted supports drawing below track
  * Fix Miniature Railway large right turn track drawing glitch
  * fix png map generator smoothMap and beach generation (see also #24782)
  * Fix hybrid large slope right to orth and small bank slope right supports (#25001)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix incorrectly rotated support on alpine and mine ride left S-bend
  * Merge Localisation/master into OpenRCT2/develop
  * Move tile elements into OpenRCT2 namespace (#24991)
  * Fix mine train coaster sloped left medium turn support rotation (#24993)
  * Fix lim launched rc inline twists block supports on wrong side (#24986)
  * Fix #19137: Non inverted left corkscrew supports wrong at one angle (#24988)
  * Rename ride_rating to RideRating_t
  * Move MakeRideRating into namespace
  * Merge pull request #24990 from tupaschoal/rides_namespace
  * Fix classic wooden small banked turns blocking supports incorrectly (#24989)
  * Apply using namespace OpenRCT2 to RIdeRatings.cpp
  * Move all object units into OpenRCT2 namespace (#24980)
  * Move kRideRatingUndefined into namespace
  * Move RideRatingUpdateState into namespace
  * Move RatingTuple into namespace
  * Move RideRatingUpdateStates into namespace
  * Sanitize RideRatings.h includes
  * Move RideRatingsUpdateAll into namespace
  * Move RideRatingsUpdateRide into namespace
  * Fix multi dimension quarter loops blocking supports incorrectly
  * Fix #23440: Quarter loops do not block metal supports correctly
  * Merge Localisation/master into OpenRCT2/develop
  * Move RideRatingResetUpdateStates into namespace
  * Move RIDE_RATING_STATION_FLAG_NO_ENTRANCE  to source file
  * Merge Localisation/master into OpenRCT2/develop
  * Fix a crash when closing windows would open other windows (#24972)
  * Fix #24151: Change OpenGL shader gl_FragCoord use to not require layout
  * Fix #18048: Play music from all ride's stations (#24722)
  * Fix #24888: Add search for ride list (#24890)
  * Raise the Go-Karts maximum support height by 1 (#24974)
  * Prevent diagonal slopes from being built if vehicles lack sprites (#23351)
  * Add tunnels to dive loop track pieces (#24835)
  * Use debug break rather than a null dereference (#24931)
  * Fix Hybrid Coaster zero g rolls not blocking all metal supports (#24955)
  * Change metal support type b crossbeam offset index magic num to const
  * Change metal support joint interval magic number to const
  * Merge Localisation/master into OpenRCT2/develop
  * Close #24606: Double misc entity limit (#24957)
  * Run tests on macos amd64 (#24964)
  * Move .peepWarningThrottle into ParkData struct
  * Move .suggestedGuestMaximum into ParkData struct
  * Move .totalRideValueForMoney into ParkData struct
  * Move .guest(ChangeModifier|GenerationProbability) into ParkData struct
  * Move .bankLoanInterestRate into ParkData struct
  * Move .marketingCampaigns into ParkData struct
  * Move .currentAwards into ParkData struct
  * Move .total(IncomeFrom|)Admissions into ParkData struct
  * Move .samePriceThroughoutPark into ParkData struct
  * Move .maxBankLoan into ParkData struct
  * Move .numGuests(HeadingForPark|InParkLastWeek) into ParkData struct
  * Move .staff(Handyman|Mechanic|Security)Colour into ParkData struct
  * Move .weeklyProfit* into ParkData struct
  * Move .bankLoan into ParkData struct
  * Move .numGuestsInPark, .guestsInParkHistory into ParkData struct
  * Move .currentProfit, .currentExpenditure into ParkData struct
  * Move .expenditureTable into ParkData struct
  * Move .historicalProfit into ParkData struct
  * Move .companyValue into ParkData struct
  * Move .cash, .cashHistory into ParkData struct
  * Extract ParkData::IsOpen member into Park namespace
  * Split off ParkData.h from Park.h
  * Add changelog entry for corner connected queue incorrect sprites
  * Change PathPaintGetBaseImage rotatedEdgesAndCorners arg to uint8_t
  * Rename Sub6A3F61 to PathPaintFencesAdditionsTunnels
  * Rename stru_98D804 to kPathBoundingBoxes in path paint
  * Rename Byte98D6E0 to kPathEdgesAndCornersToSurfaceImageIndexOffset
  * Ignore corner connections when painting queues
  * Update changelog.txt
  * Android: fix crash when device is offline (#24958)
  * Add changelog entry for fixed offset type b metal supports
  * Add max section height constant for metal support functions
  * Combine type a and b metal support paint functions to single function
  * Unify metal support type a and b offsetting and crossbeam drawing
  * Unify metal support type a and b function start setup
  * Unify metal support type a and b base drawing
  * Unify metal support type a and b base to main segment drawing
  * Unify metal support type a and b main segment drawing
  * Rename si to crossbeamHeight in metal support paint functions
  * Unify metal support type a and b extra height drawing
  * Rename MetalSupportsImages beamA and beamB to beamUncapped/Capped
  * Rename baseHeight to currentHeight in MetalBSupportsPaintSetup
  * Make MetalASupportsPaintSetup height parameter const
  * Rename unk variable to segmentHeight in metal support paint
  * Add const to metal support function parameters
  * Rename special parameter to heightExtra in metal support functions
  * Add option to draw bounding boxes to command line screenshot command (#24949)
  * Merge Localisation/master into OpenRCT2/develop
  * Update changelog.txt
  * Fix spelling
  * Cleanup the code a bit
  * Fix #24745: Do not create a paint session when rendering is inhibited
  * Index and load objects after the editor scene is initialized not before (#24953)
  * Add Trixie (#24950)
  * Resolve issues with save before load/quit prompt
  * Format Objective-C source (#24945)
  * Update to objects v1.7.3 (#24944)
  * Upgrade gradle to 9.0.0 (#24910)
  * Fix lim, corkscrew and twister coasters inline twist tunnels (#24915)
  * Keep ride list sorted (#24943)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #24904: gracefully handle incomplete CSS files (#24923)
  * Initialize some members in PaintSessionCore (#24932)
  * Fix typo in Compression.cpp (#24934)
  * Print the object image table entry after sprite build command (#24921)
  * Use CI images v22: Jammy for AppImage now uses clang-20 (#24926)
  * Remove null TunnelType and refactor paint code accordingly (#24924)
  * Change [De]Compress Asserts to Exceptions (#24933)
  * Merge Localisation/master into OpenRCT2/develop
  * Rename register variables in CentreMapOnViewPoint (#24905)
  * CI: Use macOS 15 (#24925)
  * make member plural in readme (#24922)
  * Merge Localisation/master into OpenRCT2/develop
  * Add explicit <cstdlib> include to Range.hpp (#24918)
  * Emscripten: Reimplement save/load
  * Fix #24173: Allow all game speeds between 1 and 8 if developer mode is on (#24270)
  * Merge Localisation/master into OpenRCT2/develop
  * Use ZStandard for Park and Replay Files (#24734)
  * Fix GCC complaining about null parameter to vsnprintf (#24903)
  * Only access widgets that actually exist (#24899)
  * Rework ride list sort options into table headers (#24893)
  * Update macos libraries to v38, use SHA256 checksums (#24889)
  * Update Windows libraries to v38, use SHA256 checksums (#24887)
  * Fix #16988: AppImage version does not show changelog (#24878)
  * Android: build with 16kb page sizes (#24867)
  * Remove duplicate checksums file (#24883)
  * Update Android TV mode
  * Update Android SDL files
  * Use Android libs v13
  * Fix expected checksum file for release (#24877)
  * Start v0.4.26
  * Release v0.4.25
  * Update backtrace token for upcoming v0.4.25 release
  * Fix #24777: Random checkbox ticked now cycles between possible colours in preview (#24865)
  * Use images v20 in CI (#24862)
  * Display sha256 digests instead of sha1 for releases (#24871)
  * Fallback to ephemeral debug signing if keystore is unavailable
  * Use static keystore for signing Android builds
  * Update android targetsdk to 36 (#24843)
  * Fix #24821: Unclear guest spawn point placement error message (#24827)
  * Only add full initialized windows to the window list (#24859)
  * android: `null` response body on error (#24854)
  * Merge Localisation/master into OpenRCT2/develop
  * Use clang-format 20 (#24861)
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Enhance emscripten display settings (#24841)
  * Fix unlocalized word for conjunction when having multiple shortcuts for the same action (#24838)
  * emscripten: increase STACK_SIZE to 8mb (#24840)
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Update OpenMSX and OpenSFX
  * Merge Localisation/master into OpenRCT2/develop
  * Fix the pattern of long grass being different to RCT1 and 2 (#24829)
  * Fix custom RCT1 scenarios potentially being confused with official ones (#24832)
  * Fix Junior Roller Coaster flat to steep tunnels (#24826)
  * Update distribution/changelog.txt
  * Update objects to v1.7.2
  * Fix River Rapids flat to gentle track piece tunnels (#24825)
  * Fix Air Powered Vertical Coaster top section tunnels (#24824)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #24785: Change scenery window filter to use filename instead of full path (#24786)
  * Add Catalan translations to NSIS installer
  * Add Simplified Chinese translations to NSIS installer
  * Fix track deletion confirmation prompt not being aligned vertically (#24783)
  * zh-CN: Add translation to Flathub package
  * Don't Double-Compress Park Chunks in Replay File (#24728)
  * Add Taiwan Park to extras
  * Fix typo in changelog
  * updating change log to add fix
  * Merge Localisation/master into OpenRCT2/develop
  * Introduce option to show minimap previews in LoadSave browser
  * Fix LoadSave window frame not resizing when toggling previews
  * Config.cpp: fix serialisation for sorting by file size
  * Merge Localisation/master into OpenRCT2/develop
  * Smooth map based on inferred PNG image size, not leftover setting (#24782)
  * Generalise tooltips for object group tabs in Object Selection window (#24776)
  * Fix new ride window authors (#24773)
  * Fix changelog entry for #24730
  * Let security guards alternate between slow and fast walking (#24730)
  * Add Spanish translations to NSIS installer
  * Add Swedish translations to NSIS installer
  * reliability progress bar no longer has min value of 10
  * Add changelog entry for scenery and new ride window filter fixes
  * Fix new ride window filter by id not working for non legacy objects
  * Fix scenery and new ride windows non legacy object file name filter
  * Merge Localisation/master into OpenRCT2/develop
  * Add award plugin APIs (#24468)
  * Merge Localisation/master into OpenRCT2/develop
  * Add Arabic translations to NSIS installer
  * Set -Wmissing-prototypes for clang builds (#24757)
  * Merge Localisation/master into OpenRCT2/develop
  * openrct2.d.ts style fixes
  * Merge Localisation/master into OpenRCT2/develop
  * Feature: [Plugin] Add bindings for missing cheats
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Start 0.4.25
  * Release v0.4.24
  * Update backtrace token for v0.4.24
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation
  * Update to objects version v1.7.1
  * Fix Compression Issue when Stopping Recording
  * Merge Localisation/master into OpenRCT2/develop
  * Update test suite for Sawyer coding changes
  * Move Sawyer coding into its own namespace
  * Move SawyerEncoding files to their own folder
  * Move SawyerEncoding into OpenRCT2::SawyerCoding namespace, rename to ChunkEncoding
  * Move ChunkHeader to SawyerChunk.h
  * Replace duplicate CHUNK_ENCODING_* with SawyerEncoding::*
  * Rename constants in SawyerChunkReader.cpp to use kCamelCase
  * Rename MULTIBYTE to kMultibyte
  * Rename SINGLE_INSTANCE_MUTEX_NAME to kSingleInstanceMutexName
  * Rename constants in ServerList.cpp to use kCamelCase
  * Rename OBJECT_START_INDEX to kObjectStartIndex
  * Rename constants in DiscordService.cpp to use kCamelCase
  * Refactor MarketingCampaignFlags into a FlagHolder
  * Refactor award effect consts into an enum class
  * Rename MAX_LANGUAGE_SIZE to kMaxLanguageSize
  * Rename CS_SPRITE_FONT_OFFSET to kCSSpriteFontOffset
  * Refactor MEMORY_ACCESS into a FlagHolder
  * Rename SZ_{PRIVATE,PUBLIC}_{BEGIN,END}_TOKEN to k{Private,Public}Key{Begin,End}Token
  * Rename VIEWPORT_BUTTON to kButtonSize
  * Rename TRACK_DESIGN_INDEX_UNLOADED to kTrackDesignIndexUnloaded
  * Rename EXPENDITURE_COLUMN_WIDTH to kExpenditureColumnWidth
  * Rename RCT1_LIGHT_OFFSET to kRCT1LightOffset
  * Refactor Compression and Streams, and Add IStream Direct Interface
  * Always try mapping footpaths for .park files
  * Small cleanup of sound range parameters
  * Merge Localisation/master into OpenRCT2/develop
  * Fix changelog entry for #20095
  * Add #24710 to changelog
  * Add ability to scroll the map with gamepad stick
  * Revert "Close #1787: Replace blood-curdling scream with regular roller coaster screams" (#24716)
  * Close #1787: Replace blood-curdling scream with regular roller coaster screams
  * Merge Localisation/master into OpenRCT2/develop
  * NSIS: Add Czech translation
  * NSIS: Assume files without BOMs are UTF-8
  * Close #24665: Don't return empty strings with quotes for std::string
  * Merge Localisation/master into OpenRCT2/develop
  * cs-CZ: Add translation to Flathub package
  * GCC15 fix in ReplayManager.cpp (#24707)
  * Merge Localisation/master into OpenRCT2/develop
  * RideCreateAction: use constant instead of magic number
  * Remove Memory Copy in FileIndex::LoadOrBuild
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #18080: Obsolote .DAT objects can be loaded accidentally
  * Merge Localisation/master into OpenRCT2/develop
  * Make en-GB consistent with #24628 localisation changes
  * Merge Localisation/master into OpenRCT2/develop
  * Remove sorting by difficulty in the scenario selector
  * Merge Localisation/master into OpenRCT2/develop
  * Fix: `convert` console command rejects files with an SV7 extension
  * Fix #24661: `convert` console command always crashes with a segmentation fault
  * Rename metal support mappings
  * Feature: Add optional screenshot argument for Z coord
  * Fix #24509: Use std::sort instead of std::stable_sort (#24664)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix invalid null comparison in RideList sort comparator
  * Rename enum members of WoodenSupportTransitionType to lowerCamelCase
  * Rename enum members of WoodenSupportSubType to lowerCamelCase
  * Rename enum members of WoodenSupportType to lowerCamelCase
  * Rename enum members of MetalSupportType to lowerCamelCase
  * Rename enum members of MetalSupportGraphic to lowerCamelCase
  * Rename enum members of MetalSupportPlace to lowerCamelCase
  * Add first translations batch to NSIS
  * Prevent unfollowing vehicles in viewports other than main
  * Rename `ecx` to `newAcceleration`
  * Fix #24617: Prevent hired boat with 0 speed causing division by 0
  * Fix #24589: Ride's music tab doesn't redraw in multiplayer
  * Clear stale scenario repo pointers during language change.
  * Remove unused includes
  * NSIS: disable languages without translations
  * Refactor constants in window .cpp files
  * Drop "Pause game when Steam overlay is open" feature
  * Make changelog format display diff in unified format (#24631)
  * Add changelog entry for landscape edge door animations
  * Play door sounds for land edge doors
  * Only animate land edge doors if track is below surface height
  * Merge Vehicle::UpdateLandscapeDoor functions
  * Move Vehicle::UpdateLandscapeDoorA function
  * Only animate landscape edge doors if door exists
  * Add RCT1 land edge door map animations
  * Add changelog entries for refactored map animations
  * Remove fallthrough annotations in TrackPlaceAction::Execute
  * Change magic numbers to constants in Viewport::Invalidate function
  * Change tile related magic numbers to consts in map animation code
  * Change MapAnimations::ShiftAll parameter from CoordsXY to TileCoordsXY
  * Remove RCT1 land edge door map animations
  * Change invalidating map animations from set to vector of bools
  * Skip viewport in map animation invalidation if over max zoom
  * Prevent scrolling text map animations invalidating when not drawn
  * Raise map animation invalidation max zoom to 2
  * Mark auto pointers explicitly in map animations
  * Change MapAnimations::MarkTileForInvalidation parameter to TileCoordsXY
  * Change MapAnimations::MarkTileForUpdate parameter to TileCoordsXY
  * Simplify MapGetTrackElementAtFromRideIsUnderground
  * Pass viewport as pointer in map animations
  * Don't update map animations on ticks where nothing is updated
  * Prevent land edge doors creating animations if not underground
  * Don't invalidate temporary map animation if not in view
  * Pass viewport through map animation invalidation functions
  * Prevent scenery clocks from invalidating every frame
  * Move update all temporary map animations to own function
  * Rename MapAnimation namespace to MapAnimations
  * Calculate visible animated tiles by tile position
  * Don't invalidate map animations for tiles that are not in view
  * Call ViewportsInvalidate directly in map animations
  * Rename MapAnimation::CreateAll to MarkAllTiles
  * Load temporary map animations from S6 files
  * Load temporary map animations from S4 files
  * Add animations for land edge doors
  * Add is animating state to scenery doors
  * Add temporary map animations
  * Refactor how map animations are created and stored
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #17365: Surface slope wrong on x axis when expanding map size
  * Fix: undefined behaviour in string construction (#24602)
  * Merge Localisation/master into OpenRCT2/develop
  * Pass ScreenSize to makeWindowShim()
  * Pass ScreenSize to window creation functions
  * Rename remaining methods in Widget.h to lowerCamelCase
  * Rework news options into one tab in the news window
  * Disable scenario options rather than hiding them (#24559)
  * Fix ride window vehicle tab crop, position, zoomed out glitching
  * Fix right click ride construction bugs when ghost track on same tile
  * Refactor WidgetFlags to FlagHolder
  * Rename WindowWidgetType to WidgetType and change for new code style
  * Update WindowColour enum for new code style
  * Make widget creation functions lowerCamelCase
  * Replace window shim and widget macros with constexpr functions (#24566)
  * Fix missing version separator on changelog
  * Start v0.4.24
  * Release v0.4.23
  * Fix version info of NSIS installer
  * Update backtrace token for upcoming release
  * Merge Localisation/master into OpenRCT2/develop
  * Fix flat to steep wooden mine supports not connecting to flat supports
  * Linux: add .desktop hint to request discrete GPU (#24563)
  * Add required sprites to unbanked and banked large gently sloped turns
  * Fix guest window viewport on pick up and thoughts not invalidating (#24535)
  * Fix #24544: RCT1 Maze designs with wooden walls not imported correctly
  * Add changelog entries
  * Update objects to v1.7.0
  * Remove const_cast in GetWidgetByIndex (#24554)
  * Add changelog entry for using intended bb for vehicle fallbacks
  * Add constants to vehicle paint functions that use corkscrew sprites
  * Add bounding box index constants to vehicle paint functions
  * Add const to z parameter of vehicle paint functions
  * Rename spriteNum to spriteIndex in vehicle paint and add const
  * Use original intended bounding box for fallback vehicle sprites
  * Prevent ride and stall statistics from overflowing (#24378)
  * Default to using screenshots for scenario previews
  * Merge Localisation/master into OpenRCT2/develop
  * Move TD46 stuff to own file
  * Split tracks.dat from g2.dat
  * Build all graphics .dat in the same CI step
  * Fix #20095: UCES Cemetery Ridge swapped entrance/exit. (#24532)
  * Move oli414 to 'former team members'
  * Merge Localisation/master into OpenRCT2/develop
  * Defer temp object Load/Unload to calling side
  * Implement OnLanguageChange event for ScenarioSelect window (#24519)
  * Add the ability to temporarily load objects without registering them (#24521)
  * Load scenario previews using temp objects too
  * Perform an additional name check for competition scenarios (#24518)
  * Remove unused function (WindowGetPreviousViewport)
  * Fix new ride window not always updating when searching (#24515)
  * Fix object selection tabs (#24512)
  * Fix typo on VIEWPORT_FLAG_INDEPENDENT_ROTATION
  * More efficiently search viewports for playing Audio
  * More efficiently search viewports
  * Fix #23289: Dodgems and Flying Saucers can spawn on top of each other
  * Work around TryClassifyFile not working with .sea files
  * Fix include formatting in ScVehicle.cpp
  * Apply code formatting to ScVehicle.cpp
  * Update changelog with #24446
  * Fix moveToTrack() by applying segment 0 offset
  * Revert '75de5b8: Fix track origin being miscalculated for plugins on downward slopes'
  * Translate NSIS installer
  * Change News enums to use lowerCamelCase
  * Make news item fields lowerCamelCase
  * Pass std::span to convertNewsQueue
  * Add scenario meta files for the remaining RCT1 DLC scenarios
  * Eliminate direct ride type check
  * Invalidate screen on reload from object selection window
  * Avoid expensive copies calling ViewportSurfaceSmoothenEdge
  * Fix potential bug with missing 0 terminator
  * Avoid some more unintentional copies
  * Add fallthrough
  * Add missing break statements
  * Mark things constexpr that are actually constexpr
  * Don't copy the widget, use reference
  * Default initialize members in ProgressWindow
  * Fix dangling pointer for Discord rich presence
  * Annotate fall-through
  * Don't have garbage in padding for save header
  * Make error message on console set command more descriptive
  * Close #24400: Sort rides with preservation order alphabetically
  * Fix #20158: animated scenery dats draw random sprite at end of anim
  * Remove unnecessary ninja install on macOS CI
  * Fix #24447: Refresh the shortcut window when changing language (#24478)
  * Merge Localisation/master into OpenRCT2/develop
  * Add changelog entry for improving window invalidations
  * Simplify the code of a couple of viewport screen coord calculations
  * Prevent path window invalidating unnecessarily
  * Fix plugin window viewports on open and prevent unnecessary invalid
  * Fix scenery window scrollbar thumb size on window expansion
  * Restore original extra viewport opening window size
  * Fix staff window viewport issues
  * Fix new ride window not invalidating on group ride change
  * Fix viewport invalidation offsetting position each loop iteration
  * Fix extra viewport invalidating every frame
  * Fix ride window viewport focus on viewport rotate
  * Prevent ride ratings from invalidating ride windows unnecessarily
  * Prevent new ride window from invalidating on every frame
  * Prevent windows invalidating every frame if any button is pressed
  * Prevent inventions window invalidating every frame
  * Fix scenery window invalidating every frame unnecessarily
  * Remove unnecessary window OnResize calls
  * Reduce some LOG_INFO messages to LOG_VERBOSE (#24472)
  * Update changelog.txt
  * Don't tween entities that are not visible on screen or when zoomed out
  * Add changelog entry for fixed window and viewport visibility
  * Simplify window visibility check iteration
  * Make some members static functions
  * Couple more places
  * Pass guest by reference, rename parameter
  * Make more functions of Guest private, temporary to see who needs what
  * Refactor window visibility cache and fix viewport visibility
  * Optionally allow scenario previews to use screenshots
  * Improve performance of panning the viewport with OpenGL renderer (#24413)
  * Handle peep state directly in the update switch
  * Remove code duplication for stepping
  * Remove useless checks
  * Start splitting Peep::Update into Staff::Update and Guest::Update
  * Differentiate formatTextTo() from formatTextWithColourTo()
  * Rename Banner methods to use camelCase
  * Rename Banner::ride_index to rideIndex
  * Use FlagHolder for banner flags
  * Rewrite ParkPreview::drawPreviewImage to use SPR_TEMP
  * Change BANNER_NULL to kBannerNull
  * Change SCROLLING_MODE_NONE to kScrollingModeNone
  * Change MAX_BANNERS to kMaxBanners
  * Fix #24388, #24448: shortcut keys are not localised (#24440)
  * Remove unused VehiclePitchDown50BankedLeft135 and right functions
  * Improve vehicle pitch 50 bank 45, 67 and 90 fallback sprites
  * Fix incorrect Zero G Roll vehicle yaw rotations
  * Avoid build failures when removing or renaming a resource
  * Ship with a full font set
  * Anchor object load error text to title bar
  * Fix WINDOW_SHIM parameter order for network status window
  * Fix virtual floor not invalidating correctly
  * Merge Localisation/master into OpenRCT2/develop
  * Autodetect Steam installs of RCT Classic
  * ScenarioSelect: load minimap using background worker (#24436)
  * Close #22476: Add time since last inspection to Rides List window (#24080)
  * Merge Localisation/master into OpenRCT2/develop
  * Rework map iteration for the two smoothing algorithms in use (#24280)
  * Allow building zero g rolls on LIM RC without cheats
  * Stricter OpenGL error checking (#24419)
  * Fix #24422: More than one viewport is causing issues
  * Merge Localisation/master into OpenRCT2/develop
  * Improve Zero G Roll fallback vehicle sprites
  * Fix flaw in BringToFront using the wrong iterator, ignore dead ones
  * Use continuous but stable storage for viewports
  * Use vector and unique_ptr for windows storage
  * Fix off-by-one when generating park minimaps (#24415)
  * Show 'loading' stub while preview is being loaded
  * Remove lock from TextureCache, draw calls are never done in parallel
  * Fix park fences drawing underneath and through opaque water
  * Create park preview images from scenario meta objects
  * Populate image table for scenario meta objects
  * Rename ScenarioText object type to ScenarioMeta
  * Rework display tab in options window (#24385)
  * Remove the use of shared_ptr for the Context (#24404)
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Fix divide by zero when there is no scenery (#24371)
  * Merge Localisation/master into OpenRCT2/develop
  * Close #24313 - Add API for setting a car’s ‘isCrashed’ flag
  * Part of #16033: create constants for crash particles
  * Add dedicated 'clear' string for clear button (#24387)
  * Fix wording of one string and the changelog entry
  * Add changelog entries
  * Also check for the presence of RCT Classic
  * Block if user tries to install to the RCT2 folder
  * Update URL
  * Add additional installer languages
  * Clear out data dir before upgrading
  * Create enum for TextColour
  * Add missing issues to changelog
  * 'Update available' button should lead to openrct2.io
  * Update hendrikmuhs/ccache-action to v1.2.18
  * Close #24324: Split font.dat from g2.dat
  * Fix paint debug to visualize invalidation
  * Remove unused vClip in line shader (#24346)
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Rename DrawPixelInfo to RenderTarget (#24339)
  * Start v0.4.23
  * Release v0.4.22
  * Rework 'advanced options' tab to use group boxes (#24194)
  * Close #24319: Autodetect Steam RCT Classic on Windows
  * Merge Localisation/master into OpenRCT2/develop
  * Add two PRs to changelog
  * Fix #18479: Tile elements ordered beneath water do not draw correctly (#24306)
  * Android CI: enable native build (cmake) output (#24337)
  * Update Backtrace token for upcoming release (#24331)
  * Fix SOFTWARE_HWD config enum name
  * Merge Localisation/master into OpenRCT2/develop
  * Improve scenery window (minimum) height (#24317)
  * Rename config SOFTWARE to SOFTWARE_HW so it works on older versions (#24325)
  * Fix park window frame after resize (#24299)
  * Fix LightFX crashing due to operation order (#24315)
  * Fix some bad logic
  * Disable LightFX for OpenGL
  * Remove pointless removal of disabled_widgets bits, they are never set
  * Clear plugin storage when converting save game for scenario (#24069)
  * Update changelog.txt
  * Apply review comments
  * Update macOS Steam path (for download_depot)
  * Change constants in CLEARABLE_ITEMS to use kCamelCase notation
  * Fix missing invalidation on various plugin api setters for entities (#24310)
  * Optimize AddToEntityList for end of list edgecase (#24271)
  * Adjust code, deprecate and fallback to HW if software was selected
  * Remove SoftwareDrawingEngine, there is no reason to keep it
  * Add plugin call for breakdowns (#24207)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #24303: Track pieces do not draw in the ride construction window
  * Revert "Fix sprite culling glitching by culling sprites at full column width"
  * Fix sprite culling glitching by culling sprites at full column width
  * Revert "Nuke the bad culling, causes just odd artifacts, fast enough now"
  * Small touchups to changelog
  * Fix OpenGL invalidation breaking for weather effects, they start before
  * Fix #24289: Prebuilt track designs using an invalid drawing state
  * Position land rights tool size widget relative to title bar (#24290)
  * Merge pull request #24288 from AaronVanGeffen/close-buttons
  * Move build instructions to the GitHub repo wiki
  * Increase invalidation grid for software renderers
  * Nuke the bad culling, causes just odd artifacts, fast enough now
  * Optimize InvalidationGrid
  * Update changelog.txt
  * Fix stray pixels showing up when panning and moving a windows
  * Rename SetLocation to SetViewportLocation, this is less confusing
  * Ensure we invalidate the window when changing viewport location
  * Set viewport location immediately, fixes rotation using stale position
  * Silence warning about final
  * Fix assertion when plugins draw custom images
  * Setup the drawing context correctly for saving previews
  * Remove the old invalidation thing
  * Remove commented code
  * Increase the grid size for OpenGL, it's faster this way
  * Fix screenshots not having a render context
  * Add safe guards to make sure we have a valid drawing context
  * Fix code calling ViewportUpdatePosition this is incorrect
  * Add stricter checks to validate we have a valid drawing context
  * Fix changing scale or resizing the window having empty areas
  * Work-around for weather effects, always redraw in this case
  * Workaround for OpenGL renderer viewport panning, turn it into a hybrid
  * Simplify + clang-format correction
  * Skip dead windows in some iterations
  * clang-format fix
  * Make the invalidation grid size dynamic
  * Implement support for viewport shifting
  * Use invalidation for OpenGL drawing engine
  * Fix invalidation debug paint
  * Introduce InvalidationGrid
  * Merge Localisation/master into OpenRCT2/develop
  * Set the download message logging to high
  * Fix using wrong dependency target
  * Add project for dependencies, restructure targets and cleanup unused
  * zh-TW: Add zh-TW text to Appdata file
  * Merge Localisation/master into OpenRCT2/develop
  * Remove the odd copying of data files, use the targets instead
  * Allow tasks to run as single tasks from msbuild
  * Make the g2 task shared, remove duplication
  * Add a new target to copy relevant data and build g2.dat if needed
  * Fix #24264: Optimize the search for nearest litter by Handyman
  * Fix #24260: Optimize the lookup for nearby guests by entertainers (#24263)
  * Remove pointless overloads of iequals, implicitly converts to views
  * Use sfl::small_vector for Chunks, only observed a maximum of 16 so far
  * Use pair instead of tuple in FileIndex.hpp, reduces compilation time
  * More code style adjustments
  * Avoid constructing std::string_view from const char*
  * Use std::span for peepAnimObjects, rename to new style
  * Use unordered_map and constify things in Legacy.cpp
  * Use string_view in ParseSourceGame lookup helper
  * Enable the use of std::string_view for find in ObjectRepository
  * Add Joshua Jacobs to development team (#24256)
  * Add new icons for the controls tab
  * Split 'controls and interface' tab into two tabs
  * Tweak initial dimensions to account for optional scrollbars
  * Fix glitchy initial map window dimensions
  * Close #24146: Expand plugin functionality for balloons and money effects
  * Count holes separately from inversions; limit bonus to 31
  * Maximise num holes, inversions, drops, circuits and lift hills when writing to TD6
  * Close #19782: Game stops counting inversions after 31
  * Replace manual centre calculation with WF_CENTRE_SCREEN flag
  * Fix #21207: Track List window gets positioned incorrectly
  * Fix mixup between window and viewport flags
  * Widen WindowFlags to 32 bits
  * Touch up some RCT1 window colours
  * Fix misaligned 'flag' button with Enlarged UI enabled (#24247)
  * Merge Localisation/master into OpenRCT2/develop
  * Clarify go kart collision threshold
  * Update replays to v0.0.87
  * Add changelog entry for new go-kart pieces
  * Prevent go karts from getting stuck when changing lanes
  * Fix slight glitching in nested tiny and small go kart turns
  * Add gentle sloped turns to the go karts
  * Add diagonal flat and sloped track to the go karts
  * Add steep track to the go karts
  * Add larger turns and s bends to the go karts
  * Add new go kart lane subposition data
  * Update existing windows when toggling 'window buttons on the left' (#24237)
  * Fix logic for disabling native file browser widget
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #22634: Asset packs with sound effect overrides are not loaded correctly at startup
  * Add changelog entry
  * Add support for RCT Classic+ as a source
  * macOS: Look in /Applications for RCT Classic(+) installs
  * Fix crash in map.getAllEntities("car") when car has an invalid ride
  * Replace display options tab with custom sprites
  * Update JetBrains logo in README
  * Amend changelog
  * Merge Localisation/master into OpenRCT2/develop
  * Consolidate groupbox drawing code
  * Add it-IT translation to openrct2.appdata.xml
  * Fix narrow station base drawing with incorrect rotation
  * Optimize emscripten performance (#24178)
  * Use aliases in cmake to prevent mistakes. Fix g2 dependency mistake (#24213)
  * Use WINDOW_SHIM in NetworkStatus and SceneryScatter windows (#24208)
  * Correctly reposition all tabs when using the cheats window in the editor (#24209)
  * Changelog.cpp cleanup
  * Load scripts in the scenario editor and track designer (#24090)
  * Move title height helper functions to WindowBase and fix FlexUI plugins
  * Use larger cross glyph for close button when title bar is enlarged
  * Centralise ResizeFrame in WindowBase and call when setting widgets or resizing
  * Start Simplifying CMake code (#24177)
  * Close #21767: Cannot select macOS version of RCTC as source
  * Let checkbox widgets respect widget width for their labels
  * Remove unused includes (#24186)
  * Fix track origin being miscalculated for plugins on downward slopes
  * Advance editor step when saving (and go back if user cancels)
  * Create weak enum for PaletteIndex
  * Load emscripten data via a ZIP file
  * Purge leftover references to SetClimate game command (#24104)
  * Merge Localisation/master into OpenRCT2/develop
  * Allow disabling the version checker
  * Fix crash from failing to open file for preview (#24171)
  * Fix #21919: Non-recolourable cars still show colour picker
  * Prevent station ends, flat rides and shops invalidating unnecessarily
  * Prevent unnecessary tweening invalidations
  * Prevent animation invalidation when paused
  * Fix #23108: Missing pieces on Hypercoaster and Hyper-Twister, even with cheat
  * Scale lightning and thunder inversely proportional to game speed (#23803)
  * Rename Window_internal unit to WindowBase for consistency (#24163)
  * Fix link to NixOS package in README
  * Rework setting viewport menu checked status
  * Adjust more hardcoded top positions
  * Start v0.4.21+1
  * Release v0.4.21
  * Load the save previews in the background
  * Clarify changelog entry
  * Window: rename WindowResize to WindowResizeByDelta to prevent mistakes (#24145)
  * Fix #24143: Mine Train Coaster track isn't shown in station
  * Fix #21824, #22820: OpenGL draws downscaled and masked sprites wrong
  * Bump objects to v1.6.1
  * Scripting: Add Car.moveToTrack API (#23359)
  * Add new Wooden Roller Coaster no platform station sprites
  * Fix #22961: Click on construction preview places dupe rides and stalls
  * Remove default value for IParkImporter Load func param skipObjectCheck
  * Prevent unpacking objects when loading a save file preview
  * Fix #21908: Ride mode warnings when hovering track designs
  * Fix #23484: Castle station styles are erroneously remappable
  * EditorObjectSelection: force close when switching to track design manager
  * InstallTrack: force the object selection window to close
  * TrackList window: make 'select other ride' button available in track manager
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #23443: New GOG version of RCT2 is not extracted correctly
  * Refactor rest of .d.ts file to use JSDoc-style comment notation (#24073)
  * Rework manually drawn labels into label widgets
  * Store tab sizes in ScreenSize structs
  * Internally rename 'park' tab into 'land' tab for consistency
  * Amend changelog
  * Improve surface colour match by dithering and alternating tile colours
  * Exempt frozen peeps from being removed (#24101)
  * Remove non-implemented function declaration
  * Refactor INPUT_FLAGS into FlagHolder
  * Refactor DRAWING_ENGINE_FLAGS into FlagHolder
  * Rename weak window widget enums
  * Rename many RCT12 constants
  * Rename FULLSCREEN_MODE and its members
  * Rename HOOK_TYPE and its members
  * Rename SAWYER_ENCODING and its members
  * Rename SPECIAL_FOLDER and its members
  * Rename ADVERTISE_STATUS and its members
  * Rename ZIP_ACCESS and its members
  * Rename IMAGE_FORMAT and its members
  * Rename ASSERT_BEHAVIOUR and its members
  * Rename DIRECTORY_CHILD_TYPE and its members
  * Refactor fountain flags
  * Rename PATHID and its members
  * Refactor TRACK_REPO_ITEM_FLAGS to strong enum and FlagHolder
  * Rename static constants of repositories
  * Rename DIRID and its members
  * Rename DIRBASE and its members
  * Rename DIALOG_TYPE and its members
  * Create enum class for FileMode
  * Rename FILE_TYPE and its members
  * Refactor EDITOR_INPUT_FLAGS to use FlagHolder
  * Rename INVALID_DIRECTION to kInvalidDirection
  * Rename STATION_OBJECT_FLAGS and its members
  * Fix #24077: Track Designer crashes when clicking the park fence
  * Fix #19506: Queue paths can be placed on train tracks
  * Create strong enum for ScenarioSelectMode
  * Rename SCENARIO_CATEGORY and turn into strong enum
  * Rename TerrainSurfaceFlags and its members
  * Generalise dropdown tooltips and add tooltips to footpath window (#24070)
  * Reduce object casting (#24072)
  * Fix #23710: Tracked rides draw station bases with No entrance, no platform station style
  * Order custom menus consistently by label text (#24067)
  * Fix #24028: Giga and LSM booster pixels draw over transparent things
  * Force object selection window to close when changing scenes
  * Fix s4 and s6 importer convertNewsQueue msvc build error
  * Merge Localisation/master into OpenRCT2/develop
  * Rename EditorObjectFlagsClear, VisibleListClear
  * Make it work with older compilers
  * Avoid heap allocations for transparency depth calculation
  * Update sfl library to 1.9.2
  * Further cleanup the code, restrict maximum iterations
  * Cleanup and style refactor PeepFootpathMoveForward
  * Shorten PaintSegment enum variant names
  * Improve performance of spatial indexing
  * Change GameState_t members to lowerCamelCase
  * Skip the type checking in GetEntity/TryGetEntity with T as BaseEntity
  * Simplify operators on TIdentifier using the spaceship operator
  * Refactor PerformNextAction, we don't need a wrapper
  * Use TryGetEntity for iterators as it handles null entities explicitly
  * Cleanup the function PeepInteractWithPath
  * Fix #18169: Missing TTF support on Android
  * Add extra editor step for entering scenario details
  * Change: allow going back in editor when converting a save
  * Use more common filename:line format for assertion failure messages
  * Use stringstream until std::format is available
  * Add Guard::Assert function with std::source_location default parameter
  * Update object manager API to access new object types (#24009)
  * Add missing ctime include to FileBrowser.h (#24029)
  * Fix viewport 'listen' toggles
  * Apply review requests
  * Modify News::InitQueue to take GameState_t
  * Do not import garbage data in RCT1/2 news queues
  * Properly clear whole news queue
  * Move importing news items to function
  * Create widget type for horizontal separator
  * Change more Guest window DrawText calls to Label widgets
  * Convert Guest Stats string calls to label widgets
  * Fix #18309: Vehicles glitch going inverted to uninverted with uncap fps (#24011)
  * Fix apostrophes and quotes in changelog
  * Link to libatomic for arm-linux-gnueabihf library architecture
  * Bump kNetworkStreamVersion (#24010)
  * Reduce Map.h includes (#24007)
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #5281: Missing supports on miniature railways built backwards
  * Create weak enum for MazeWallType
  * Create strong enum for RideTestingFlags
  * Create strong enum for TrackElementSetFlag and TrackSelectionFlag
  * Extend FlagHolder methods
  * Fix lamps and queue line tvs drawing incorrectly on paths with fences
  * Improve map size heuristics in generatePreviewMap
  * Make WF_NO_TITLE_BAR actually fit in the uint16_t that is WindowBase::flags
  * Fix #23983: Ordering files by size not working and potentially crashing (#23991)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #23985: Crash when opening New Ride menu
  * Use window shim in more windows (#23986)
  * Move 'RCT1 interest' checkbox into the same place as regular interest spinner
  * Move 'hard park rating' option to objective tab
  * Fix widget recovery after "no money" toggle
  * Rework financial options tab with groupboxes
  * Add new window titles and tooltips
  * Split off Scenario Details from Objective tab
  * Change dimensions for park tab; use terraform icon
  * Move earning model / park entrance price widgets to financial tab
  * Move hard park rating option to finances tab
  * Move difficult guest generation option to guests tab
  * Tweak and use constants more
  * Merge objective options into scenario options
  * Update field names on RCT1/RCT2 Ride struct
  * Fix corner path fences drawing over adjacent sloped land
  * Skip setting page/widgets if we're already on the page (#23975)
  * Merge Localisation/master into OpenRCT2/develop
  * Prevent closing object selection window when selection is invalid (#23968)
  * Clarify 'guests prefer more/less intense rides' settings (#23937)
  * Fix #23910: Heartline Twister Coaster track draws over things above it
  * Fix #23891: Inverted Hairpin track can draw over things above it
  * Fix gentle banked Wooden RollerCoaster track glitching as train passes
  * Fix walls drawing over sloped rear water edges and misaligned sprite
  * Move mono logo to G2 end (#23972)
  * Remove rideCategory field from ObjectRepositoryItem struct
  * Amend changelog
  * Merge Localisation/master into OpenRCT2/develop
  * Fix saving scenarios in editor (#23956)
  * Draw minimap in scenario selection screen for .park based scenarios
  * Purge ClimateSetAction game action
  * Merge Localisation/master into OpenRCT2/develop
  * Make density a HeightMap property
  * Update Ride struct to new codestyle
  * Fix #10582: Low clearance tunnels below water draw incorrectly
  * Merge Localisation/master into OpenRCT2/develop
  * Rename NoFlatRideCars to kNoFlatRideCars
  * Remove unused game action enums
  * Rename RIDE_VALUE_UNDEFINED to kRideValueUndefined
  * Create RideModifyType enum
  * Create strong enum for RideCategory
  * Update RideMode to current code style
  * Update RideStatus to current code style
  * Update RideClassification to current code style
  * Add #23941 to changelog
  * Split LOADSAVETYPE_* into LoadSaveAction and LoadSaveType
  * Merge Localisation/master into OpenRCT2/develop
  * Refactor gScreenFlags to LegacyScene enum
  * Amend changelog
  * Use WindowSetResize to set min/max dimensions in most places (#23929)
  * Change widget order for land rights checkboxes (#23932)
  * Refactor About window text drawing (#23928)
  * Merge Localisation/master into OpenRCT2/develop
  * Make heightmap density configurable in setMapHeight
  * Refactor PNG generator to use HeightMap class
  * Merge Localisation/master into OpenRCT2/develop
  * Update objects version to v1.6.0
  * Move static data up; use std::array
  * Move item temperature thresholds to climate objects
  * Fix #23743: Park with > 32k guests goal not in scenario list
  * Change Tool members to new codestyle
  * Change GuestListFilterType members to new codestyle
  * Change CloseWindowModifier members to new codestyle
  * Change VisibilityCache members to new codestyle
  * Change PromptMode members to new codestyle
  * Refactor MODAL_RESULT_* to enum
  * Fix: Sound effects keep playing when loading another save
  * Remove obsolete interop files
  * Avoid considering climate objects as 'unused'
  * Fix #10379: Banners and signs outside the park can be renamed and repainted
  * Remove Scenario.h include from many units (#23901)
  * Fix snow transitions using rain animations
  * Fix missing vertical tunnel on Reverse Freefall Coaster flat to vert
  * Amend changelog entry for #4225
  * Fix #4225: Ride Construction window offers non-existent banked sloped to level curve
  * Introduce WF_NO_TITLE_BAR and apply to windows
  * Reduce hardcoded positions for various windows
  * Rename kCloseButtonWidth to kCloseButtonSize
  * Introduce WindowBase::canBeResized
  * Start v0.4.20+1
  * Release v0.4.20
  * Update backtrace token for v0.4.20 release
  * Merge Localisation/master into OpenRCT2/develop
  * WIP: Make title bar bigger in Enlarged UI mode
  * Rename network.h to Network.h (#23882)
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #20948: Incorrect diagonal brakes supports
  * Add new sprites for snow weather types (#23879)
  * Add toolbar to file browser (#23874)
  * Allow editing of indestructible rides when the ‘make all destructible’ cheat is enabled
  * Drop unused parameter from GetLegacyPeepAnimationObjects (#23877)
  * Split FileBrowser and OverwritePrompt from LoadSave unit (#23851)
  * Let ScClimate::type_get return a non-empty string again
  * Add weather 'forecast' as preview
  * Rework ClimateGetWeatherSpriteId
  * Fix #23867: Crash when viewing 2 line 3D signs with 16 spaces
  * Add see-through option to the "Cut-away View" (#23759)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #18433: TTF fonts can not be located when font names are translated
  * Add Ctrl+X (cut) command and numpad navigation to text composition (#23720)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #23828: Vehicles pass over station entrances/exits cause glitch
  * Fix #18389: Gentle sloped track not visible in fallback tunnels
  * Fix #23832: Hybrid large gentle banked left turns supports glitch
  * Fix #23831: Hybrid large slope bank right turns glitch if track above
  * Fix #23836: Adjacent track can draw over large turns
  *  Fix #18423: Underground Mini Golf hole C, D and E drawing over land edges
  * Fix #23814: Scenarios not indexed on first start
  * Fix #23797: 3D sign text from older parks cut off
  * Fix misaligned LSM launched lift hill sprite
  * Change load/save window to be coloured green by default
  * Merge Localisation/master into OpenRCT2/develop
  * Add monochrome 'no preview' logo
  * Fix #23641: Steep to flat track is not drawn correctly in tunnels
  * Fix #14486: Guests falling if path after park entrance is an upward slope
  * Fix #20848: Junior Coaster booster track draws incorrectly in tunnels
  * Fix #15826, #23835: Wooden Roller Coaster steep turn supports glitch
  * Fix #18376: Ghost train gentle to flat track is not visible in tunnels
  * Fix hyper-twister roller coaster string
  * Add diagonal downward-inclined brakes to hybrid and single rail coasters
  * Implement mini map previews for scenario usage
  * Implement embedded preview screenshots
  * Fix #18711: Underground park entrance sides can cause glitching
  * Fix #16657: Mine Ride right S-bend uses Mini Roller Coaster sprite
  * Fix land edges glitch when vehicles go through gentle to flat tunnels
  * Initial park save preview implementation
  * ParkImporter: rename GetDetails to PopulateIndexEntry
  * Add original bug to changelog for toilet, steep, wood support draw fix (#23849)
  * Add missing copyright to ParkFile.h
  * Rename audio.h to Audio.h (#23842)
  * Fix #22229: Don't override park version errors (#23845)
  * Fix #18436: Scenery on same tile draws over steep to vertical track (#23822)
  * Bump scenario index version (#23826)
  * Fix #1972, #11679: Vehicles passing by toilets can cause them to glitch
  * Fix spinning tunnels drawing over sloped terrain in front of them (#23818)
  * Fix #22620: RCT1 Mine Coaster trains glitch on large banked turns (#23817)
  * Fix #16357: Chairlift station covers draw incorrectly (#23808)
  * Platform.Win32: Remove the last MAX_PATH
  * EditorObjectSelectionWindow: Remove MAX_PATH
  * Fix #9999-#10003: translations have truncated strings
  * Fix train glitching on Bobsleigh Coaster small helixes (#23809)
  * Rename ObjectType enum to follow recent code style (#23810)
  * Rename sprites.h to SpriteIds.h (#23804)
  * Rename 'Climate' properties to Weather (#23786)
  * Fix segfault on linux when running in verbose mode
  * Update constexpr with k prefix
  * Change StaffHireArgs params to reflect internal visitor (#23791)
  * Simplify garden clock paint algorithm
  * Include stdexcept in LocalisationService.cpp (#23798)
  * Fix debug dirty visuals scaling on high DPI displays (#23697)
  * Fix #23522: Steeplechase diagonal sloped support base glitched sprites
  * Fix looping roller coaster vertical loop supports drawing incorrectly (#23795)
  * Support NetBSD
  * All BSD-like platforms have alloca in stdlib.h
  * Add nl-NL translation to openrct2.appdata.xml
  * Rework Localisation includes (#23789)
  * Rotate weather distribution to be less biased towards sunny weather
  * Fix #22617: Sloped wooden supports glitch above diagonal track
  * es-ES: Add translation to Flathub package
  * Fix #23781: Changing weather does not update state for next weather (#23782)
  * Purge old climate setting from gamestate
  * Use patterns from climate objects instead of hardcoded internals
  * Merge Localisation/master into OpenRCT2/develop
  * Make building new track inherit alternate colour scheme from previous piece
  * Implement climate object loading functions
  * Start v0.4.19.1+1
  * Release v0.4.19.1
  * Update backtrace token for upcoming v0.4.19.1 release
  * Fix weather transitions
  * Guard against possible null pointer dereferences
  * Prevent staff statistics from overflowing (#23719)
  * Start v0.4.20
  * Release v0.4.19
  * Update backtrace token for upcoming v0.4.19 release
  * Merge Localisation/master into OpenRCT2/develop
  * Append climate object based on legacy climate type
  * Remove climate setting from scenario options window
  * Drop climate variable from in-game console
  * Implement scaffolding for climate objects
  * Merge Localisation/master into OpenRCT2/develop
  * Cleanup the Climate file (#23755)
  * Improve warning if language files cannot be loaded on Android
  * Merge Localisation/master into OpenRCT2/develop
  * Turn Rotate View dropdown into two buttons
  * Fix crash placing rides without special elements. (#23739)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix hats/balloons/umbrellas not showing in guest notifications (#23728)
  * Fix #23724: Maze Construction window buttons are not working (#23731)
  * Reorganise special elements in construction window (#23660)
  * Add changelog entry
  * Dropdown: allow specifying number of rows per column (#23713)
  * Platform.h: Reject big-endian systems (#23684)
  * Prevent drawing peep accessories whilst drowning (#23729)
  * Update Ubuntu Docker image for clang-tidy-check (#23727)
  * Build image repository from object images (#23640)
  * Fix #23221: Track designs are saved with an incorrect ‘air’ time statistic
  * Fix #23707: Crash when plugins use a custom tool
  * Fix #23701: Potential crash when using mouse wheel on some widgets
  * Move Loc6DCA9A to own function
  * Move Loc6DC462 to own function
  * Make Loc6DCA9A a loop
  * Make Loc6DC462 a loop
  * Move WindowInvalidate and WidgetInvalidate families into WindowManager (#23692)
  * Offset dropdown text labels and separators (#23700)
  * Change FIXED_XDP from macros to constexprs
  * Move Viewport struct to Viewport.h
  * Add some assertions
  * Fix #23686: Shortcut window crashing and missing widgets
  * Prevent out of bounds access, prevents assert on debug builds
  * Create buttons for vertical drops in construction window (#23665)
  * Refactor more constants to kConstant notation
  * Use correct widgets instance for Banner window
  * Fix marketing campaign accessing the widget declaration not instance
  * Remove screaming snake case constant TRACK_BLOCK_2 (#23657)
  * Fix #23655: Crash with invalid widget index
  * Use kStringIdNone on emscripten buttons
  * Beautify TrackData.cpp
  * Add ccall to exported runtime methods
  * Emscripten: handle missing assets
  * Upload CI assets from correct path
  * Emscripten: build in CI
  * Merge Localisation/master into OpenRCT2/develop
  * Move WindowClose family into WindowManager (#23646)
  * Mass rename constants (#23656)
  * Booster code cleanups/unified booster speed preparation
  * Centralise external window signatures in Windows.h (#23653)
  * Move WindowCreate and WindowFocusOrCreate into WindowManager (#23643)
  * Merge Localisation/master into OpenRCT2/develop
  * Check for EMSCRIPTEN variable in emscripten builds
  * Fix pthreads check on emscripten
  * Move Widget, Window, Intent, MouseInput into OpenRCT2 namespace (#23642)
  * Refactor widgets state (#23621)
  * Merge Localisation/master into OpenRCT2/develop
  * Add #20683 to changelog
  * Allow cable lift to start after block brake
  * Correct Persistent spelling
  * Resolve code formatting issues
  * Move export/import functions to a javascript library
  * Fix erroneous statement about branching
  * Fix holding brakes being skipped if they're too close together
  * Add large diagonal flat to steep and dive loop track pieces
  * Restore lost diag brakes
  * Fixed tile inspector shortcut keys for raise/lower height
  * Plugin: allow scripts to specify tab colour maps (#23583)
  * Fix #23597: Adjust any staff set to EatFood animation (#23613)
  * Fix #23368: Incorrect refund when deleting track >= 96m
  * Merge Localisation/master into OpenRCT2/develop
  * Fix in game console "get location" command (#23598)
  * Remove outdated note (#23595)
  * Merge Localisation/master into OpenRCT2/develop
  * Only export functions for building gui
  * Correct variable name
  * Reverse wasm architecture check, to match the rest
  * Add error checking
  * Fix code formatting flag
  * Pull asset version from the game
  * Remove dockerfile and build scripts
  * Fix positioning of "Install new track" button
  * Tile Inspector Use label widgets for X/Y labels
  * Fix #23508: RideConstruction and Footpath windows racing to set the VirtualFloor
  * Update replays to v0.0.86
  * Fix typo on changelog (#23587)
  * Merge Localisation/master into OpenRCT2/develop
  * Assign Station Start, Entrance, Exit, to null sentinel
  * Fix behaviour of SetClipboardText on emscripten
  * Remove the need to manually compiled vorbis and ogg for emscripten
  * Rework InteractiveConsole to use localised object type strings (#23586)
  * Remove dead defines
  * Don't build assets emscripten
  * Use tags, instead of commit hashes
  * Switch to ninja
  * Add changelog entries
  * Update objects bundle to v1.5.0
  * Begin requested changes
  * Set consumption time when giving items to guests (#23581)
  * Append panda/elephant/tiger objects before other entertainers
  * Remove InteractiveConsole.h includes where not required (#23578)
  * Tighten the use of locks in JobPool (#23533)
  * Address review comments
  * Fix #21794: Lay-down coaster cars reverse on first frames of downwards corkscrew
  * Merge Localisation/master into OpenRCT2/develop
  * Add changelog entry
  * Add kMebiByte, kKibiByte constants
  * Move WindowFind functions into WindowManager (#23517)
  * Start v0.4.19
  * Release v0.4.18
  * Disable ubuntu docker job in individual steps (#23575)
  * Disable lint-commit job that trips up SignPath runner id when skipped (#23574)
  * Make sure that GuestNextInQueue is not uninitialized
  * Allow save/load for std::span, simplify ReadWriteArray
  * Use std::span for GetStations
  * Ensure ride station queue is not uninitialized, refactor that code
  * Fix file browser resize widget dimensions
  * Remove entry for #23486 from changelog (#23548)
  * Update backtrace token for upcoming v0.4.18 release
  * Allow file browser to optionally display file sizes
  * Rewrite OverwritePromptWindow to use MakeWidget
  * Rename Config::Sort to Config::FileBrowserSort
  * Remember preferred file browser dimensions
  * Link the OpenMusic repo in readme (#23536)
  * Update objects to v1.4.12 (#23535)
  * Add @andOlga to Russian translation credits
  * Add iterator include to SurfaceSelection.cpp (#23532)
  * Correct JavaScript syntax
  * Update changelog.txt
  * Re-create sound channel only for looping sounds
  * Rename Sub6D7AC0 to VehicleSoundFadeInOut
  * Fix #23135: Tree placement has noticable patterns
  * Fix mapgen window reverting to flatland when selecting heightmap image
  * Merge Localisation/master into OpenRCT2/develop
  * Add LoongArch architecture information (#23477)
  * Merge Localisation/master into OpenRCT2/develop
  * Update copyright year to 2025 (#23514)
  * Fix emscripten support
  * Fix editor progression issues (#23511)
  * Change leftover spelling of SuJongkwa to Sujeonggwa
  * Move more simplex functions to SimplexNoise unit
  * Refactor raw height array into HeightMap class
  * Encapsulate map generator in World::MapGenerator namespace
  * Move SurfaceSelection into its own unit as well
  * Remove some unnecessary includes
  * Move TreePlacement into its own unit as well
  * Split off PngTerrainGenerator, SimplexNoise units
  * Move MapGen and MapHelpers units into map_generator folder
  * Move LightFX into its own namespace (#23506)
  * Fix #23496: missing spatial index update when paused (#23505)
  * Prevent closing object selection window when selection is invalid (#23487)
  * Use std::chrono for easier to read durations (#23499)
  * eo-ZZ: Add EO text to Appdata file
  * Exclude peep animation objects in EditorRemoveUnusedObjects
  * Allow filename input directly in file browser window (#23405)
  * EditorObjectSelection: show animation peep type in description
  * Merge Localisation/master into OpenRCT2/develop
  * Update replay tests to v0.0.85
  * Reduce branching when drawing
  * Fix #23471: Traverse the paint nodes in correct order
  * Number track styles
  * Add new pieces to the Stand-Up Roller Coaster
  * Merge Localisation/master into OpenRCT2/develop
  * Remove dead lines in CMakeLists (#23461)
  * Fix guest inventories crashing on particular items (#23469)
  * Fix #1122: Trains can spawn on cable lift hill
  * ca-ES: Amend and complete translation of appdata.xml
  * Fix #23464: Water sparkles don't work properly (#23467)
  * Fix RideRatings.cpp headers (#23466)
  * Move isSlowWalking property to animation group level
  * Merge Localisation/master into OpenRCT2/develop
  * Add French translation to appdata.xml
  * Use ride_type_t in more places
  * Enable opaque water and corkscrew boosters on non-RCT1 installs
  * Fix in game console incorrectly handling formatting tokens. (#23434)
  * Undo whatever that was
  * Remove unused function
  * Refactor how PaintSession uses memory, make it partially static
  * Don't make PaintDrawStruct recursive
  * Raise max number of park entrance objects to 255 (#23413)
  * Fix typo in finance graph max size (#23437)
  * Fix rendering balloons/hats/umbrellas held by guests
  * Expose getCostumeStrings to scripts
  * Move getAvailableCostumeStrings to PeepAnimations
  * Force use of all costumes if noRandomPlacement results in no costumes
  * Rework reading peep anim object properties
  * Refactor PeepAnimationsObject::ReadAnimations into its own method
  * Guest window: make pickup animation lengths dynamic
  * Staff window: make tab animation lengths dynamic
  * Separate RCT12PeepAnimationGroup further from PeepAnimationGroup
  * Let other animation groups copy missing animations from primary group
  * Scripting: list and use available costumes dynamically
  * Read scriptName property from JSON
  * Add checks to ensure an animation object is selected for each peep type
  * EditorObjectSelectionSession: mark peep animation objects in use
  * Rework PeepAnimation construction
  * List available staff costumes dynamically
  * StaffHireNewAction: use peep anim objects; bump network version
  * Use peep animation objects for guest and staff sprites
  * Introduce functions to get a (random) peep anim object by type
  * Drop old PeepAnimationData unit
  * WIP: start reworking PeepAnimationGroup
  * S6Importer: minor refactor of ImportEntityCommonProperties
  * Start working on peep entity animation object conversion
  * Implement loading animation sequences from peep anim object
  * Introduce peep animation objects to object selection window

-------------------------------------------------------------------
Fri Apr  4 13:29:15 UTC 2025 - Björn Kettunen <bjorn.kettunen@thaodan.de>

- Update objects to 1.6.1
- Sync specfile with openSUSE OBS games:openrct2
- Update to version 0.4.20.210.b92e05bc:
  * Scripting: Add Car.moveToTrack API (#23359)
  * Add new Wooden Roller Coaster no platform station sprites
  * Fix #22961: Click on construction preview places dupe rides and stalls
  * Fix #21908: Ride mode warnings when hovering track designs
  * Fix #23484: Castle station styles are erroneously remappable
  * EditorObjectSelection: force close when switching to track design manager
  * InstallTrack: force the object selection window to close
  * TrackList window: make 'select other ride' button available in track manager
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #23443: New GOG version of RCT2 is not extracted correctly
  * Refactor rest of .d.ts file to use JSDoc-style comment notation (#24073)
  * Amend changelog
  * Improve surface colour match by dithering and alternating tile colours
  * Exempt frozen peeps from being removed (#24101)
  * Remove non-implemented function declaration
  * Refactor INPUT_FLAGS into FlagHolder
  * Refactor DRAWING_ENGINE_FLAGS into FlagHolder
  * Rename weak window widget enums
  * Rename many RCT12 constants
  * Rename FULLSCREEN_MODE and its members
  * Rename HOOK_TYPE and its members
  * Rename SAWYER_ENCODING and its members
  * Rename SPECIAL_FOLDER and its members
  * Rename ADVERTISE_STATUS and its members
  * Rename ZIP_ACCESS and its members
  * Rename IMAGE_FORMAT and its members
  * Rename ASSERT_BEHAVIOUR and its members
  * Rename DIRECTORY_CHILD_TYPE and its members
  * Refactor fountain flags
  * Rename PATHID and its members
  * Refactor TRACK_REPO_ITEM_FLAGS to strong enum and FlagHolder
  * Rename static constants of repositories
  * Rename DIRID and its members
  * Rename DIRBASE and its members
  * Rename DIALOG_TYPE and its members
  * Create enum class for FileMode
  * Rename FILE_TYPE and its members
  * Refactor EDITOR_INPUT_FLAGS to use FlagHolder
  * Rename INVALID_DIRECTION to kInvalidDirection
  * Rename STATION_OBJECT_FLAGS and its members
  * Fix #24077: Track Designer crashes when clicking the park fence
  * Fix #19506: Queue paths can be placed on train tracks
  * Create strong enum for ScenarioSelectMode
  * Rename SCENARIO_CATEGORY and turn into strong enum
  * Rename TerrainSurfaceFlags and its members
  * Generalise dropdown tooltips and add tooltips to footpath window (#24070)
  * Reduce object casting (#24072)
  * Fix #23710: Tracked rides draw station bases with No entrance, no platform station style
  * Order custom menus consistently by label text (#24067)
  * Fix #24028: Giga and LSM booster pixels draw over transparent things
  * Force object selection window to close when changing scenes
  * Fix s4 and s6 importer convertNewsQueue msvc build error
  * Merge Localisation/master into OpenRCT2/develop
  * Rename EditorObjectFlagsClear, VisibleListClear
  * Make it work with older compilers
  * Avoid heap allocations for transparency depth calculation
  * Update sfl library to 1.9.2
  * Further cleanup the code, restrict maximum iterations
  * Cleanup and style refactor PeepFootpathMoveForward
  * Shorten PaintSegment enum variant names
  * Improve performance of spatial indexing
  * Change GameState_t members to lowerCamelCase
  * Skip the type checking in GetEntity/TryGetEntity with T as BaseEntity
  * Simplify operators on TIdentifier using the spaceship operator
  * Refactor PerformNextAction, we don't need a wrapper
  * Use TryGetEntity for iterators as it handles null entities explicitly
  * Cleanup the function PeepInteractWithPath
  * Fix #18169: Missing TTF support on Android
  * Use more common filename:line format for assertion failure messages
  * Use stringstream until std::format is available
  * Add Guard::Assert function with std::source_location default parameter
  * Update object manager API to access new object types (#24009)
  * Add missing ctime include to FileBrowser.h (#24029)
  * Fix viewport 'listen' toggles
  * Apply review requests
  * Modify News::InitQueue to take GameState_t
  * Do not import garbage data in RCT1/2 news queues
  * Properly clear whole news queue
  * Move importing news items to function
  * Create widget type for horizontal separator
  * Change more Guest window DrawText calls to Label widgets
  * Convert Guest Stats string calls to label widgets
  * Fix #18309: Vehicles glitch going inverted to uninverted with uncap fps (#24011)
  * Fix apostrophes and quotes in changelog
  * Link to libatomic for arm-linux-gnueabihf library architecture
  * Bump kNetworkStreamVersion (#24010)
  * Reduce Map.h includes (#24007)
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #5281: Missing supports on miniature railways built backwards
  * Create weak enum for MazeWallType
  * Create strong enum for RideTestingFlags
  * Create strong enum for TrackElementSetFlag and TrackSelectionFlag
  * Extend FlagHolder methods
  * Fix lamps and queue line tvs drawing incorrectly on paths with fences
  * Improve map size heuristics in generatePreviewMap
  * Fix #23983: Ordering files by size not working and potentially crashing (#23991)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #23985: Crash when opening New Ride menu
  * Use window shim in more windows (#23986)
  * Update field names on RCT1/RCT2 Ride struct
  * Fix corner path fences drawing over adjacent sloped land
  * Skip setting page/widgets if we're already on the page (#23975)
  * Merge Localisation/master into OpenRCT2/develop
  * Prevent closing object selection window when selection is invalid (#23968)
  * Clarify 'guests prefer more/less intense rides' settings (#23937)
  * Fix #23910: Heartline Twister Coaster track draws over things above it
  * Fix #23891: Inverted Hairpin track can draw over things above it
  * Fix gentle banked Wooden RollerCoaster track glitching as train passes
  * Fix walls drawing over sloped rear water edges and misaligned sprite
  * Move mono logo to G2 end (#23972)
  * Remove rideCategory field from ObjectRepositoryItem struct
  * Amend changelog
  * Merge Localisation/master into OpenRCT2/develop
  * Fix saving scenarios in editor (#23956)
  * Draw minimap in scenario selection screen for .park based scenarios
  * Purge ClimateSetAction game action
  * Merge Localisation/master into OpenRCT2/develop
  * Make density a HeightMap property
  * Update Ride struct to new codestyle
  * Fix #10582: Low clearance tunnels below water draw incorrectly
  * Merge Localisation/master into OpenRCT2/develop
  * Rename NoFlatRideCars to kNoFlatRideCars
  * Remove unused game action enums
  * Rename RIDE_VALUE_UNDEFINED to kRideValueUndefined
  * Create RideModifyType enum
  * Create strong enum for RideCategory
  * Update RideMode to current code style
  * Update RideStatus to current code style
  * Update RideClassification to current code style
  * Add #23941 to changelog
  * Split LOADSAVETYPE_* into LoadSaveAction and LoadSaveType
  * Merge Localisation/master into OpenRCT2/develop
  * Refactor gScreenFlags to LegacyScene enum
  * Amend changelog
  * Use WindowSetResize to set min/max dimensions in most places (#23929)
  * Change widget order for land rights checkboxes (#23932)
  * Refactor About window text drawing (#23928)
  * Merge Localisation/master into OpenRCT2/develop
  * Make heightmap density configurable in setMapHeight
  * Refactor PNG generator to use HeightMap class
  * Merge Localisation/master into OpenRCT2/develop
  * Update objects version to v1.6.0
  * Move static data up; use std::array
  * Move item temperature thresholds to climate objects
  * Fix #23743: Park with > 32k guests goal not in scenario list
  * Change Tool members to new codestyle
  * Change GuestListFilterType members to new codestyle
  * Change CloseWindowModifier members to new codestyle
  * Change VisibilityCache members to new codestyle
  * Change PromptMode members to new codestyle
  * Refactor MODAL_RESULT_* to enum
  * Fix: Sound effects keep playing when loading another save
  * Remove obsolete interop files
  * Avoid considering climate objects as 'unused'
  * Fix #10379: Banners and signs outside the park can be renamed and repainted
  * Remove Scenario.h include from many units (#23901)
  * Fix snow transitions using rain animations
  * Fix missing vertical tunnel on Reverse Freefall Coaster flat to vert
  * Amend changelog entry for #4225
  * Fix #4225: Ride Construction window offers non-existent banked sloped to level curve
  * Introduce WF_NO_TITLE_BAR and apply to windows
  * Reduce hardcoded positions for various windows
  * Rename kCloseButtonWidth to kCloseButtonSize
  * Introduce WindowBase::canBeResized
  * Start v0.4.20+1
  * Release v0.4.20
  * Update backtrace token for v0.4.20 release
  * Merge Localisation/master into OpenRCT2/develop
  * Rename network.h to Network.h (#23882)
  * Merge Localisation/master into OpenRCT2/develop
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #20948: Incorrect diagonal brakes supports
  * Add new sprites for snow weather types (#23879)
  * Add toolbar to file browser (#23874)
  * Allow editing of indestructible rides when the ‘make all destructible’ cheat is enabled
  * Drop unused parameter from GetLegacyPeepAnimationObjects (#23877)
  * Split FileBrowser and OverwritePrompt from LoadSave unit (#23851)
  * Let ScClimate::type_get return a non-empty string again
  * Add weather 'forecast' as preview
  * Rework ClimateGetWeatherSpriteId
  * Fix #23867: Crash when viewing 2 line 3D signs with 16 spaces
  * Add see-through option to the "Cut-away View" (#23759)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #18433: TTF fonts can not be located when font names are translated
  * Add Ctrl+X (cut) command and numpad navigation to text composition (#23720)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix #23828: Vehicles pass over station entrances/exits cause glitch
  * Fix #18389: Gentle sloped track not visible in fallback tunnels
  * Fix #23832: Hybrid large gentle banked left turns supports glitch
  * Fix #23831: Hybrid large slope bank right turns glitch if track above
  * Fix #23836: Adjacent track can draw over large turns
  *  Fix #18423: Underground Mini Golf hole C, D and E drawing over land edges
  * Fix #23814: Scenarios not indexed on first start
  * Fix #23797: 3D sign text from older parks cut off
  * Fix misaligned LSM launched lift hill sprite
  * Change load/save window to be coloured green by default
  * Merge Localisation/master into OpenRCT2/develop
  * Add monochrome 'no preview' logo
  * Fix #23641: Steep to flat track is not drawn correctly in tunnels
  * Fix #14486: Guests falling if path after park entrance is an upward slope
  * Fix #20848: Junior Coaster booster track draws incorrectly in tunnels
  * Fix #15826, #23835: Wooden Roller Coaster steep turn supports glitch
  * Fix #18376: Ghost train gentle to flat track is not visible in tunnels
  * Fix hyper-twister roller coaster string
  * Add diagonal downward-inclined brakes to hybrid and single rail coasters
  * Implement mini map previews for scenario usage
  * Implement embedded preview screenshots
  * Fix #18711: Underground park entrance sides can cause glitching
  * Fix #16657: Mine Ride right S-bend uses Mini Roller Coaster sprite
  * Fix land edges glitch when vehicles go through gentle to flat tunnels
  * Initial park save preview implementation
  * ParkImporter: rename GetDetails to PopulateIndexEntry
  * Add original bug to changelog for toilet, steep, wood support draw fix (#23849)
  * Add missing copyright to ParkFile.h
  * Rename audio.h to Audio.h (#23842)
  * Fix #22229: Don't override park version errors (#23845)
  * Fix #18436: Scenery on same tile draws over steep to vertical track (#23822)
  * Bump scenario index version (#23826)
  * Fix #1972, #11679: Vehicles passing by toilets can cause them to glitch
  * Fix spinning tunnels drawing over sloped terrain in front of them (#23818)
  * Fix #22620: RCT1 Mine Coaster trains glitch on large banked turns (#23817)
  * Fix #16357: Chairlift station covers draw incorrectly (#23808)
  * Platform.Win32: Remove the last MAX_PATH
  * EditorObjectSelectionWindow: Remove MAX_PATH
  * Fix #9999-#10003: translations have truncated strings
  * Fix train glitching on Bobsleigh Coaster small helixes (#23809)
  * Rename ObjectType enum to follow recent code style (#23810)
  * Rename sprites.h to SpriteIds.h (#23804)
  * Rename 'Climate' properties to Weather (#23786)
  * Fix segfault on linux when running in verbose mode
  * Update constexpr with k prefix
  * Change StaffHireArgs params to reflect internal visitor (#23791)
  * Simplify garden clock paint algorithm
  * Include stdexcept in LocalisationService.cpp (#23798)
  * Fix debug dirty visuals scaling on high DPI displays (#23697)
  * Fix #23522: Steeplechase diagonal sloped support base glitched sprites
  * Fix looping roller coaster vertical loop supports drawing incorrectly (#23795)
  * Support NetBSD
  * All BSD-like platforms have alloca in stdlib.h
  * Add nl-NL translation to openrct2.appdata.xml
  * Rework Localisation includes (#23789)
  * Rotate weather distribution to be less biased towards sunny weather
  * Fix #22617: Sloped wooden supports glitch above diagonal track
  * es-ES: Add translation to Flathub package
  * Fix #23781: Changing weather does not update state for next weather (#23782)
  * Purge old climate setting from gamestate
  * Use patterns from climate objects instead of hardcoded internals
  * Merge Localisation/master into OpenRCT2/develop
  * Make building new track inherit alternate colour scheme from previous piece
  * Implement climate object loading functions
  * Start v0.4.19.1+1
  * Release v0.4.19.1
  * Update backtrace token for upcoming v0.4.19.1 release
  * Fix weather transitions
  * Guard against possible null pointer dereferences
  * Prevent staff statistics from overflowing (#23719)
  * Start v0.4.20
  * Release v0.4.19
  * Update backtrace token for upcoming v0.4.19 release
  * Merge Localisation/master into OpenRCT2/develop
  * Append climate object based on legacy climate type
  * Remove climate setting from scenario options window
  * Drop climate variable from in-game console
  * Implement scaffolding for climate objects
  * Merge Localisation/master into OpenRCT2/develop
  * Cleanup the Climate file (#23755)
  * Improve warning if language files cannot be loaded on Android
  * Merge Localisation/master into OpenRCT2/develop
  * Turn Rotate View dropdown into two buttons
  * Fix crash placing rides without special elements. (#23739)
  * Merge Localisation/master into OpenRCT2/develop
  * Fix hats/balloons/umbrellas not showing in guest notifications (#23728)
  * Fix #23724: Maze Construction window buttons are not working (#23731)
  * Reorganise special elements in construction window (#23660)
  * Add changelog entry
  * Dropdown: allow specifying number of rows per column (#23713)
  * Platform.h: Reject big-endian systems (#23684)
  * Prevent drawing peep accessories whilst drowning (#23729)
  * Update Ubuntu Docker image for clang-tidy-check (#23727)
  * Build image repository from object images (#23640)
  * Fix #23221: Track designs are saved with an incorrect ‘air’ time statistic
  * Fix #23707: Crash when plugins use a custom tool
  * Fix #23701: Potential crash when using mouse wheel on some widgets
  * Move Loc6DCA9A to own function
  * Move Loc6DC462 to own function
  * Make Loc6DCA9A a loop
  * Make Loc6DC462 a loop
  * Move WindowInvalidate and WidgetInvalidate families into WindowManager (#23692)
  * Offset dropdown text labels and separators (#23700)
  * Change FIXED_XDP from macros to constexprs
  * Move Viewport struct to Viewport.h
  * Add some assertions
  * Fix #23686: Shortcut window crashing and missing widgets
  * Prevent out of bounds access, prevents assert on debug builds
  * Create buttons for vertical drops in construction window (#23665)
  * Refactor more constants to kConstant notation
  * Use correct widgets instance for Banner window
  * Fix marketing campaign accessing the widget declaration not instance
  * Remove screaming snake case constant TRACK_BLOCK_2 (#23657)
  * Fix #23655: Crash with invalid widget index
  * Use kStringIdNone on emscripten buttons
  * Beautify TrackData.cpp
  * Add ccall to exported runtime methods
  * Emscripten: handle missing assets
  * Upload CI assets from correct path
  * Emscripten: build in CI
  * Merge Localisation/master into OpenRCT2/develop
  * Move WindowClose family into WindowManager (#23646)
  * Mass rename constants (#23656)
  * Booster code cleanups/unified booster speed preparation
  * Centralise external window signatures in Windows.h (#23653)
  * Move WindowCreate and WindowFocusOrCreate into WindowManager (#23643)
  * Merge Localisation/master into OpenRCT2/develop
  * Check for EMSCRIPTEN variable in emscripten builds
  * Fix pthreads check on emscripten
  * Move Widget, Window, Intent, MouseInput into OpenRCT2 namespace (#23642)
  * Refactor widgets state (#23621)
  * Merge Localisation/master into OpenRCT2/develop
  * Add #20683 to changelog
  * Allow cable lift to start after block brake
  * Correct Persistent spelling
  * Resolve code formatting issues
  * Move export/import functions to a javascript library
  * Fix erroneous statement about branching
  * Fix holding brakes being skipped if they're too close together
  * Add large diagonal flat to steep and dive loop track pieces
  * Restore lost diag brakes
  * Fixed tile inspector shortcut keys for raise/lower height
  * Plugin: allow scripts to specify tab colour maps (#23583)
  * Fix #23597: Adjust any staff set to EatFood animation (#23613)
  * Fix #23368: Incorrect refund when deleting track >= 96m
  * Merge Localisation/master into OpenRCT2/develop
  * Fix in game console "get location" command (#23598)
  * Remove outdated note (#23595)
  * Merge Localisation/master into OpenRCT2/develop
  * Only export functions for building gui
  * Correct variable name
  * Reverse wasm architecture check, to match the rest
  * Add error checking
  * Fix code formatting flag
  * Pull asset version from the game
  * Remove dockerfile and build scripts
  * Fix positioning of "Install new track" button
  * Tile Inspector Use label widgets for X/Y labels
  * Fix #23508: RideConstruction and Footpath windows racing to set the VirtualFloor
  * Update replays to v0.0.86
  * Fix typo on changelog (#23587)
  * Merge Localisation/master into OpenRCT2/develop
  * Assign Station Start, Entrance, Exit, to null sentinel
  * Fix behaviour of SetClipboardText on emscripten
  * Remove the need to manually compiled vorbis and ogg for emscripten
  * Rework InteractiveConsole to use localised object type strings (#23586)
  * Remove dead defines
  * Don't build assets emscripten
  * Use tags, instead of commit hashes
  * Switch to ninja
  * Add changelog entries
  * Update objects bundle to v1.5.0
  * Begin requested changes
  * Set consumption time when giving items to guests (#23581)
  * Append panda/elephant/tiger objects before other entertainers
  * Remove InteractiveConsole.h includes where not required (#23578)
  * Tighten the use of locks in JobPool (#23533)
  * Address review comments
  * Fix #21794: Lay-down coaster cars reverse on first frames of downwards corkscrew
  * Merge Localisation/master into OpenRCT2/develop
  * Add changelog entry
  * Add kMebiByte, kKibiByte constants
  * Move WindowFind functions into WindowManager (#23517)
  * Start v0.4.19
  * Release v0.4.18
  * Disable ubuntu docker job in individual steps (#23575)
  * Disable lint-commit job that trips up SignPath runner id when skipped (#23574)
  * Make sure that GuestNextInQueue is not uninitialized
  * Allow save/load for std::span, simplify ReadWriteArray
  * Use std::span for GetStations
  * Ensure ride station queue is not uninitialized, refactor that code
  * Fix file browser resize widget dimensions
  * Remove entry for #23486 from changelog (#23548)
  * Update backtrace token for upcoming v0.4.18 release
  * Allow file browser to optionally display file sizes
  * Rewrite OverwritePromptWindow to use MakeWidget
  * Rename Config::Sort to Config::FileBrowserSort
  * Remember preferred file browser dimensions
  * Link the OpenMusic repo in readme (#23536)
  * Update objects to v1.4.12 (#23535)
  * Add @andOlga to Russian translation credits
  * Add iterator include to SurfaceSelection.cpp (#23532)
  * Correct JavaScript syntax
  * Update changelog.txt
  * Re-create sound channel only for looping sounds
  * Rename Sub6D7AC0 to VehicleSoundFadeInOut
  * Fix #23135: Tree placement has noticable patterns
  * Fix mapgen window reverting to flatland when selecting heightmap image
  * Merge Localisation/master into OpenRCT2/develop
  * Add LoongArch architecture information (#23477)
  * Merge Localisation/master into OpenRCT2/develop
  * Update copyright year to 2025 (#23514)
  * Fix emscripten support
  * Fix editor progression issues (#23511)
  * Change leftover spelling of SuJongkwa to Sujeonggwa
  * Move more simplex functions to SimplexNoise unit
  * Refactor raw height array into HeightMap class
  * Encapsulate map generator in World::MapGenerator namespace
  * Move SurfaceSelection into its own unit as well
  * Remove some unnecessary includes
  * Move TreePlacement into its own unit as well
  * Split off PngTerrainGenerator, SimplexNoise units
  * Move MapGen and MapHelpers units into map_generator folder
  * Move LightFX into its own namespace (#23506)
  * Fix #23496: missing spatial index update when paused (#23505)
  * Prevent closing object selection window when selection is invalid (#23487)
  * Use std::chrono for easier to read durations (#23499)
  * eo-ZZ: Add EO text to Appdata file
  * Exclude peep animation objects in EditorRemoveUnusedObjects
  * Allow filename input directly in file browser window (#23405)
  * EditorObjectSelection: show animation peep type in description
  * Merge Localisation/master into OpenRCT2/develop
  * Update replay tests to v0.0.85
  * Reduce branching when drawing
  * Fix #23471: Traverse the paint nodes in correct order
  * Number track styles
  * Add new pieces to the Stand-Up Roller Coaster
  * Merge Localisation/master into OpenRCT2/develop
  * Remove dead lines in CMakeLists (#23461)
  * Fix guest inventories crashing on particular items (#23469)
  * Fix #1122: Trains can spawn on cable lift hill
  * ca-ES: Amend and complete translation of appdata.xml
  * Fix #23464: Water sparkles don't work properly (#23467)
  * Fix RideRatings.cpp headers (#23466)
  * Move isSlowWalking property to animation group level
  * Merge Localisation/master into OpenRCT2/develop
  * Add French translation to appdata.xml
  * Use ride_type_t in more places
  * Enable opaque water and corkscrew boosters on non-RCT1 installs
  * Fix in game console incorrectly handling formatting tokens. (#23434)
  * Undo whatever that was
  * Remove unused function
  * Refactor how PaintSession uses memory, make it partially static
  * Don't make PaintDrawStruct recursive
  * Raise max number of park entrance objects to 255 (#23413)
  * Fix typo in finance graph max size (#23437)
  * Fix rendering balloons/hats/umbrellas held by guests
  * Expose getCostumeStrings to scripts
  * Move getAvailableCostumeStrings to PeepAnimations
  * Force use of all costumes if noRandomPlacement results in no costumes
  * Rework reading peep anim object properties
  * Refactor PeepAnimationsObject::ReadAnimations into its own method
  * Guest window: make pickup animation lengths dynamic
  * Staff window: make tab animation lengths dynamic
  * Separate RCT12PeepAnimationGroup further from PeepAnimationGroup
  * Let other animation groups copy missing animations from primary group
  * Scripting: list and use available costumes dynamically
  * Read scriptName property from JSON
  * Add checks to ensure an animation object is selected for each peep type
  * EditorObjectSelectionSession: mark peep animation objects in use
  * Rework PeepAnimation construction
  * List available staff costumes dynamically
  * StaffHireNewAction: use peep anim objects; bump network version
  * Use peep animation objects for guest and staff sprites
  * Introduce functions to get a (random) peep anim object by type
  * Drop old PeepAnimationData unit
  * WIP: start reworking PeepAnimationGroup
  * S6Importer: minor refactor of ImportEntityCommonProperties
  * Start working on peep entity animation object conversion
  * Implement loading animation sequences from peep anim object
  * Introduce peep animation objects to object selection window

-------------------------------------------------------------------
Thu Dec 19 13:02:30 UTC 2024 - Björn Kettunen <bjorn.kettunen@thaodan.de>

- Add workaround for lto build #ghub/OpenRCT2/OpenRCT2#23180
- Update dependencies
  * music 1.6
  * sound effects 1.0.5
  * objects 1.4.11
  * title sequences 0.4.14
- Update to version 0.4.17.51.110140b1:
  * fix g2.dat path on win arm64 build (#23427)
  * Remove ImageId::FromUInt32 and ToUInt32 (#23415)
  * Reset all peep sprite bounds at save file import time
  * Compensate inferred sprite bounds for balloon/hat/umbrella sprites
  * Move invalidation out of Peep::UpdateSpriteBoundingBox
  * Fix #23348: console command bugfixes and refactor (#23369)
  * Introduce EnumUtils header (#23407)
  * Load/save window: show folder icon next to folders (#23404)

-------------------------------------------------------------------
- Update dependencies
  * music 1.5
  * sound effects 1.0.5
  * objects 1.4.0

-------------------------------------------------------------------
Thu Aug 31 15:43:37 UTC 2023 - Björn Bidar <bjorn.bidar@thaodan.de>

- Update dependencies
  * music 1.3.1
  * sound effects 1.0.3
  * objects 1.3.11
  * title sequences 0.4.6

-------------------------------------------------------------------
Mon Apr 10 15:25:27 UTC 2023 - Björn Bidar <bjorn.bidar@thaodan.de>

- Update dependencies
  * music 1.2.0 (#19833)

-------------------------------------------------------------------
Thu Mar 30 08:27:30 UTC 2023 - Björn Bidar <bjorn.bidar@thaodan.de>

- Update dependencies
  * objects 1.3.9

-------------------------------------------------------------------
Thu Mar 23 22:35:52 UTC 2023 - Björn Bidar <bjorn.bidar@thaodan.de>

- Remove obsolete hack to avoid use of __DATE__ and __TIME__
  https://github.com/OpenRCT2/OpenRCT2/pull/6864
- Set package version to match rpm version.

-------------------------------------------------------------------
Sun Mar 19 23:29:11 UTC 2023 - Björn Bidar <bjorn.bidar@thaodan.de>

- Fix loading of title sequences, adjust path.
https://github.com/OpenRCT2/OpenRCT2/issues/8110
- Update dependencies
  * objects 1.3.8

-------------------------------------------------------------------
Thu Mar 16 13:27:06 UTC 2023 - Björn Bidar <bjorn.bidar@thaodan.de>

- Create new release for OpenMusic (1.1.0) (#19635) 
- Update soundfx Fix #18904 (#19634) 

-------------------------------------------------------------------
Thu Dec 15 20:09:01 UTC 2022 - Martin Hauke <mardnh@gmx.de>

- Update to version 0.4.3
  https://github.com/OpenRCT2/OpenRCT2/releases/tag/v0.4.3

-------------------------------------------------------------------
Wed Oct  5 19:25:21 UTC 2022 - Martin Hauke <mardnh@gmx.de>

- Update to version 0.4.2
  https://github.com/OpenRCT2/OpenRCT2/blob/develop/debian/changelog
- Update dependencies
  * title-sequences 0.4.0
  * objects 1.3.5
- Drop patch:
  * no-werror.patch
- Use "-Wno-maybe-uninitialized" to avoid compilation errors

-------------------------------------------------------------------
Sun Jun 26 14:01:11 UTC 2022 - Berthold Gunreben <azouhr@opensuse.org>

- Program only knows little endian. Disable s390x builds.

-------------------------------------------------------------------
Mon Nov 22 06:40:34 UTC 2021 - Martin Hauke <mardnh@gmx.de>

- Update to version 0.3.5.1
  * Improved: The Tile Inspector window’s layout has been tweaked
    slightly.
  * Change: Weird bonus for path 0 - likely intended as a queue
    bonus (original bug).
  * Fix: Sometimes small scenery stays when building through it.
  * Fix: Placing track designs at locations blocked by anything
    results in wrong error message.
  * Fix: Tile Inspector can be resized too small.
  * Fix: Tile Inspector has inconsistent text colours.
  * Fix: Crash when opening a ride window for a corrupted vehicle.
  * Fix: Crash when track elements have no ride assigned.
  * Fix: Research status incorrectly considered for scenery when in
    editor modes.
  * Fix: Track designs of some ride types are incorrectly exported
    to TD6.

-------------------------------------------------------------------
Sun Aug  1 06:43:14 UTC 2021 - Carsten Ziepke <kieltux@gmail.com>

- Update to version 0.3.4.1
  * Fix: Crash when placing large scenery.
  * Fix: Crash when removing litter with cheats.
  * Fix: Crash when using banner window.
  * Fix: Crash when opening large scenery signs.
  * Improved: Allow using RCT2 saves to mark RCT Classic
    (.sea) parks as finished and vice versa.
- Update to version 0.3.4
  * Feature: Track List window now displays the path
    to the design when debugging tools are on.
  * Feature: “Vandals stopped” statistic for security
    guards.
  * Feature: Lighting effects for shops and stalls.
  * Feature: Allow using early scenario completion
    in multiplayer.
  * Feature: [Plugin] Add property for getting current
    plugin api version.
  * Feature: [Plugin] Add properties related to guest
    generation.
  * Feature: [Plugin] Add properties related to climate
    and weather.
  * Feature: Opaque water (like in RCT1).
  * Change: [Plugin] Rename Object to LoadedObject to fix
    conflicts with Typescript's Object interface.
  * Change: [Plugin] Rename ListView to ListViewWidget to
    make it consistent with names of other widgets.
  * Change: “No construction above tree height” limitation
    now allows placing high trees.
  * Change: Redesign the About window, including new
    button to copy the current version info.
  * Fix: Visual glitches and crashes when using RCT1 assets
    from mismatched or corrupt CSG1.DAT and CSG1i.DAT files.
  * Fix: Windows can appear off screen with small
    screens or high scaling.
  * Fix: Opening the Options menu causes a noticeable
    drop in FPS.
  * Fix: Block brakes do not animate.
  * Fix: OpenGL: Track preview window, flip/rotate button
    do not update the thumbnail.
  * Fix: Crash when trying to rename Air Powered Vertical
    Coaster in Korean.
  * Fix: join_server uses default_port from config.
  * Fix: Entrances/exits are removed when built on top of
    each other.
  * Fix: Surface smoothing at extra zoom levels not
    working.
  * Fix: Cannot close Options window on Android.
  * Fix: [Plugin] isHidden only works for tile elements
    up to the first element with a base height of over 32.
  * Fix: Confusing message when joining server with
    mismatched network version.
  * Fix: American-style Steam Trains are not imported
    correctly from RCT1 saves.
  * Fix: The “About OpenRCT2” window cannot be themed.
  * Fix: Crash when painting Swinging Ships with
    invalid subtype.
  * Fix: Crash when window is closed during text input.
  * Fix: Ride/Track Design preview does not show if it
    costs more money than available.
  * Fix: Incorrect import of scenery research caused
    all scenery to be unlocked.
  * Fix: Incorrect function call in WallPlaceAction
    plugin code.
  * Fix: Crash when trying to place track when there
    are no free tile elements.
  * Fix: Unable to close changelog window when its
    content fails to load.
  * Fix: Incorrect drop height penalty on log flume ride.
  * Fix: Unable to build in multiplayer as client with
    "Build while paused" cheat enabled when the host is paused.
  * Improved: “Unlock operating limits” cheat now also
    unlocks all music.
  * Improved: Improve startup times.
  * Improved: Add Malgun Gothic and change Nanum Gothic
    filename for Korean.
- Update official objects to 1.2.1
  * Fix grass ID and source games
  * Split footpaths into footpaths and railings
  
-------------------------------------------------------------------
Fri Mar 19 20:42:40 UTC 2021 - Martin Hauke <mardnh@gmx.de>

- Update to version 0.3.3
  * An enhanced Track Designer with ability to add/remove
    scenery and footpaths.
  * The Track Designer has a pause button now.
  * There's a new single-rail roller coaster.
  * Terrain surfaces from RollerCoaster Tycoon 1 are now supported.
  * Lots of plugin improvements and new API additions.
  * Lots of bugfixes.

-------------------------------------------------------------------
Tue Dec 29 10:03:44 UTC 2020 - Matthias Mailänder <matthias@mailaender.name>

- Update to version 0.3.2
- Note: this does now rely on the multi-header version of nlohmann-json
  (already included in Tumbleweed)

-------------------------------------------------------------------
Thu Oct  1 16:08:23 UTC 2020 - Matthias Mailänder <mailaender@opensuse.org>

- Update to version 0.3.1 (enhancements of the plugin API)

-------------------------------------------------------------------
Fri Aug 28 23:34:47 UTC 2020 - Matthias Mailänder <mailaender@opensuse.org>

- Update to version 0.3.0 (major feature: scripting support)

-------------------------------------------------------------------
Sat Jul  4 20:34:50 UTC 2020 - Matthias Mailänder <mailaender@opensuse.org>

- Update to version 0.2.6 (see distribution/changelog.txt)

-------------------------------------------------------------------
Sun Mar 29 15:53:36 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>

- Update to 0.2.5. Many bugfixes since 0.2.3. Check
  https://github.com/OpenRCT2/OpenRCT2/releases for the full list
  New features:
  * Use a random title sequence each time it is shown.
  * Shortcut keys for the Tile Inspector.
  * Transport rides can now be synchronised.
  * Make Track Designs work in multiplayer.
  * Added window for scenery scatter tool
  * Console command to remove all floating objects.
  * Speed is automatically reset to normal upon scenario completion.
  * Remember current group in scenario list window.
  * Increase image list capacity by about 100k units.
  * Increase the number of ride music played
    simultaneously from 2 to 32.
- Drop fix-maybe-uninitialized.patch. Merged upstream.

-------------------------------------------------------------------
Mon Jul 15 20:19:17 UTC 2019 - Ferdinand Thiessen <rpm@fthiessen.de>

- Update to version 0.2.3:
  * Rides can now be simulated with ghost trains during construction.
  * Multi-threaded rendering.
  * Various other bugfixes and improvements.
- Added fix-maybe-uninitialized.patch to fix a gcc warning.
- Added no-werror.patch to build as wno-clobbered does not work
- Install needed object files
  * Fixed boo#1120400
- Splitted optional titlesequences as a subpackage (sequences 
  which need RCT1 or RCT2 to be installed). 
- Update to version 0.2.2:
  * Allow steep slopes on the side-friction roller coaster.
  * Mulitple glyphs for multiple eastern languages have been added
  * Allow building footpaths on 'corner down' terrain.
  * Allow building on-ride photos and water S-bends on the Water
    Coaster.
  * Add replay system.
  * No longer require the generic scenery groups and tarmac footpath
    to be checked when creating a scenario.
  * Client IP address is logged as `(null)` in server logs.
  * Fixed crash when switching between languages.
  * Fixed desync due to boats colliding with ghost pieces.
  * Removed support for scenario text objects.
  * Various other bugfixes and improvements

-------------------------------------------------------------------
Sun Sep  9 17:58:35 UTC 2018 - mailaender@opensuse.org

- Update to version 0.2.1
- Drop mime.patch (included upstream)
- Drop appdata.patch (included upstream) 

-------------------------------------------------------------------
Sat Aug 12 09:53:59 UTC 2017 - mailaender@opensuse.org

- Add mime.patch
- Add appdata.patch

-------------------------------------------------------------------
Fri Aug 11 20:42:58 UTC 2017 - mailaender@opensuse.org

- Update to version 0.1.1
- Drop libsuffix.patch

-------------------------------------------------------------------
Sat Jul 15 14:09:42 UTC 2017 - mailaender@opensuse.org

- Update to version 0.1.0
- Drop download-title-sequences.patch (applied upstream)
- Don't require SDL2_ttf (not used anymore)
- Add libsuffix.patch

-------------------------------------------------------------------
Tue Feb  7 08:53:58 UTC 2017 - mailaender@opensuse.org

- Update to version 0.0.6
  * Drop fix-no-real-prototypes.patch (included upstream)
- Fix the title sequences
  * Drop bundled-title-sequences.patch
  * Add download-title-sequences.patch

-------------------------------------------------------------------
Wed Jan 11 18:46:02 UTC 2017 - rpm@fthiessen.de

- Update to version 0.0.5
  * First version which does not require original exe (just assets)
  * Runs on x64
- Added bundled-title-sequences.patch
- Removed upstream merged patches:
  * 3507.patch
  * 9d1fee2bda3dbbefbf69641876ba6315bcbe6da0.patch

-------------------------------------------------------------------
Sun May  8 11:34:24 UTC 2016 - mailaender@opensuse.org

- Fix file-contains-date-and-time

-------------------------------------------------------------------
Fri May  6 05:53:43 UTC 2016 - mailaender@opensuse.org

- update to version 0.0.4

-------------------------------------------------------------------
Wed Dec 30 11:46:25 UTC 2015 - mailaender@opensuse.org

- initial packaging of version 0.0.3.1


openSUSE Build Service is sponsored by