This issue, along with several related language-specific
trunctions, was traced back to the fact that ScenarioIndexEntry
uses a fixed-length array of utf8 characters to store the name,
internal name, and scenario details. In some cases, this does
not provide enough characters to contain the full description
and so the safe copy methods truncate them to fit in the
available buffer.
Since the use of fixed-size arrays is a holdover from earlier
C code, this commit addresses the issue by changing ScenarioIndexEntry
to use proper utf8 strings and string views, which do not require
truncation.
* Rename ClimateState to WeatherState
* Rename ClimateCurrent to WeatherCurrent
* Rename ClimateNext to WeatherNext
* Rename ClimateUpdateTimer to WeatherUpdateTimer
* Use named initialisers for weather state import in S4/S6 importers
* Rename S4::ClimateTimer to WeatherUpdateTimer as well
* Rename WeatherState struct properties to lowerCamelCase
* Clean up internal localisation header includes
* Remove some external localisation includes
* Remove dependency on FormatCodes.h from InteractiveConsole.h
* Reduce Formatter.h, Localisation.Date.h includes
- Feature: [#23328] Introducing peep animation objects, enabling custom entertainer costumes.
- Feature: [#23569] Add large diagonal flat to steep and dive loop track pieces.
- Improved: [#20683] Allow Giga Coaster cable lift to start after block brake section.
- Improved: [#23328] The costume list in the staff window is now ordered alphabetically.
- Improved: [#23540] The file browser now optionally shows a file size column.
- Improved: [#23640] Building sprite repository with command line can use images array of JSON parkobj.
- Improved: [#23660] The ‘special elements’ dropdown has been reorganised, now using multiple columns and separators.
- Improved: [#23730] Added optional button to toolbar to rotate view anti-clockwise.
- Change: [#23328] All RCT2 entertainer costumes are now available in legacy parks.
- Fix: [#1479] Incorrect values provided by the in game console “get location” command.
- Fix: [#21794] Lay-down coaster cars reverse on first frames of downwards corkscrew.
- Fix: [#23221] Track designs are saved with an incorrect ‘air’ time statistic.
- Fix: [#23368] Incorrect refund amount when deleting track pieces at or above 96m.
- Fix: [#23508] Simultaneous virtual floors shown for ride and footpath.
- Fix: [#23512] Holding brakes are skipped if they’re too close together.
- Fix: [#23581] [Plugin] Food/drink items given to guests have no consumption duration set.
- Fix: [#23591] “Install new track” button in Track Designs Manager is misaligned.
- Fix: [#23618] Can no longer build diagonal brakes & block brakes on Steeplechase, Inverted Lay-down, & Inverted Multi-Dim roller coasters.
* Rename kClimateTransitions, kClimateWeatherData, kClimateWeatherGloom
* Rename WeatherTransition::DistributionSize to RandomBias
* Rename WeatherTransition type to WeatherPattern
* Rename WeatherState type to WeatherTrait and take internally
* Rename ThunderStatus type, kMaxThunderInstances constant