mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-26 00:04:43 +01:00
Refactor vehicle logic related to #5749
This commit is contained in:
@@ -224,7 +224,7 @@ static bool sub_6DF01A_loop(rct_vehicle* vehicle) {
|
||||
uint8 trackType = vehicle->track_type >> 2;
|
||||
if (trackType == TRACK_ELEM_CABLE_LIFT_HILL &&
|
||||
vehicle->track_progress == 160) {
|
||||
_vehicleMotionTrackFlags |= (1 << 1);
|
||||
_vehicleMotionTrackFlags |= VEHICLE_UPDATE_MOTION_TRACK_FLAG_1;
|
||||
}
|
||||
|
||||
uint16 trackProgress = vehicle->track_progress + 1;
|
||||
@@ -342,7 +342,7 @@ static bool sub_6DF21B_loop(rct_vehicle* vehicle) {
|
||||
vehicle->track_type |= output.begin_element->properties.track.type << 2;
|
||||
|
||||
if (output.begin_element->properties.track.type == TRACK_ELEM_END_STATION) {
|
||||
_vehicleMotionTrackFlags = (1 << 0);
|
||||
_vehicleMotionTrackFlags = VEHICLE_UPDATE_MOTION_TRACK_FLAG_VEHICLE_AT_STATION;
|
||||
}
|
||||
|
||||
moveInfo = vehicle_get_move_info(vehicle->var_CD, vehicle->track_type, 0);
|
||||
@@ -426,7 +426,7 @@ sint32 cable_lift_update_track_motion(rct_vehicle *cableLift)
|
||||
break;
|
||||
}
|
||||
else {
|
||||
_vehicleMotionTrackFlags |= (1 << 5);
|
||||
_vehicleMotionTrackFlags |= VEHICLE_UPDATE_MOTION_TRACK_FLAG_5;
|
||||
_vehicleVelocityF64E0C -= vehicle->remaining_distance - 13962;
|
||||
vehicle->remaining_distance = 13962;
|
||||
vehicle->acceleration += dword_9A2970[vehicle->vehicle_sprite_type];
|
||||
@@ -439,7 +439,7 @@ sint32 cable_lift_update_track_motion(rct_vehicle *cableLift)
|
||||
break;
|
||||
}
|
||||
else {
|
||||
_vehicleMotionTrackFlags |= (1 << 5);
|
||||
_vehicleMotionTrackFlags |= VEHICLE_UPDATE_MOTION_TRACK_FLAG_5;
|
||||
_vehicleVelocityF64E0C -= vehicle->remaining_distance + 1;
|
||||
vehicle->remaining_distance = -1;
|
||||
vehicle->acceleration += dword_9A2970[vehicle->vehicle_sprite_type];
|
||||
|
||||
@@ -4868,7 +4868,7 @@ void loc_6DDF9C(rct_ride *ride, rct_map_element *mapElement)
|
||||
vehicle_update_track_motion(train, NULL);
|
||||
|
||||
do {
|
||||
mapElement->flags |= (1 << 5);
|
||||
mapElement->flags |= MAP_ELEMENT_FLAG_BLOCK_BRAKE_CLOSED;
|
||||
car = train;
|
||||
while (true) {
|
||||
car->velocity = 0;
|
||||
@@ -4882,9 +4882,9 @@ void loc_6DDF9C(rct_ride *ride, rct_map_element *mapElement)
|
||||
}
|
||||
car = GET_VEHICLE(spriteIndex);
|
||||
}
|
||||
} while (!(vehicle_update_track_motion(train, NULL) & 0x400));
|
||||
} while (!(vehicle_update_track_motion(train, NULL) & VEHICLE_UPDATE_MOTION_TRACK_FLAG_10));
|
||||
|
||||
mapElement->flags |= (1 << 5);
|
||||
mapElement->flags |= MAP_ELEMENT_FLAG_BLOCK_BRAKE_CLOSED;
|
||||
car = train;
|
||||
while (true) {
|
||||
car->update_flags &= ~VEHICLE_UPDATE_FLAG_1;
|
||||
|
||||
@@ -8293,7 +8293,7 @@ loc_6DC99A:
|
||||
goto loc_6DC462;
|
||||
|
||||
loc_6DC9BC:
|
||||
_vehicleMotionTrackFlags |= 0x20;
|
||||
_vehicleMotionTrackFlags |= VEHICLE_UPDATE_MOTION_TRACK_FLAG_5;
|
||||
regs.eax = vehicle->remaining_distance + 1;
|
||||
_vehicleVelocityF64E0C -= regs.eax;
|
||||
vehicle->remaining_distance -= regs.eax;
|
||||
|
||||
Reference in New Issue
Block a user