Merge pull request #20969 from Gymnasiast/refactor/more-wooden-supports

Replace usages of old WoodenBSupportsSetup() overload
This commit is contained in:
Ted John 2023-11-17 17:59:17 +00:00 committed by GitHub
commit 18dec7d5c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 504 additions and 1479 deletions

View File

@ -353,19 +353,19 @@ static constexpr UnkSupportsDescriptor Byte97B23C[] = {
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1}, // ?
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1}, // ?
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1}, // ?
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{2, 2, 1}, {28, 28, 2}}, 0, 1},
{{{2, 2, 1}, {28, 28, 2}}, 0, 1}, // Large scenery (all directions)
{{{0, 0, 0}, {1, 1, 8}}, 0, 1}, // Flat to steep large 1
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
{{{0, 0, 0}, {1, 1, 8}}, 0, 1},
@ -680,16 +680,32 @@ bool WoodenASupportsPaintSetup(
return hasSupports;
}
static int32_t GetSpecialOffsetForTransitionType(WoodenSupportTransitionType transitionType, Direction direction)
{
if (transitionType == WoodenSupportTransitionType::None)
return 0;
// "Special" values are an offset into tables like Byte97B23C, plus 1.
// Save for WoodenSupportTransitionType::LargeScenery, there are four entries (one per direction) for every
// transition type. While these tables will have to be refactored in due course, we can only do so once all
// drawing functions use WoodenSupportTransitionType instead of passing the "special" value directly.
int32_t specialOffset = 0;
if (transitionType < WoodenSupportTransitionType::Scenery)
specialOffset = (EnumValue(transitionType) * NumOrthogonalDirections) + direction;
else if (transitionType == WoodenSupportTransitionType::Scenery)
specialOffset = (EnumValue(transitionType) * NumOrthogonalDirections);
else
specialOffset = (EnumValue(transitionType) * NumOrthogonalDirections) + direction - 3;
return specialOffset + 1;
}
bool WoodenASupportsPaintSetup(
PaintSession& session, WoodenSupportType supportType, WoodenSupportSubType subType, int32_t height, ImageId imageTemplate,
WoodenSupportTransitionType transitionType, Direction direction)
{
int32_t oldSupportType = (EnumValue(supportType) * 6) + EnumValue(subType);
int32_t special = 0;
if (transitionType != WoodenSupportTransitionType::None)
{
special = (EnumValue(transitionType) * NumOrthogonalDirections) + direction + 1;
}
int32_t special = GetSpecialOffsetForTransitionType(transitionType, direction);
return WoodenASupportsPaintSetup(session, oldSupportType, special, height, imageTemplate);
}
@ -714,7 +730,7 @@ bool WoodenASupportsPaintSetupRotated(
*
* @return (al) whether supports have been drawn
*/
bool WoodenBSupportsPaintSetup(
static bool WoodenBSupportsPaintSetup(
PaintSession& session, int32_t supportType, int32_t special, int32_t height, ImageId imageTemplate)
{
if (!(session.Flags & PaintSessionFlags::PassedSurface))
@ -829,11 +845,7 @@ bool WoodenBSupportsPaintSetup(
WoodenSupportTransitionType transitionType, Direction direction)
{
int32_t oldSupportType = (EnumValue(supportType) * 6) + EnumValue(subType);
int32_t special = 0;
if (transitionType != WoodenSupportTransitionType::None)
{
special = (EnumValue(transitionType) * NumOrthogonalDirections) + direction + 1;
}
int32_t special = GetSpecialOffsetForTransitionType(transitionType, direction);
return WoodenBSupportsPaintSetup(session, oldSupportType, special, height, imageTemplate);
}

View File

@ -42,6 +42,7 @@ enum class WoodenSupportTransitionType : uint8_t
Up25DegToUp60Deg = 3,
Up60DegToUp25Deg = 4,
Up60Deg = 5,
Scenery = 12,
};
// There are 13 types of metal supports. A graphic showing all of them is available here:
@ -127,8 +128,6 @@ bool WoodenASupportsPaintSetup(
bool WoodenASupportsPaintSetupRotated(
PaintSession& session, WoodenSupportType supportType, WoodenSupportSubType subType, Direction direction, int32_t height,
ImageId imageTemplate, WoodenSupportTransitionType transitionType = WoodenSupportTransitionType::None);
bool WoodenBSupportsPaintSetup(
PaintSession& session, int32_t supportType, int32_t special, int32_t height, ImageId imageTemplate);
bool WoodenBSupportsPaintSetup(
PaintSession& session, WoodenSupportType supportType, WoodenSupportSubType subType, int32_t height, ImageId imageTemplate,
WoodenSupportTransitionType transitionType = WoodenSupportTransitionType::None, Direction direction = 0);

View File

@ -61,15 +61,16 @@ static void PaintLargeScenerySupports(
if (tile.flags & LARGE_SCENERY_TILE_FLAG_NO_SUPPORTS)
return;
auto special = 0;
auto transitionType = WoodenSupportTransitionType::None;
auto supportHeight = height;
if (supportHeight & 0xF)
{
supportHeight &= ~0xF;
special = 49;
transitionType = WoodenSupportTransitionType::Scenery;
}
WoodenBSupportsPaintSetup(session, (direction & 1), special, supportHeight, imageTemplate);
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, supportHeight, imageTemplate, transitionType);
int32_t clearanceHeight = Ceil2(tileElement.GetClearanceZ() + 15, 16);
if (tile.flags & LARGE_SCENERY_TILE_FLAG_ALLOW_SUPPORTS_ABOVE)

View File

@ -42,12 +42,12 @@ static void PaintSmallScenerySupports(
if (sceneryEntry.HasFlag(SMALL_SCENERY_FLAG_NO_SUPPORTS))
return;
auto special = 0;
auto transitionType = WoodenSupportTransitionType::None;
auto supportHeight = height;
if (supportHeight & 0xF)
{
supportHeight &= ~0xF;
special = 49;
transitionType = WoodenSupportTransitionType::Scenery;
}
auto supportImageTemplate = ImageId().WithRemap(0);
@ -60,8 +60,9 @@ static void PaintSmallScenerySupports(
supportImageTemplate = imageTemplate;
}
auto supportType = (direction & 1) ? 1 : 0;
WoodenBSupportsPaintSetup(session, supportType, special, supportHeight, supportImageTemplate);
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, supportHeight, supportImageTemplate,
transitionType);
}
static void SetSupportHeights(

File diff suppressed because it is too large Load Diff

View File

@ -1987,16 +1987,6 @@ static void SideFrictionRCTrackDiag25DegUp(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21868), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -2011,19 +2001,14 @@ static void SideFrictionRCTrackDiag25DegUp(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21844), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -2032,12 +2017,6 @@ static void SideFrictionRCTrackDiag25DegUp(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21866), { -16, -16, height },
@ -2045,10 +2024,6 @@ static void SideFrictionRCTrackDiag25DegUp(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21869), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -2056,12 +2031,6 @@ static void SideFrictionRCTrackDiag25DegUp(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21842), { -16, -16, height },
@ -2069,13 +2038,14 @@ static void SideFrictionRCTrackDiag25DegUp(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21845), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -2319,16 +2289,6 @@ static void SideFrictionRCTrackDiag25DegUpToFlat(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21862), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -2343,19 +2303,14 @@ static void SideFrictionRCTrackDiag25DegUpToFlat(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21838), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -2364,12 +2319,6 @@ static void SideFrictionRCTrackDiag25DegUpToFlat(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21860), { -16, -16, height },
@ -2377,10 +2326,6 @@ static void SideFrictionRCTrackDiag25DegUpToFlat(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21863), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -2388,12 +2333,6 @@ static void SideFrictionRCTrackDiag25DegUpToFlat(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21836), { -16, -16, height },
@ -2401,13 +2340,14 @@ static void SideFrictionRCTrackDiag25DegUpToFlat(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21839), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -2485,16 +2425,6 @@ static void SideFrictionRCTrackDiag25DegDown(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21869), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -2509,19 +2439,14 @@ static void SideFrictionRCTrackDiag25DegDown(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21845), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -2530,12 +2455,6 @@ static void SideFrictionRCTrackDiag25DegDown(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21864), { -16, -16, height },
@ -2543,10 +2462,6 @@ static void SideFrictionRCTrackDiag25DegDown(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21868), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -2554,12 +2469,6 @@ static void SideFrictionRCTrackDiag25DegDown(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21840), { -16, -16, height },
@ -2567,13 +2476,14 @@ static void SideFrictionRCTrackDiag25DegDown(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21844), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -2649,16 +2559,6 @@ static void SideFrictionRCTrackDiagFlatTo25DegDown(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21863), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -2673,31 +2573,20 @@ static void SideFrictionRCTrackDiagFlatTo25DegDown(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21839), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
if (trackElement.HasChain())
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21858), { -16, -16, height },
@ -2705,10 +2594,6 @@ static void SideFrictionRCTrackDiagFlatTo25DegDown(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21862), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -2716,12 +2601,6 @@ static void SideFrictionRCTrackDiagFlatTo25DegDown(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21834), { -16, -16, height },
@ -2729,13 +2608,14 @@ static void SideFrictionRCTrackDiagFlatTo25DegDown(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(21838), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
if (trackElement.HasChain())
@ -3172,31 +3052,19 @@ static void SideFrictionRCTrackDiag60DegUp(
session, direction,
session.TrackColours[SCHEME_TRACK].WithIndex(SPR_SIDE_FRICTION_DIAG_60_DEG_UP_DIR_0_B),
{ -16, -16, height }, { { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 104, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction,
@ -3206,12 +3074,13 @@ static void SideFrictionRCTrackDiag60DegUp(
session, direction,
session.TrackColours[SCHEME_TRACK].WithIndex(SPR_SIDE_FRICTION_DIAG_60_DEG_UP_DIR_2_B),
{ -16, -16, height }, { { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 104, 0x20);
break;
@ -3270,30 +3139,19 @@ static void SideFrictionRCTrackDiag60DegUpTo25DegUp(
session, direction,
session.TrackColours[SCHEME_TRACK].WithIndex(SPR_SIDE_FRICTION_DIAG_60_DEG_UP_TO_25_DEG_UP_DIR_0_B),
{ -16, -16, height }, { { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction,
@ -3303,12 +3161,13 @@ static void SideFrictionRCTrackDiag60DegUpTo25DegUp(
session, direction,
session.TrackColours[SCHEME_TRACK].WithIndex(SPR_SIDE_FRICTION_DIAG_60_DEG_UP_TO_25_DEG_UP_DIR_2_B),
{ -16, -16, height }, { { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
break;
@ -3365,30 +3224,19 @@ static void SideFrictionRCTrackDiag25DegUpTo60DegUp(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(24033), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction,
@ -3397,12 +3245,13 @@ static void SideFrictionRCTrackDiag25DegUpTo60DegUp(
PaintAddImageAsParentRotated(
session, direction, session.TrackColours[SCHEME_TRACK].WithIndex(24034), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
break;

View File

@ -9504,18 +9504,11 @@ static void WoodenRCTrackDiag25DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24935), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
}
else
{
@ -9534,18 +9527,11 @@ static void WoodenRCTrackDiag25DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24893), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
@ -9555,12 +9541,6 @@ static void WoodenRCTrackDiag25DegUp(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24067),
@ -9574,10 +9554,6 @@ static void WoodenRCTrackDiag25DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24936), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -9585,12 +9561,6 @@ static void WoodenRCTrackDiag25DegUp(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24025),
@ -9604,13 +9574,14 @@ static void WoodenRCTrackDiag25DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24894), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -9688,30 +9659,17 @@ static void WoodenRCTrackDiag60DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24911), { -16, -16, height },
{ { -16, -16, height + 91 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 104, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24043), { -16, -16, height },
@ -9725,12 +9683,13 @@ static void WoodenRCTrackDiag60DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24912), { -16, -16, height },
{ { -16, -16, height + 91 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 104, 0x20);
break;
@ -9994,30 +9953,17 @@ static void WoodenRCTrackDiag25DegUpTo60DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24899), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24031), { -16, -16, height },
@ -10031,12 +9977,13 @@ static void WoodenRCTrackDiag25DegUpTo60DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24900), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20);
break;
@ -10097,30 +10044,17 @@ static void WoodenRCTrackDiag60DegUpTo25DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24905), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24037), { -16, -16, height },
@ -10134,12 +10068,11 @@ static void WoodenRCTrackDiag60DegUpTo25DegUp(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24906), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20);
break;
@ -10219,18 +10152,11 @@ static void WoodenRCTrackDiag25DegUpToFlat(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24929), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
}
else
{
@ -10249,18 +10175,11 @@ static void WoodenRCTrackDiag25DegUpToFlat(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24887), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
@ -10270,12 +10189,6 @@ static void WoodenRCTrackDiag25DegUpToFlat(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24061),
@ -10289,10 +10202,6 @@ static void WoodenRCTrackDiag25DegUpToFlat(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24930), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -10300,12 +10209,6 @@ static void WoodenRCTrackDiag25DegUpToFlat(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24019),
@ -10319,13 +10222,14 @@ static void WoodenRCTrackDiag25DegUpToFlat(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24888), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -10422,18 +10326,11 @@ static void WoodenRCTrackDiag25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24936), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
}
else
{
@ -10452,18 +10349,11 @@ static void WoodenRCTrackDiag25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24894), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
@ -10473,12 +10363,6 @@ static void WoodenRCTrackDiag25DegDown(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24065),
@ -10492,10 +10376,6 @@ static void WoodenRCTrackDiag25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24935), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -10503,12 +10383,6 @@ static void WoodenRCTrackDiag25DegDown(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24023),
@ -10522,13 +10396,14 @@ static void WoodenRCTrackDiag25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24893), { -16, -16, height },
{ { -16, -16, height + 43 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -10606,30 +10481,17 @@ static void WoodenRCTrackDiag60DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24912), { -16, -16, height },
{ { -16, -16, height + 91 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 104, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24041), { -16, -16, height },
@ -10643,12 +10505,11 @@ static void WoodenRCTrackDiag60DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24911), { -16, -16, height },
{ { -16, -16, height + 91 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 104, 0x20);
break;
@ -10726,18 +10587,11 @@ static void WoodenRCTrackDiagFlatTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24930), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
}
else
{
@ -10756,18 +10610,11 @@ static void WoodenRCTrackDiagFlatTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24888), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
}
break;
case 2:
@ -10775,12 +10622,6 @@ static void WoodenRCTrackDiagFlatTo25DegDown(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24059),
@ -10794,10 +10635,6 @@ static void WoodenRCTrackDiagFlatTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24929), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
@ -10805,12 +10642,6 @@ static void WoodenRCTrackDiagFlatTo25DegDown(
{
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24017),
@ -10824,13 +10655,14 @@ static void WoodenRCTrackDiagFlatTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24887), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
if (trackElement.HasChain())
@ -10907,30 +10739,17 @@ static void WoodenRCTrackDiag25DegDownTo60DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24906), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24035), { -16, -16, height },
@ -10944,12 +10763,11 @@ static void WoodenRCTrackDiag25DegDownTo60DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24905), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20);
break;
@ -11010,30 +10828,17 @@ static void WoodenRCTrackDiag60DegDownTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24900), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24029), { -16, -16, height },
@ -11047,12 +10852,11 @@ static void WoodenRCTrackDiag60DegDownTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24899), { -16, -16, height },
{ { -16, -16, height + 59 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20);
break;
@ -11934,30 +11738,17 @@ static void WoodenRCTrackDiag25DegUpToLeftBank(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24959), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24091), { -16, -16, height },
@ -11971,12 +11762,11 @@ static void WoodenRCTrackDiag25DegUpToLeftBank(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24960), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -12037,30 +11827,17 @@ static void WoodenRCTrackDiag25DegUpToRightBank(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24965), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24097), { -16, -16, height },
@ -12074,12 +11851,11 @@ static void WoodenRCTrackDiag25DegUpToRightBank(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24966), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20);
break;
@ -12138,28 +11914,15 @@ static void WoodenRCTrackDiagLeftBankTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24966), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24095), { -16, -16, height },
@ -12173,12 +11936,13 @@ static void WoodenRCTrackDiagLeftBankTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24965), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
switch (direction)
@ -12236,28 +12000,15 @@ static void WoodenRCTrackDiagRightBankTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24960), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
switch (direction)
{
case 0:
WoodenBSupportsPaintSetup(session, 4, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 1:
WoodenBSupportsPaintSetup(session, 5, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 2:
PaintAddImageAsParentRotated(
session, direction, WoodenRCGetTrackColour<isClassic>(session).WithIndex(24089), { -16, -16, height },
@ -12271,12 +12022,11 @@ static void WoodenRCTrackDiagRightBankTo25DegDown(
PaintAddImageAsChildRotated(
session, direction, WoodenRCGetRailsColour(session).WithIndex(24959), { -16, -16, height },
{ { -16, -16, height + 35 }, { 32, 32, 0 } });
WoodenBSupportsPaintSetup(session, 2, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
WoodenBSupportsPaintSetup(session, 3, 0, height + 16, session.TrackColours[SCHEME_SUPPORTS]);
break;
}
WoodenBSupportsPaintSetupRotated(
session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height + 16,
session.TrackColours[SCHEME_SUPPORTS]);
break;
case 3:
switch (direction)

View File

@ -1846,27 +1846,6 @@ static void MiniatureRailwayTrackDiagFlat(
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
}
enum
{
WOOD_A = 0,
WOOD_B = 1,
};
static bool WoodenSupportsPaintSetup(
PaintSession& session, int32_t woodType, int32_t supportType, int32_t special, int32_t height, ImageId imageColourFlags)
{
switch (woodType)
{
case WOOD_A:
return WoodenASupportsPaintSetup(session, supportType, special, height, imageColourFlags);
case WOOD_B:
return WoodenBSupportsPaintSetup(session, supportType, special, height, imageColourFlags);
}
return false;
}
/** rct2: 0x008AD230 */
static void MiniatureRailwayTrackDiag25DegUp(
PaintSession& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height,
@ -1888,19 +1867,22 @@ static void MiniatureRailwayTrackDiag25DegUp(
auto supportType = _diagSupportTypes[direction][trackSequence];
if (supportType.has_value())
{
// TODO: The supports are inconsistent for different rotations
int8_t supportFunction = WOOD_B;
if (supportType == WoodenSupportSubType::NeSw || supportType == WoodenSupportSubType::NwSe)
{
supportFunction = WOOD_A;
}
const auto enumValue = EnumValue(supportType.value());
floorImage = floors[enumValue].image_id;
floorBoundSize = floors[enumValue].bound_size;
floorBoundOffset = floors[enumValue].bound_offset;
hasSupports = WoodenSupportsPaintSetup(
session, supportFunction, enumValue, 0, height + heightDiff, session.TrackColours[SCHEME_SUPPORTS]);
if (trackSequence == 3)
{
hasSupports = WoodenASupportsPaintSetup(
session, enumValue, 0, height + heightDiff, session.TrackColours[SCHEME_SUPPORTS]);
}
else
{
hasSupports = WoodenBSupportsPaintSetup(
session, WoodenSupportType::Truss, supportType.value(), height + heightDiff,
session.TrackColours[SCHEME_SUPPORTS]);
}
}
if (direction == 1 && trackSequence == 3)
@ -2012,12 +1994,6 @@ static void MiniatureRailwayTrackDiag25DegUpToFlat(
{ 0, -8, -8, +8 },
};
int8_t supportFunction = WOOD_B;
if (trackSequence == 3)
{
supportFunction = WOOD_A;
}
bool hasSupports = false;
auto supportType = _diagSupportTypes[direction][trackSequence];
@ -2031,9 +2007,18 @@ static void MiniatureRailwayTrackDiag25DegUpToFlat(
floorImage = floors[enumValue].image_id;
floorBoundSize = floors[enumValue].bound_size;
floorBoundOffset = floors[enumValue].bound_offset;
hasSupports = WoodenSupportsPaintSetup(
session, supportFunction, enumValue, 0, height + supportOffsets[direction][trackSequence],
session.TrackColours[SCHEME_SUPPORTS]);
if (trackSequence == 3)
{
hasSupports = WoodenASupportsPaintSetup(
session, enumValue, 0, height + supportOffsets[direction][trackSequence],
session.TrackColours[SCHEME_SUPPORTS]);
}
else
{
hasSupports = WoodenBSupportsPaintSetup(
session, WoodenSupportType::Truss, supportType.value(), height + supportOffsets[direction][trackSequence],
session.TrackColours[SCHEME_SUPPORTS]);
}
}
if (direction == 1 && trackSequence == 3)
@ -2089,12 +2074,6 @@ static void MiniatureRailwayTrackDiag25DegDown(
{ 0, -8, -8, -8 },
};
int8_t supportFunction = WOOD_B;
if (trackSequence == 3)
{
supportFunction = WOOD_A;
}
bool hasSupports = false;
uint32_t floorImage = 0;
@ -2108,9 +2087,18 @@ static void MiniatureRailwayTrackDiag25DegDown(
floorImage = floors[enumValue].image_id;
floorBoundSize = floors[enumValue].bound_size;
floorBoundOffset = floors[enumValue].bound_offset;
hasSupports = WoodenSupportsPaintSetup(
session, supportFunction, enumValue, 0, height + supportOffsets[direction][trackSequence],
session.TrackColours[SCHEME_SUPPORTS]);
if (trackSequence == 3)
{
hasSupports = WoodenASupportsPaintSetup(
session, enumValue, 0, height + supportOffsets[direction][trackSequence],
session.TrackColours[SCHEME_SUPPORTS]);
}
else
{
hasSupports = WoodenBSupportsPaintSetup(
session, WoodenSupportType::Truss, supportType.value(), height + supportOffsets[direction][trackSequence],
session.TrackColours[SCHEME_SUPPORTS]);
}
}
if (direction == 1 && trackSequence == 3)
@ -2165,12 +2153,6 @@ static void MiniatureRailwayTrackDiagFlatTo25DegDown(
{ 0, -8, -8, -8 },
};
int8_t supportFunction = WOOD_B;
if (trackSequence == 3)
{
supportFunction = WOOD_A;
}
bool hasSupports = false;
uint32_t floorImage = 0;
CoordsXY floorBoundSize;
@ -2183,9 +2165,18 @@ static void MiniatureRailwayTrackDiagFlatTo25DegDown(
floorImage = floors[enumValue].image_id;
floorBoundSize = floors[enumValue].bound_size;
floorBoundOffset = floors[enumValue].bound_offset;
hasSupports = WoodenSupportsPaintSetup(
session, supportFunction, enumValue, 0, height + supportOffsets[direction][trackSequence],
session.TrackColours[SCHEME_SUPPORTS]);
if (trackSequence == 3)
{
hasSupports = WoodenASupportsPaintSetup(
session, enumValue, 0, height + supportOffsets[direction][trackSequence],
session.TrackColours[SCHEME_SUPPORTS]);
}
else
{
hasSupports = WoodenBSupportsPaintSetup(
session, WoodenSupportType::Truss, supportType.value(), height + supportOffsets[direction][trackSequence],
session.TrackColours[SCHEME_SUPPORTS]);
}
}
if (direction == 1 && trackSequence == 3)