mirror of https://github.com/OpenRCT2/OpenRCT2.git
Part of #13874: Replace Sequence Element Wall table
This commit is contained in:
parent
382315b2c3
commit
a29b369ff8
|
@ -400,11 +400,10 @@ GameActions::Result::Ptr TrackPlaceAction::Execute() const
|
|||
|
||||
uint32_t rideTypeFlags = ride->GetRideTypeDescriptor().Flags;
|
||||
|
||||
const uint8_t(*wallEdges)[16];
|
||||
wallEdges = &TrackSequenceElementAllowedWallEdges[_trackType];
|
||||
const auto& teDescriptor = GetTrackElementDescriptor(_trackType);
|
||||
auto wallEdges = teDescriptor.SequenceElementAllowedWallEdges;
|
||||
|
||||
money32 cost = 0;
|
||||
const auto& teDescriptor = GetTrackElementDescriptor(_trackType);
|
||||
const rct_preview_track* trackBlock = teDescriptor.Block;
|
||||
for (int32_t blockIndex = 0; trackBlock->index != 0xFF; trackBlock++, blockIndex++)
|
||||
{
|
||||
|
@ -452,7 +451,7 @@ GameActions::Result::Ptr TrackPlaceAction::Execute() const
|
|||
else
|
||||
{
|
||||
// Remove walls in the directions this track intersects
|
||||
uint8_t intersectingDirections = (*wallEdges)[blockIndex];
|
||||
uint8_t intersectingDirections = wallEdges[blockIndex];
|
||||
intersectingDirections ^= 0x0F;
|
||||
intersectingDirections = rol4(intersectingDirections, _origin.direction);
|
||||
for (int32_t i = 0; i < NumOrthogonalDirections; i++)
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "../world/Surface.h"
|
||||
#include "../world/Wall.h"
|
||||
|
||||
using namespace OpenRCT2::TrackMetaData;
|
||||
WallPlaceActionResult::WallPlaceActionResult()
|
||||
: GameActions::Result(GameActions::Status::Ok, STR_CANT_BUILD_THIS_HERE)
|
||||
{
|
||||
|
@ -592,7 +593,8 @@ bool WallPlaceAction::TrackIsAllowedWallEdges(
|
|||
{
|
||||
if (!GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_TRACK_NO_WALLS))
|
||||
{
|
||||
if (TrackSequenceElementAllowedWallEdges[trackType][trackSequence] & (1 << direction))
|
||||
const auto& teDescriptor = GetTrackElementDescriptor(trackType);
|
||||
if (teDescriptor.SequenceElementAllowedWallEdges[trackSequence] & (1 << direction))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -4587,7 +4587,7 @@ const static uint32_t TrackHeightMarkerPositions[TrackElemType::Count] = {
|
|||
};
|
||||
|
||||
/** rct2: 0x00999A94 */
|
||||
const uint8_t TrackSequenceElementAllowedWallEdges[TrackElemType::Count][MaxSequencesPerPiece] = {
|
||||
const static uint8_t TrackSequenceElementAllowedWallEdges[TrackElemType::Count][MaxSequencesPerPiece] = {
|
||||
{ 0b1010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::Flat
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::EndStation
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // TrackElemType::BeginStation
|
||||
|
|
|
@ -57,8 +57,6 @@ constexpr const dodgems_track_size DodgemsTrackSize(track_type_t type)
|
|||
return { 0, 0, 0, 0 };
|
||||
}
|
||||
|
||||
extern const uint8_t TrackSequenceElementAllowedWallEdges[TrackElemType::Count][16];
|
||||
|
||||
struct TrackElementDescriptor
|
||||
{
|
||||
rct_track_coordinates Coordinates;
|
||||
|
|
Loading…
Reference in New Issue