mirror of https://github.com/OpenRCT2/OpenRCT2.git
Fix #17444: “Manta Ray” boats slowed down too much in “Ayers Rock”
This commit is contained in:
parent
fe2f1bad5a
commit
1bf49f95ba
|
@ -3,6 +3,7 @@
|
|||
- Feature: [#16662] Show a warning message when g2.dat is mismatched.
|
||||
- Change: [#17319] Giant screenshots are now cropped to the horizontal view-clipping selection.
|
||||
- Change: [#17499] Update error text when using vehicle incompatible with TD6 and add error when using incompatible track elements.
|
||||
- Fix: [#17444] “Manta Ray” boats slowed down too much in “Ayers Rock” scenario (original bug).
|
||||
|
||||
0.4.1 (2022-07-04)
|
||||
------------------------------------------------------------------------
|
||||
|
|
|
@ -91,6 +91,7 @@ namespace RCT2
|
|||
S6Data _s6{};
|
||||
uint8_t _gameVersion = 0;
|
||||
bool _isSV7 = false;
|
||||
bool _isScenario = false;
|
||||
OpenRCT2::BitSet<Limits::MaxRidesInPark> _isFlatRide{};
|
||||
ObjectEntryIndex _pathToSurfaceMap[16];
|
||||
ObjectEntryIndex _pathToQueueSurfaceMap[16];
|
||||
|
@ -205,6 +206,7 @@ namespace RCT2
|
|||
chunkReader.ReadChunk(&_s6.next_free_tile_element_pointer_index, 3048816);
|
||||
}
|
||||
|
||||
_isScenario = isScenario;
|
||||
_s6Path = path;
|
||||
|
||||
return ParkLoadResult(GetRequiredObjects());
|
||||
|
@ -500,6 +502,7 @@ namespace RCT2
|
|||
park.Name = GetUserString(_s6.park_name);
|
||||
|
||||
FixLandOwnership();
|
||||
FixAyersRockScenario();
|
||||
|
||||
research_determine_first_of_type();
|
||||
UpdateConsolidatedPatrolAreas();
|
||||
|
@ -571,6 +574,60 @@ namespace RCT2
|
|||
}
|
||||
}
|
||||
|
||||
void FixAyersRockScenario() const
|
||||
{
|
||||
if (!_isScenario || !String::Equals(_s6.scenario_filename, "Australasia - Ayers Rock.SC6"))
|
||||
return;
|
||||
|
||||
TileCoordsXY tilesToUncovered[] = {
|
||||
{ 123, 59 }, { 123, 60 }, { 123, 61 }, { 118, 69 }, { 118, 70 }, { 118, 71 },
|
||||
{ 118, 72 }, { 118, 73 }, { 112, 79 }, { 112, 80 }, { 112, 81 }, { 112, 82 },
|
||||
};
|
||||
for (const auto& tile : tilesToUncovered)
|
||||
{
|
||||
auto* tileElement = map_get_first_element_at(tile);
|
||||
if (tileElement == nullptr)
|
||||
continue;
|
||||
|
||||
do
|
||||
{
|
||||
if (tileElement->GetType() != TileElementType::Track)
|
||||
continue;
|
||||
|
||||
auto* trackElement = tileElement->AsTrack();
|
||||
if (trackElement->GetTrackType() != TrackElemType::FlatCovered)
|
||||
continue;
|
||||
|
||||
trackElement->SetTrackType(TrackElemType::Flat);
|
||||
} while (!(tileElement++)->IsLastForTile());
|
||||
}
|
||||
|
||||
TileCoordsXY tilesToCovered[] = {
|
||||
{ 123, 83 },
|
||||
{ 123, 84 },
|
||||
{ 123, 85 },
|
||||
{ 123, 86 },
|
||||
};
|
||||
for (const auto& tile : tilesToCovered)
|
||||
{
|
||||
auto* tileElement = map_get_first_element_at(tile);
|
||||
if (tileElement == nullptr)
|
||||
continue;
|
||||
|
||||
do
|
||||
{
|
||||
if (tileElement->GetType() != TileElementType::Track)
|
||||
continue;
|
||||
|
||||
auto* trackElement = tileElement->AsTrack();
|
||||
if (trackElement->GetTrackType() != TrackElemType::Flat)
|
||||
continue;
|
||||
|
||||
trackElement->SetTrackType(TrackElemType::FlatCovered);
|
||||
} while (!(tileElement++)->IsLastForTile());
|
||||
}
|
||||
}
|
||||
|
||||
void ImportRides()
|
||||
{
|
||||
for (uint8_t index = 0; index < Limits::MaxRidesInPark; index++)
|
||||
|
|
Loading…
Reference in New Issue