You've already forked OpenRCT2-Unity
mirror of
https://github.com/izzy2lost/OpenRCT2-Unity.git
synced 2026-03-10 12:38:22 -07:00
Merge pull request #19036 from Gymnasiast/refactor/construction-bits-3
Small cleanups for the Construction window
This commit is contained in:
@@ -64,7 +64,9 @@ enum
|
||||
WIDX_LEFT_CURVE_VERY_SMALL,
|
||||
WIDX_LEFT_CURVE_SMALL,
|
||||
WIDX_LEFT_CURVE,
|
||||
WIDX_LEFT_CURVE_LARGE,
|
||||
WIDX_STRAIGHT,
|
||||
WIDX_RIGHT_CURVE_LARGE,
|
||||
WIDX_RIGHT_CURVE,
|
||||
WIDX_RIGHT_CURVE_SMALL,
|
||||
WIDX_RIGHT_CURVE_VERY_SMALL,
|
||||
@@ -80,13 +82,11 @@ enum
|
||||
WIDX_BANK_RIGHT,
|
||||
WIDX_CONSTRUCT,
|
||||
WIDX_DEMOLISH,
|
||||
WIDX_LEFT_CURVE_LARGE,
|
||||
WIDX_PREVIOUS_SECTION,
|
||||
WIDX_NEXT_SECTION,
|
||||
WIDX_ENTRANCE_EXIT_GROUPBOX,
|
||||
WIDX_ENTRANCE,
|
||||
WIDX_EXIT,
|
||||
WIDX_RIGHT_CURVE_LARGE,
|
||||
WIDX_ROTATE,
|
||||
WIDX_U_TRACK,
|
||||
WIDX_O_TRACK,
|
||||
@@ -111,7 +111,9 @@ static Widget window_ride_construction_widgets[] = {
|
||||
MakeWidget ({ 6, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_LEFT_CURVE_SMALL), STR_RIDE_CONSTRUCTION_LEFT_CURVE_VERY_SMALL_TIP ),
|
||||
MakeWidget ({ 6, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_LEFT_CURVE_SMALL), STR_RIDE_CONSTRUCTION_LEFT_CURVE_SMALL_TIP ),
|
||||
MakeWidget ({ 28, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_LEFT_CURVE), STR_RIDE_CONSTRUCTION_LEFT_CURVE_TIP ),
|
||||
MakeWidget ({ 50, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_LEFT_CURVE_LARGE), STR_RIDE_CONSTRUCTION_LEFT_CURVE_LARGE_TIP ),
|
||||
MakeWidget ({ 72, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_STRAIGHT), STR_RIDE_CONSTRUCTION_STRAIGHT_TIP ),
|
||||
MakeWidget ({ 94, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_RIGHT_CURVE_LARGE), STR_RIDE_CONSTRUCTION_RIGHT_CURVE_LARGE_TIP ),
|
||||
MakeWidget ({116, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_RIGHT_CURVE), STR_RIDE_CONSTRUCTION_RIGHT_CURVE_TIP ),
|
||||
MakeWidget ({138, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL), STR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL_TIP ),
|
||||
MakeWidget ({138, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL), STR_RIDE_CONSTRUCTION_RIGHT_CURVE_VERY_SMALL_TIP ),
|
||||
@@ -127,13 +129,11 @@ static Widget window_ride_construction_widgets[] = {
|
||||
MakeWidget ({ 95, 132}, { 24, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_RIGHT_BANK), STR_RIDE_CONSTRUCTION_ROLL_FOR_RIGHT_CURVE_TIP ),
|
||||
MakeWidget ({ 3, 164}, {160, 170}, WindowWidgetType::ImgBtn, WindowColour::Secondary, 0xFFFFFFFF, STR_RIDE_CONSTRUCTION_CONSTRUCT_SELECTED_SECTION_TIP),
|
||||
MakeWidget ({ 60, 338}, { 46, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_DEMOLISH_CURRENT_SECTION), STR_RIDE_CONSTRUCTION_REMOVE_HIGHLIGHTED_SECTION_TIP),
|
||||
MakeWidget ({ 50, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_LEFT_CURVE_LARGE), STR_RIDE_CONSTRUCTION_LEFT_CURVE_LARGE_TIP ),
|
||||
MakeWidget ({ 30, 338}, { 24, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_PREVIOUS), STR_RIDE_CONSTRUCTION_MOVE_TO_PREVIOUS_SECTION_TIP ),
|
||||
MakeWidget ({112, 338}, { 24, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_NEXT), STR_RIDE_CONSTRUCTION_MOVE_TO_NEXT_SECTION_TIP ),
|
||||
MakeWidget ({ 3, 362}, {160, 28}, WindowWidgetType::Groupbox, WindowColour::Primary ),
|
||||
MakeWidget ({ 9, 372}, { 70, 12}, WindowWidgetType::Button, WindowColour::Secondary, STR_RIDE_CONSTRUCTION_ENTRANCE, STR_RIDE_CONSTRUCTION_ENTRANCE_TIP ),
|
||||
MakeWidget ({ 87, 372}, { 70, 12}, WindowWidgetType::Button, WindowColour::Secondary, STR_RIDE_CONSTRUCTION_EXIT, STR_RIDE_CONSTRUCTION_EXIT_TIP ),
|
||||
MakeWidget ({ 94, 29}, { 22, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_RIGHT_CURVE_LARGE), STR_RIDE_CONSTRUCTION_RIGHT_CURVE_LARGE_TIP ),
|
||||
MakeWidget ({ 72, 338}, { 24, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_ROTATE_ARROW), STR_ROTATE_90_TIP ),
|
||||
MakeWidget ({ 19, 132}, { 24, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_U_SHAPED_TRACK), STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP ),
|
||||
MakeWidget ({123, 132}, { 24, 24}, WindowWidgetType::FlatBtn, WindowColour::Secondary, ImageId(SPR_RIDE_CONSTRUCTION_O_SHAPED_TRACK), STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP ),
|
||||
@@ -2278,11 +2278,9 @@ private:
|
||||
viewport_set_visibility(1);
|
||||
}
|
||||
|
||||
if ((_currentTrackCurve >= (TrackElemType::LeftHalfBankedHelixUpSmall | RideConstructionSpecialPieceSelected)
|
||||
&& _currentTrackCurve <= (TrackElemType::RightHalfBankedHelixDownLarge | RideConstructionSpecialPieceSelected))
|
||||
|| (_currentTrackCurve >= (TrackElemType::LeftQuarterBankedHelixLargeUp | RideConstructionSpecialPieceSelected)
|
||||
&& _currentTrackCurve <= (TrackElemType::RightQuarterHelixLargeDown | RideConstructionSpecialPieceSelected))
|
||||
|| (_currentTrackSlopeEnd != TRACK_SLOPE_NONE))
|
||||
const bool helixSelected = (_currentTrackCurve & RideConstructionSpecialPieceSelected)
|
||||
&& TrackTypeIsHelix(_currentTrackCurve & ~RideConstructionSpecialPieceSelected);
|
||||
if (helixSelected || (_currentTrackSlopeEnd != TRACK_SLOPE_NONE))
|
||||
{
|
||||
viewport_set_visibility(2);
|
||||
}
|
||||
@@ -2785,10 +2783,9 @@ rct_window* WindowRideConstructionOpen()
|
||||
return ContextOpenWindowView(WV_MAZE_CONSTRUCTION);
|
||||
case RideConstructionWindowContext::Default:
|
||||
return WindowCreate<RideConstructionWindow>(
|
||||
WindowClass::RideConstruction, ScreenCoordsXY(0, 29), 166, 394, WF_NO_AUTO_CLOSE);
|
||||
WindowClass::RideConstruction, ScreenCoordsXY(0, 29), WW, WH, WF_NO_AUTO_CLOSE);
|
||||
}
|
||||
return WindowCreate<RideConstructionWindow>(
|
||||
WindowClass::RideConstruction, ScreenCoordsXY(0, 29), 166, 394, WF_NO_AUTO_CLOSE);
|
||||
return WindowCreate<RideConstructionWindow>(WindowClass::RideConstruction, ScreenCoordsXY(0, 29), WW, WH, WF_NO_AUTO_CLOSE);
|
||||
}
|
||||
|
||||
static void CloseConstructWindowOnCompletion(Ride* ride)
|
||||
|
||||
@@ -411,9 +411,9 @@ enum WindowDetail
|
||||
#define WC_TOP_TOOLBAR__WIDX_SCENERY 10
|
||||
#define WC_TOP_TOOLBAR__WIDX_PATH 11
|
||||
#define WC_TOP_TOOLBAR__WIDX_CLEAR_SCENERY 17
|
||||
#define WC_RIDE_CONSTRUCTION__WIDX_CONSTRUCT 23
|
||||
#define WC_RIDE_CONSTRUCTION__WIDX_ENTRANCE 29
|
||||
#define WC_RIDE_CONSTRUCTION__WIDX_EXIT 30
|
||||
#define WC_RIDE_CONSTRUCTION__WIDX_CONSTRUCT 25
|
||||
#define WC_RIDE_CONSTRUCTION__WIDX_ENTRANCE 30
|
||||
#define WC_RIDE_CONSTRUCTION__WIDX_EXIT 31
|
||||
#define WC_RIDE_CONSTRUCTION__WIDX_ROTATE 32
|
||||
#define WC_SCENERY__WIDX_SCENERY_TAB_1 12
|
||||
#define WC_SCENERY__WIDX_SCENERY_ROTATE_OBJECTS_BUTTON 5
|
||||
|
||||
@@ -186,7 +186,7 @@ struct RideTypeDescriptor
|
||||
RideTrackGroup ExtraTrackPieces;
|
||||
RideTrackGroup CoveredTrackPieces;
|
||||
/** rct2: 0x0097CC68 */
|
||||
uint64_t StartTrackPiece;
|
||||
track_type_t StartTrackPiece;
|
||||
TRACK_PAINT_FUNCTION_GETTER TrackPaintFunction;
|
||||
uint64_t Flags;
|
||||
/** rct2: 0x0097C8AC */
|
||||
|
||||
@@ -658,6 +658,17 @@ bool TrackTypeHasSpeedSetting(track_type_t trackType)
|
||||
return trackType == TrackElemType::Brakes || trackType == TrackElemType::Booster;
|
||||
}
|
||||
|
||||
bool TrackTypeIsHelix(track_type_t trackType)
|
||||
{
|
||||
if (trackType >= TrackElemType::LeftHalfBankedHelixUpSmall && trackType <= TrackElemType::RightHalfBankedHelixDownLarge)
|
||||
return true;
|
||||
|
||||
if (trackType >= TrackElemType::LeftQuarterBankedHelixLargeUp && trackType <= TrackElemType::RightQuarterHelixLargeDown)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
std::optional<CoordsXYZD> GetTrackSegmentOrigin(const CoordsXYE& posEl)
|
||||
{
|
||||
auto trackEl = posEl.element->AsTrack();
|
||||
|
||||
@@ -633,6 +633,7 @@ ResultWithMessage track_add_station_element(CoordsXYZD loc, RideId rideIndex, in
|
||||
ResultWithMessage track_remove_station_element(const CoordsXYZD& loc, RideId rideIndex, int32_t flags);
|
||||
|
||||
bool TrackTypeHasSpeedSetting(track_type_t trackType);
|
||||
bool TrackTypeIsHelix(track_type_t trackType);
|
||||
std::optional<CoordsXYZD> GetTrackSegmentOrigin(const CoordsXYE& posEl);
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user