mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-17 03:53:07 +01:00
* Fix #19800. Crash when more than 62 stations on a ride This is a bit of a temporary fix. The crash happens due to exhausting the space in the formatter but the format string only ever handled 4 stations so it was still not going to work for 5 <=> 62 stations. So for the time being capped the output at 4 stations. * Add changelog entry * Apply review comment
This commit is contained in:
@@ -5772,7 +5772,10 @@ static void WindowRideMeasurementsPaint(WindowBase* w, DrawPixelInfo& dpi)
|
||||
// Ride time
|
||||
ft = Formatter();
|
||||
int32_t numTimes = 0;
|
||||
for (int32_t i = 0; i < ride->num_stations; i++)
|
||||
// TODO: STR_RIDE_TIME only takes up to 4 stations modify to take more
|
||||
// also if modified may need to be split into multiple format strings
|
||||
// as formatter cannot take more than 256 bytes
|
||||
for (int32_t i = 0; i < std::min<int32_t>(ride->num_stations, 4); i++)
|
||||
{
|
||||
StationIndex stationIndex = StationIndex::FromUnderlying(numTimes);
|
||||
auto time = ride->GetStation(stationIndex).SegmentTime;
|
||||
@@ -5810,7 +5813,8 @@ static void WindowRideMeasurementsPaint(WindowBase* w, DrawPixelInfo& dpi)
|
||||
// Ride length
|
||||
ft = Formatter();
|
||||
int32_t numLengths = 0;
|
||||
for (int32_t i = 0; i < ride->num_stations; i++)
|
||||
// TODO: see above STR_RIDE_LENGTH is also only able to display max 4
|
||||
for (int32_t i = 0; i < std::min<int32_t>(ride->num_stations, 4); i++)
|
||||
{
|
||||
StationIndex stationIndex = StationIndex::FromUnderlying(i);
|
||||
auto length = ride->GetStation(stationIndex).SegmentLength;
|
||||
|
||||
Reference in New Issue
Block a user