mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #13097 from mwnciau/fix-arrow-pulse
Construction arrow pulse improvements
This commit is contained in:
commit
5ec5ecee48
|
@ -12,6 +12,7 @@
|
||||||
- Fix: [#5178] Lighting effects cannot be disabled in software mode
|
- Fix: [#5178] Lighting effects cannot be disabled in software mode
|
||||||
- Fix: [#5904] Empty errors on tile inspector base height change.
|
- Fix: [#5904] Empty errors on tile inspector base height change.
|
||||||
- Fix: [#6086] Cannot install existing track design with another name.
|
- Fix: [#6086] Cannot install existing track design with another name.
|
||||||
|
- Fix: [#7443] Construction arrows pulse at irregular intervals.
|
||||||
- Fix: [#7748] Tooltips would not timeout for normal UI elements.
|
- Fix: [#7748] Tooltips would not timeout for normal UI elements.
|
||||||
- Fix: [#8015] RCT2 files are not found when put into the OpenRCT2 folder.
|
- Fix: [#8015] RCT2 files are not found when put into the OpenRCT2 folder.
|
||||||
- Fix: [#8957] Error title missing when building with insufficient funds
|
- Fix: [#8957] Error title missing when building with insufficient funds
|
||||||
|
@ -22,6 +23,7 @@
|
||||||
- Fix: [#13044] Rides in RCT1 saves all have "0 customers per hour".
|
- Fix: [#13044] Rides in RCT1 saves all have "0 customers per hour".
|
||||||
- Fix: [#13074] Entrance and exit ghosts for mazes not being removed.
|
- Fix: [#13074] Entrance and exit ghosts for mazes not being removed.
|
||||||
- Fix: [#13083] Dialog for renaming conflicting track design crops text out.
|
- Fix: [#13083] Dialog for renaming conflicting track design crops text out.
|
||||||
|
- Fix: [#13097] Missing direction arrow for stations
|
||||||
- Fix: [#13098] UI buttons for entrance and exit don't toggle according to them being built.
|
- Fix: [#13098] UI buttons for entrance and exit don't toggle according to them being built.
|
||||||
- Fix: [#13098] Maze can still be constructed while placing entrance and exit (original bug).
|
- Fix: [#13098] Maze can still be constructed while placing entrance and exit (original bug).
|
||||||
- Fix: [#13118] Closing construction window resets ride viewport.
|
- Fix: [#13118] Closing construction window resets ride viewport.
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include <openrct2/audio/audio.h>
|
#include <openrct2/audio/audio.h>
|
||||||
#include <openrct2/localisation/Localisation.h>
|
#include <openrct2/localisation/Localisation.h>
|
||||||
#include <openrct2/object/ObjectLimits.h>
|
#include <openrct2/object/ObjectLimits.h>
|
||||||
|
#include <openrct2/platform/platform.h>
|
||||||
#include <openrct2/sprites.h>
|
#include <openrct2/sprites.h>
|
||||||
#include <openrct2/world/Footpath.h>
|
#include <openrct2/world/Footpath.h>
|
||||||
#include <openrct2/world/Park.h>
|
#include <openrct2/world/Park.h>
|
||||||
|
@ -27,6 +28,7 @@
|
||||||
static constexpr const rct_string_id WINDOW_TITLE = STR_FOOTPATHS;
|
static constexpr const rct_string_id WINDOW_TITLE = STR_FOOTPATHS;
|
||||||
static constexpr const int32_t WH = 381;
|
static constexpr const int32_t WH = 381;
|
||||||
static constexpr const int32_t WW = 106;
|
static constexpr const int32_t WW = 106;
|
||||||
|
static constexpr const uint16_t ARROW_PULSE_DURATION = 200;
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
enum
|
enum
|
||||||
|
@ -129,7 +131,7 @@ static rct_window_event_list window_footpath_events([](auto& events)
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
static money32 _window_footpath_cost;
|
static money32 _window_footpath_cost;
|
||||||
static int8_t _window_footpath_provisional_path_arrow_timer;
|
static uint32_t _footpathConstructionNextArrowPulse = 0;
|
||||||
static uint8_t _lastUpdatedCameraRotation = UINT8_MAX;
|
static uint8_t _lastUpdatedCameraRotation = UINT8_MAX;
|
||||||
static bool _footpathErrorOccured;
|
static bool _footpathErrorOccured;
|
||||||
|
|
||||||
|
@ -473,10 +475,13 @@ static void window_footpath_update_provisional_path_for_bridge_mode(rct_window*
|
||||||
widget_invalidate(w, WIDX_CONSTRUCT);
|
widget_invalidate(w, WIDX_CONSTRUCT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto curTime = platform_get_ticks();
|
||||||
|
|
||||||
// Update little directional arrow on provisional bridge mode path
|
// Update little directional arrow on provisional bridge mode path
|
||||||
if (--_window_footpath_provisional_path_arrow_timer < 0)
|
if (_footpathConstructionNextArrowPulse < curTime)
|
||||||
{
|
{
|
||||||
_window_footpath_provisional_path_arrow_timer = 5;
|
_footpathConstructionNextArrowPulse = curTime + ARROW_PULSE_DURATION;
|
||||||
|
|
||||||
gFootpathProvisionalFlags ^= PROVISIONAL_PATH_FLAG_SHOW_ARROW;
|
gFootpathProvisionalFlags ^= PROVISIONAL_PATH_FLAG_SHOW_ARROW;
|
||||||
CoordsXYZ footpathLoc;
|
CoordsXYZ footpathLoc;
|
||||||
footpath_get_next_path_info(&type, footpathLoc, &slope);
|
footpath_get_next_path_info(&type, footpathLoc, &slope);
|
||||||
|
@ -932,7 +937,6 @@ static void window_footpath_start_bridge_at_point(const ScreenCoordsXY& screenCo
|
||||||
gFootpathConstructFromPosition = { mapCoords, z };
|
gFootpathConstructFromPosition = { mapCoords, z };
|
||||||
gFootpathConstructDirection = direction;
|
gFootpathConstructDirection = direction;
|
||||||
gFootpathProvisionalFlags = 0;
|
gFootpathProvisionalFlags = 0;
|
||||||
_window_footpath_provisional_path_arrow_timer = 0;
|
|
||||||
gFootpathConstructSlope = 0;
|
gFootpathConstructSlope = 0;
|
||||||
gFootpathConstructionMode = PATH_CONSTRUCTION_MODE_BRIDGE_OR_TUNNEL;
|
gFootpathConstructionMode = PATH_CONSTRUCTION_MODE_BRIDGE_OR_TUNNEL;
|
||||||
gFootpathConstructValidDirections = INVALID_DIRECTION;
|
gFootpathConstructValidDirections = INVALID_DIRECTION;
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include <openrct2/config/Config.h>
|
#include <openrct2/config/Config.h>
|
||||||
#include <openrct2/localisation/Localisation.h>
|
#include <openrct2/localisation/Localisation.h>
|
||||||
#include <openrct2/network/network.h>
|
#include <openrct2/network/network.h>
|
||||||
|
#include <openrct2/platform/platform.h>
|
||||||
#include <openrct2/ride/Ride.h>
|
#include <openrct2/ride/Ride.h>
|
||||||
#include <openrct2/ride/RideData.h>
|
#include <openrct2/ride/RideData.h>
|
||||||
#include <openrct2/ride/Track.h>
|
#include <openrct2/ride/Track.h>
|
||||||
|
@ -38,6 +39,7 @@
|
||||||
static constexpr const rct_string_id WINDOW_TITLE = STR_RIDE_CONSTRUCTION_WINDOW_TITLE;
|
static constexpr const rct_string_id WINDOW_TITLE = STR_RIDE_CONSTRUCTION_WINDOW_TITLE;
|
||||||
static constexpr const int32_t WH = 394;
|
static constexpr const int32_t WH = 394;
|
||||||
static constexpr const int32_t WW = 166;
|
static constexpr const int32_t WW = 166;
|
||||||
|
static constexpr const uint16_t ARROW_PULSE_DURATION = 200;
|
||||||
|
|
||||||
#pragma region Widgets
|
#pragma region Widgets
|
||||||
|
|
||||||
|
@ -441,6 +443,7 @@ static uint8_t _currentlyShowingBrakeOrBoosterSpeed;
|
||||||
static bool _boosterTrackSelected;
|
static bool _boosterTrackSelected;
|
||||||
|
|
||||||
static uint32_t _currentDisabledSpecialTrackPieces;
|
static uint32_t _currentDisabledSpecialTrackPieces;
|
||||||
|
static uint32_t _rideConstructionNextArrowPulse = 0;
|
||||||
|
|
||||||
static void window_ride_construction_construct(rct_window* w);
|
static void window_ride_construction_construct(rct_window* w);
|
||||||
static void window_ride_construction_mouseup_demolish(rct_window* w);
|
static void window_ride_construction_mouseup_demolish(rct_window* w);
|
||||||
|
@ -562,7 +565,6 @@ rct_window* window_ride_construction_open()
|
||||||
_currentTrackPieceDirection = 0;
|
_currentTrackPieceDirection = 0;
|
||||||
_rideConstructionState = RIDE_CONSTRUCTION_STATE_PLACE;
|
_rideConstructionState = RIDE_CONSTRUCTION_STATE_PLACE;
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
_autoOpeningShop = false;
|
_autoOpeningShop = false;
|
||||||
_autoRotatingShop = true;
|
_autoRotatingShop = true;
|
||||||
_trackPlaceCtrlState = false;
|
_trackPlaceCtrlState = false;
|
||||||
|
@ -1708,7 +1710,6 @@ static void RideConstructPlacedForwardGameActionCallback(const GameAction* ga, c
|
||||||
_currentTrackPieceDirection = next_track.element->GetDirection();
|
_currentTrackPieceDirection = next_track.element->GetDirection();
|
||||||
_currentTrackPieceType = next_track.element->AsTrack()->GetTrackType();
|
_currentTrackPieceType = next_track.element->AsTrack()->GetTrackType();
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
_rideConstructionState = RIDE_CONSTRUCTION_STATE_SELECTED;
|
_rideConstructionState = RIDE_CONSTRUCTION_STATE_SELECTED;
|
||||||
ride_select_next_section();
|
ride_select_next_section();
|
||||||
}
|
}
|
||||||
|
@ -1752,7 +1753,6 @@ static void RideConstructPlacedBackwardGameActionCallback(const GameAction* ga,
|
||||||
_currentTrackPieceDirection = trackBeginEnd.begin_direction;
|
_currentTrackPieceDirection = trackBeginEnd.begin_direction;
|
||||||
_currentTrackPieceType = trackBeginEnd.begin_element->AsTrack()->GetTrackType();
|
_currentTrackPieceType = trackBeginEnd.begin_element->AsTrack()->GetTrackType();
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
_rideConstructionState = RIDE_CONSTRUCTION_STATE_SELECTED;
|
_rideConstructionState = RIDE_CONSTRUCTION_STATE_SELECTED;
|
||||||
ride_select_previous_section();
|
ride_select_previous_section();
|
||||||
}
|
}
|
||||||
|
@ -2550,6 +2550,7 @@ void sub_6C94D8()
|
||||||
{
|
{
|
||||||
case RIDE_CONSTRUCTION_STATE_FRONT:
|
case RIDE_CONSTRUCTION_STATE_FRONT:
|
||||||
case RIDE_CONSTRUCTION_STATE_BACK:
|
case RIDE_CONSTRUCTION_STATE_BACK:
|
||||||
|
{
|
||||||
if (!(_currentTrackSelectionFlags & TRACK_SELECTION_FLAG_TRACK))
|
if (!(_currentTrackSelectionFlags & TRACK_SELECTION_FLAG_TRACK))
|
||||||
{
|
{
|
||||||
if (window_ride_construction_update_state(
|
if (window_ride_construction_update_state(
|
||||||
|
@ -2564,11 +2565,12 @@ void sub_6C94D8()
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_rideConstructionArrowPulseTime--;
|
|
||||||
if (_rideConstructionArrowPulseTime >= 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
_rideConstructionArrowPulseTime = 5;
|
auto curTime = platform_get_ticks();
|
||||||
|
if (_rideConstructionNextArrowPulse >= curTime)
|
||||||
|
break;
|
||||||
|
_rideConstructionNextArrowPulse = curTime + ARROW_PULSE_DURATION;
|
||||||
|
|
||||||
_currentTrackSelectionFlags ^= TRACK_SELECTION_FLAG_ARROW;
|
_currentTrackSelectionFlags ^= TRACK_SELECTION_FLAG_ARROW;
|
||||||
trackPos = _currentTrackBegin;
|
trackPos = _currentTrackBegin;
|
||||||
direction = _currentTrackPieceDirection;
|
direction = _currentTrackPieceDirection;
|
||||||
|
@ -2584,13 +2586,14 @@ void sub_6C94D8()
|
||||||
gMapSelectFlags |= MAP_SELECT_FLAG_ENABLE_ARROW;
|
gMapSelectFlags |= MAP_SELECT_FLAG_ENABLE_ARROW;
|
||||||
map_invalidate_tile_full(trackPos);
|
map_invalidate_tile_full(trackPos);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case RIDE_CONSTRUCTION_STATE_SELECTED:
|
case RIDE_CONSTRUCTION_STATE_SELECTED:
|
||||||
{
|
{
|
||||||
_rideConstructionArrowPulseTime--;
|
auto curTime = platform_get_ticks();
|
||||||
if (_rideConstructionArrowPulseTime >= 0)
|
if (_rideConstructionNextArrowPulse >= curTime)
|
||||||
break;
|
break;
|
||||||
|
_rideConstructionNextArrowPulse = curTime + ARROW_PULSE_DURATION;
|
||||||
|
|
||||||
_rideConstructionArrowPulseTime = 5;
|
|
||||||
_currentTrackSelectionFlags ^= TRACK_SELECTION_FLAG_ARROW;
|
_currentTrackSelectionFlags ^= TRACK_SELECTION_FLAG_ARROW;
|
||||||
direction = _currentTrackPieceDirection & 3;
|
direction = _currentTrackPieceDirection & 3;
|
||||||
type = _currentTrackPieceType;
|
type = _currentTrackPieceType;
|
||||||
|
@ -2604,14 +2607,15 @@ void sub_6C94D8()
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 6:
|
case RIDE_CONSTRUCTION_STATE_MAZE_BUILD:
|
||||||
case 7:
|
case RIDE_CONSTRUCTION_STATE_MAZE_MOVE:
|
||||||
case 8:
|
case RIDE_CONSTRUCTION_STATE_MAZE_FILL:
|
||||||
_rideConstructionArrowPulseTime--;
|
{
|
||||||
if (_rideConstructionArrowPulseTime >= 0)
|
auto curTime = platform_get_ticks();
|
||||||
|
if (_rideConstructionNextArrowPulse >= curTime)
|
||||||
break;
|
break;
|
||||||
|
_rideConstructionNextArrowPulse = curTime + ARROW_PULSE_DURATION;
|
||||||
|
|
||||||
_rideConstructionArrowPulseTime = 5;
|
|
||||||
_currentTrackSelectionFlags ^= TRACK_SELECTION_FLAG_ARROW;
|
_currentTrackSelectionFlags ^= TRACK_SELECTION_FLAG_ARROW;
|
||||||
trackPos = CoordsXYZ{ _currentTrackBegin.x & 0xFFE0, _currentTrackBegin.y & 0xFFE0, _currentTrackBegin.z + 15 };
|
trackPos = CoordsXYZ{ _currentTrackBegin.x & 0xFFE0, _currentTrackBegin.y & 0xFFE0, _currentTrackBegin.z + 15 };
|
||||||
gMapSelectArrowPosition = trackPos;
|
gMapSelectArrowPosition = trackPos;
|
||||||
|
@ -2631,6 +2635,7 @@ void sub_6C94D8()
|
||||||
gMapSelectFlags |= MAP_SELECT_FLAG_ENABLE_ARROW;
|
gMapSelectFlags |= MAP_SELECT_FLAG_ENABLE_ARROW;
|
||||||
map_invalidate_tile_full(trackPos);
|
map_invalidate_tile_full(trackPos);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3755,7 +3760,6 @@ void ride_construction_tooldown_construct(const ScreenCoordsXY& screenCoords)
|
||||||
_currentTrackBegin.y = mapCoords.y;
|
_currentTrackBegin.y = mapCoords.y;
|
||||||
_currentTrackBegin.z = z;
|
_currentTrackBegin.z = z;
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
auto intent = Intent(INTENT_ACTION_UPDATE_MAZE_CONSTRUCTION);
|
auto intent = Intent(INTENT_ACTION_UPDATE_MAZE_CONSTRUCTION);
|
||||||
context_broadcast_intent(&intent);
|
context_broadcast_intent(&intent);
|
||||||
w = window_find_by_class(WC_RIDE_CONSTRUCTION);
|
w = window_find_by_class(WC_RIDE_CONSTRUCTION);
|
||||||
|
@ -3812,7 +3816,6 @@ void ride_construction_tooldown_construct(const ScreenCoordsXY& screenCoords)
|
||||||
_currentTrackBegin.y = mapCoords.y;
|
_currentTrackBegin.y = mapCoords.y;
|
||||||
_currentTrackBegin.z = z;
|
_currentTrackBegin.z = z;
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
w = window_find_by_class(WC_RIDE_CONSTRUCTION);
|
w = window_find_by_class(WC_RIDE_CONSTRUCTION);
|
||||||
if (w == nullptr)
|
if (w == nullptr)
|
||||||
|
|
|
@ -101,7 +101,6 @@ CoordsXYZ _currentTrackBegin;
|
||||||
uint8_t _currentTrackPieceDirection;
|
uint8_t _currentTrackPieceDirection;
|
||||||
track_type_t _currentTrackPieceType;
|
track_type_t _currentTrackPieceType;
|
||||||
uint8_t _currentTrackSelectionFlags;
|
uint8_t _currentTrackSelectionFlags;
|
||||||
int8_t _rideConstructionArrowPulseTime;
|
|
||||||
uint8_t _currentTrackSlopeEnd;
|
uint8_t _currentTrackSlopeEnd;
|
||||||
uint8_t _currentTrackBankEnd;
|
uint8_t _currentTrackBankEnd;
|
||||||
uint8_t _currentTrackLiftHill;
|
uint8_t _currentTrackLiftHill;
|
||||||
|
@ -1373,13 +1372,16 @@ void ride_construction_invalidate_current_track()
|
||||||
case RIDE_CONSTRUCTION_STATE_MAZE_BUILD:
|
case RIDE_CONSTRUCTION_STATE_MAZE_BUILD:
|
||||||
case RIDE_CONSTRUCTION_STATE_MAZE_MOVE:
|
case RIDE_CONSTRUCTION_STATE_MAZE_MOVE:
|
||||||
case RIDE_CONSTRUCTION_STATE_MAZE_FILL:
|
case RIDE_CONSTRUCTION_STATE_MAZE_FILL:
|
||||||
|
case RIDE_CONSTRUCTION_STATE_FRONT:
|
||||||
|
case RIDE_CONSTRUCTION_STATE_BACK:
|
||||||
if (_currentTrackSelectionFlags & TRACK_SELECTION_FLAG_ARROW)
|
if (_currentTrackSelectionFlags & TRACK_SELECTION_FLAG_ARROW)
|
||||||
{
|
{
|
||||||
map_invalidate_tile_full(_currentTrackBegin.ToTileStart());
|
map_invalidate_tile_full(_currentTrackBegin.ToTileStart());
|
||||||
gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_ARROW;
|
|
||||||
}
|
}
|
||||||
ride_construction_remove_ghosts();
|
ride_construction_remove_ghosts();
|
||||||
break;
|
break;
|
||||||
|
case RIDE_CONSTRUCTION_STATE_PLACE:
|
||||||
|
case RIDE_CONSTRUCTION_STATE_ENTRANCE_EXIT:
|
||||||
default:
|
default:
|
||||||
if (_currentTrackSelectionFlags & TRACK_SELECTION_FLAG_ARROW)
|
if (_currentTrackSelectionFlags & TRACK_SELECTION_FLAG_ARROW)
|
||||||
{
|
{
|
||||||
|
@ -1611,6 +1613,12 @@ void ride_select_next_section()
|
||||||
// Set next element's height.
|
// Set next element's height.
|
||||||
virtual_floor_set_height(tileElement->GetBaseZ());
|
virtual_floor_set_height(tileElement->GetBaseZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_currentTrackBegin = *newCoords;
|
||||||
|
_currentTrackPieceDirection = tileElement->GetDirection();
|
||||||
|
_currentTrackPieceType = tileElement->AsTrack()->GetTrackType();
|
||||||
|
_currentTrackSelectionFlags = 0;
|
||||||
|
window_ride_construction_update_active_elements();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1619,18 +1627,9 @@ void ride_select_next_section()
|
||||||
_currentTrackPieceDirection = direction;
|
_currentTrackPieceDirection = direction;
|
||||||
_currentTrackPieceType = tileElement->AsTrack()->GetTrackType();
|
_currentTrackPieceType = tileElement->AsTrack()->GetTrackType();
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
ride_construction_set_default_next_piece();
|
ride_construction_set_default_next_piece();
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_currentTrackBegin = *newCoords;
|
|
||||||
_currentTrackPieceDirection = tileElement->GetDirection();
|
|
||||||
_currentTrackPieceType = tileElement->AsTrack()->GetTrackType();
|
|
||||||
_currentTrackSelectionFlags = 0;
|
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
window_ride_construction_update_active_elements();
|
|
||||||
}
|
}
|
||||||
else if (_rideConstructionState == RIDE_CONSTRUCTION_STATE_BACK)
|
else if (_rideConstructionState == RIDE_CONSTRUCTION_STATE_BACK)
|
||||||
{
|
{
|
||||||
|
@ -1673,7 +1672,6 @@ void ride_select_previous_section()
|
||||||
_currentTrackPieceDirection = trackBeginEnd.begin_direction;
|
_currentTrackPieceDirection = trackBeginEnd.begin_direction;
|
||||||
_currentTrackPieceType = trackBeginEnd.begin_element->AsTrack()->GetTrackType();
|
_currentTrackPieceType = trackBeginEnd.begin_element->AsTrack()->GetTrackType();
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
if (!scenery_tool_is_active())
|
if (!scenery_tool_is_active())
|
||||||
{
|
{
|
||||||
// Set previous element's height.
|
// Set previous element's height.
|
||||||
|
@ -1690,7 +1688,6 @@ void ride_select_previous_section()
|
||||||
_currentTrackPieceDirection = trackBeginEnd.end_direction;
|
_currentTrackPieceDirection = trackBeginEnd.end_direction;
|
||||||
_currentTrackPieceType = tileElement->AsTrack()->GetTrackType();
|
_currentTrackPieceType = tileElement->AsTrack()->GetTrackType();
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
ride_construction_set_default_next_piece();
|
ride_construction_set_default_next_piece();
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
}
|
}
|
||||||
|
@ -1799,7 +1796,6 @@ static bool ride_modify_maze(const CoordsXYE& tileElement)
|
||||||
_currentTrackBegin.y = tileElement.y;
|
_currentTrackBegin.y = tileElement.y;
|
||||||
_currentTrackBegin.z = trackElement->GetBaseZ();
|
_currentTrackBegin.z = trackElement->GetBaseZ();
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
|
|
||||||
auto intent = Intent(INTENT_ACTION_UPDATE_MAZE_CONSTRUCTION);
|
auto intent = Intent(INTENT_ACTION_UPDATE_MAZE_CONSTRUCTION);
|
||||||
context_broadcast_intent(&intent);
|
context_broadcast_intent(&intent);
|
||||||
|
@ -1880,7 +1876,6 @@ bool ride_modify(CoordsXYE* input)
|
||||||
_currentTrackPieceDirection = direction;
|
_currentTrackPieceDirection = direction;
|
||||||
_currentTrackPieceType = type;
|
_currentTrackPieceType = type;
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
|
|
||||||
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_NO_TRACK))
|
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_NO_TRACK))
|
||||||
{
|
{
|
||||||
|
@ -1900,7 +1895,6 @@ bool ride_modify(CoordsXYE* input)
|
||||||
_currentTrackPieceDirection = direction;
|
_currentTrackPieceDirection = direction;
|
||||||
_currentTrackPieceType = type;
|
_currentTrackPieceType = type;
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
|
|
||||||
ride_select_previous_section();
|
ride_select_previous_section();
|
||||||
|
|
||||||
|
@ -1911,7 +1905,6 @@ bool ride_modify(CoordsXYE* input)
|
||||||
_currentTrackPieceDirection = direction;
|
_currentTrackPieceDirection = direction;
|
||||||
_currentTrackPieceType = type;
|
_currentTrackPieceType = type;
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
|
@ -1958,7 +1951,6 @@ int32_t ride_initialise_construction_window(Ride* ride)
|
||||||
_currentTrackPieceDirection = 0;
|
_currentTrackPieceDirection = 0;
|
||||||
_rideConstructionState = RIDE_CONSTRUCTION_STATE_PLACE;
|
_rideConstructionState = RIDE_CONSTRUCTION_STATE_PLACE;
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
|
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -6260,7 +6252,6 @@ bool ride_select_backwards_from_front()
|
||||||
_currentTrackPieceDirection = trackBeginEnd.begin_direction;
|
_currentTrackPieceDirection = trackBeginEnd.begin_direction;
|
||||||
_currentTrackPieceType = trackBeginEnd.begin_element->AsTrack()->GetTrackType();
|
_currentTrackPieceType = trackBeginEnd.begin_element->AsTrack()->GetTrackType();
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6286,7 +6277,6 @@ bool ride_select_forwards_from_back()
|
||||||
_currentTrackPieceDirection = next_track.element->GetDirection();
|
_currentTrackPieceDirection = next_track.element->GetDirection();
|
||||||
_currentTrackPieceType = next_track.element->AsTrack()->GetTrackType();
|
_currentTrackPieceType = next_track.element->AsTrack()->GetTrackType();
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1061,7 +1061,6 @@ extern CoordsXYZ _currentTrackBegin;
|
||||||
extern uint8_t _currentTrackPieceDirection;
|
extern uint8_t _currentTrackPieceDirection;
|
||||||
extern track_type_t _currentTrackPieceType;
|
extern track_type_t _currentTrackPieceType;
|
||||||
extern uint8_t _currentTrackSelectionFlags;
|
extern uint8_t _currentTrackSelectionFlags;
|
||||||
extern int8_t _rideConstructionArrowPulseTime;
|
|
||||||
extern uint8_t _currentTrackSlopeEnd;
|
extern uint8_t _currentTrackSlopeEnd;
|
||||||
extern uint8_t _currentTrackBankEnd;
|
extern uint8_t _currentTrackBankEnd;
|
||||||
extern uint8_t _currentTrackLiftHill;
|
extern uint8_t _currentTrackLiftHill;
|
||||||
|
|
|
@ -434,7 +434,6 @@ void window_ride_construction_mouseup_demolish_next_piece(const CoordsXYZD& piec
|
||||||
_currentTrackBegin.z = floor2(piecePos.z, COORDS_Z_STEP);
|
_currentTrackBegin.z = floor2(piecePos.z, COORDS_Z_STEP);
|
||||||
_rideConstructionState = RIDE_CONSTRUCTION_STATE_FRONT;
|
_rideConstructionState = RIDE_CONSTRUCTION_STATE_FRONT;
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
_currentTrackPieceDirection = piecePos.direction & 3;
|
_currentTrackPieceDirection = piecePos.direction & 3;
|
||||||
int32_t savedCurrentTrackCurve = _currentTrackCurve;
|
int32_t savedCurrentTrackCurve = _currentTrackCurve;
|
||||||
int32_t savedPreviousTrackSlopeEnd = _previousTrackSlopeEnd;
|
int32_t savedPreviousTrackSlopeEnd = _previousTrackSlopeEnd;
|
||||||
|
@ -489,7 +488,6 @@ void window_ride_construction_mouseup_demolish_next_piece(const CoordsXYZD& piec
|
||||||
_currentTrackPieceDirection = piecePos.direction;
|
_currentTrackPieceDirection = piecePos.direction;
|
||||||
_currentTrackPieceType = type;
|
_currentTrackPieceType = type;
|
||||||
_currentTrackSelectionFlags = 0;
|
_currentTrackSelectionFlags = 0;
|
||||||
_rideConstructionArrowPulseTime = 0;
|
|
||||||
if (_rideConstructionState2 == RIDE_CONSTRUCTION_STATE_FRONT)
|
if (_rideConstructionState2 == RIDE_CONSTRUCTION_STATE_FRONT)
|
||||||
{
|
{
|
||||||
ride_select_next_section();
|
ride_select_next_section();
|
||||||
|
|
Loading…
Reference in New Issue