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.
|
- 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: [#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.
|
- 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)
|
0.4.1 (2022-07-04)
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
|
@ -91,6 +91,7 @@ namespace RCT2
|
||||||
S6Data _s6{};
|
S6Data _s6{};
|
||||||
uint8_t _gameVersion = 0;
|
uint8_t _gameVersion = 0;
|
||||||
bool _isSV7 = false;
|
bool _isSV7 = false;
|
||||||
|
bool _isScenario = false;
|
||||||
OpenRCT2::BitSet<Limits::MaxRidesInPark> _isFlatRide{};
|
OpenRCT2::BitSet<Limits::MaxRidesInPark> _isFlatRide{};
|
||||||
ObjectEntryIndex _pathToSurfaceMap[16];
|
ObjectEntryIndex _pathToSurfaceMap[16];
|
||||||
ObjectEntryIndex _pathToQueueSurfaceMap[16];
|
ObjectEntryIndex _pathToQueueSurfaceMap[16];
|
||||||
|
@ -205,6 +206,7 @@ namespace RCT2
|
||||||
chunkReader.ReadChunk(&_s6.next_free_tile_element_pointer_index, 3048816);
|
chunkReader.ReadChunk(&_s6.next_free_tile_element_pointer_index, 3048816);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_isScenario = isScenario;
|
||||||
_s6Path = path;
|
_s6Path = path;
|
||||||
|
|
||||||
return ParkLoadResult(GetRequiredObjects());
|
return ParkLoadResult(GetRequiredObjects());
|
||||||
|
@ -500,6 +502,7 @@ namespace RCT2
|
||||||
park.Name = GetUserString(_s6.park_name);
|
park.Name = GetUserString(_s6.park_name);
|
||||||
|
|
||||||
FixLandOwnership();
|
FixLandOwnership();
|
||||||
|
FixAyersRockScenario();
|
||||||
|
|
||||||
research_determine_first_of_type();
|
research_determine_first_of_type();
|
||||||
UpdateConsolidatedPatrolAreas();
|
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()
|
void ImportRides()
|
||||||
{
|
{
|
||||||
for (uint8_t index = 0; index < Limits::MaxRidesInPark; index++)
|
for (uint8_t index = 0; index < Limits::MaxRidesInPark; index++)
|
||||||
|
|
Loading…
Reference in New Issue