From 4551f9c04efbfa45d57762fa741b15af62c0df4e Mon Sep 17 00:00:00 2001 From: duncanspumpkin Date: Tue, 9 Jan 2018 19:42:50 +0000 Subject: [PATCH] Label flags --- src/openrct2/ride/Ride.cpp | 6 ++--- src/openrct2/ride/Vehicle.cpp | 51 +++++++++++++++++------------------ src/openrct2/ride/Vehicle.h | 10 +++---- 3 files changed, 31 insertions(+), 36 deletions(-) diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index 0053318cad..6bedaa75d7 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -4701,7 +4701,7 @@ static void vehicle_create_trains(sint32 rideIndex, sint32 x, sint32 y, sint32 z lastTrain.tail->next_vehicle_on_ride = firstTrain.head->sprite_index; } -static void vehicle_unset_var_48_b1(rct_vehicle *head) +static void vehicle_unset_update_flag_b1(rct_vehicle *head) { rct_vehicle *vehicle = head; while (true) { @@ -4852,7 +4852,7 @@ static bool ride_create_vehicles(Ride *ride, sint32 rideIndex, rct_xy_element *e vehicle_update_track_motion(vehicle, nullptr); } - vehicle_unset_var_48_b1(vehicle); + vehicle_unset_update_flag_b1(vehicle); } } } @@ -4872,7 +4872,7 @@ void loc_6DDF9C(Ride *ride, rct_tile_element *tileElement) train = GET_VEHICLE(ride->vehicles[i]); if (i == 0) { vehicle_update_track_motion(train, nullptr); - vehicle_unset_var_48_b1(train); + vehicle_unset_update_flag_b1(train); continue; } diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index 72a0a6d038..366d679fe6 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -1607,7 +1607,7 @@ static void vehicle_update_measurements(rct_vehicle * vehicle) return; uint16 track_elem_type = vehicle->track_type / 4; - if (track_elem_type == TRACK_ELEM_POWERED_LIFT || (vehicle->update_flags & VEHICLE_UPDATE_FLAG_0)) + if (track_elem_type == TRACK_ELEM_POWERED_LIFT || (vehicle->update_flags & VEHICLE_UPDATE_FLAG_ON_LIFT_HILL)) { if (!(ride->testing_flags & RIDE_TESTING_POWERED_LIFT)) { @@ -3339,7 +3339,7 @@ static void vehicle_update_departing(rct_vehicle * vehicle) } else if (ride->mode == RIDE_MODE_SHUTTLE) { - vehicle->update_flags ^= VEHICLE_UPDATE_FLAG_3; + vehicle->update_flags ^= VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE; vehicle->velocity = 0; } } @@ -3736,7 +3736,7 @@ static void vehicle_update_travelling(rct_vehicle * vehicle) } else if (ride->mode == RIDE_MODE_SHUTTLE) { - vehicle->update_flags ^= VEHICLE_UPDATE_FLAG_3; + vehicle->update_flags ^= VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE; vehicle->velocity = 0; } else @@ -4577,7 +4577,7 @@ static void vehicle_update_motion_boat_hire(rct_vehicle * vehicle) { eax = vehicle->speed << 14; sint32 ebx = (vehicle->speed * mass) >> 2; - if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_3) + if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE) { eax = -eax; } @@ -6432,7 +6432,7 @@ static sint32 vehicle_update_motion_dodgems(rct_vehicle * vehicle) sint32 ebx = (vehicle->speed * vehicle->mass) >> 2; sint32 _eax = vehicle->speed << 14; - if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_3) + if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE) { _eax = -_eax; } @@ -6997,7 +6997,7 @@ static void vehicle_update_swinging_car(rct_vehicle * vehicle) break; } - if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_0) + if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_ON_LIFT_HILL) { dx = 0; cx = 0; @@ -7131,7 +7131,7 @@ static const uint8 TrackTypeToSpinFunction[256] = { */ static void vehicle_update_spinning_car(rct_vehicle * vehicle) { - if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_13) + if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_ROTATION_OFF_WILD_MOUSE) { vehicle->spin_speed = 0; return; @@ -7910,7 +7910,7 @@ static void sub_6DBF3E(rct_vehicle * vehicle) if (trackType == TRACK_ELEM_TOWER_BASE && vehicle == gCurrentVehicle) { - if (vehicle->track_progress > 3 && !(vehicle->update_flags & VEHICLE_UPDATE_FLAG_3)) + if (vehicle->track_progress > 3 && !(vehicle->update_flags & VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE)) { rct_xy_element input, output; sint32 outputZ, outputDirection; @@ -8127,11 +8127,11 @@ loc_6DB41D: } // loc_6DB500 - // Update VEHICLE_UPDATE_FLAG_0 - vehicle->update_flags &= ~VEHICLE_UPDATE_FLAG_0; + // Update VEHICLE_UPDATE_FLAG_ON_LIFT_HILL + vehicle->update_flags &= ~VEHICLE_UPDATE_FLAG_ON_LIFT_HILL; if (track_element_is_lift_hill(tileElement)) { - vehicle->update_flags |= VEHICLE_UPDATE_FLAG_0; + vehicle->update_flags |= VEHICLE_UPDATE_FLAG_ON_LIFT_HILL; } trackType = track_element_get_type(tileElement); @@ -8150,7 +8150,7 @@ loc_6DB41D: uint16 rideType = get_ride(track_element_get_ride_index(tileElement))->type; if (trackType == TRACK_ELEM_ROTATION_CONTROL_TOGGLE && rideType == RIDE_TYPE_STEEL_WILD_MOUSE) { - vehicle->update_flags ^= VEHICLE_UPDATE_FLAG_13; + vehicle->update_flags ^= VEHICLE_UPDATE_FLAG_ROTATION_OFF_WILD_MOUSE; } } // Change from original: this used to check if the vehicle allowed doors. @@ -8531,14 +8531,14 @@ static bool vehicle_update_track_motion_backwards_get_new_track(rct_vehicle * ve _vehicleMotionTrackFlags |= VEHICLE_UPDATE_MOTION_TRACK_FLAG_9; } } - vehicle->update_flags |= VEHICLE_UPDATE_FLAG_0; + vehicle->update_flags |= VEHICLE_UPDATE_FLAG_ON_LIFT_HILL; } } else { - if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_0) + if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_ON_LIFT_HILL) { - vehicle->update_flags &= ~VEHICLE_UPDATE_FLAG_0; + vehicle->update_flags &= ~VEHICLE_UPDATE_FLAG_ON_LIFT_HILL; if (vehicle->next_vehicle_on_train == SPRITE_INDEX_NULL) { if (_vehicleVelocityF64E08 < 0) @@ -8922,7 +8922,7 @@ loc_6DC476: vehicle->var_CD = regs.al; } - vehicle->update_flags &= ~VEHICLE_UPDATE_FLAG_0; + vehicle->update_flags &= ~VEHICLE_UPDATE_FLAG_ON_LIFT_HILL; vehicle->track_type = (track_element_get_type(tileElement) << 2) | (direction & 3); vehicle->var_CF = tile_element_get_brake_booster_speed(tileElement); regs.ax = 0; @@ -9162,9 +9162,9 @@ loc_6DCA9A: vehicle->track_y = y; vehicle->track_z = z; - if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_0) + if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_ON_LIFT_HILL) { - vehicle->update_flags &= ~VEHICLE_UPDATE_FLAG_0; + vehicle->update_flags &= ~VEHICLE_UPDATE_FLAG_ON_LIFT_HILL; if (vehicle->next_vehicle_on_train == SPRITE_INDEX_NULL) { if (_vehicleVelocityF64E08 < 0) @@ -9339,7 +9339,7 @@ loc_6DCE68: } loc_6DCEB2: - if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_0) + if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_ON_LIFT_HILL) { _vehicleMotionTrackFlags |= VEHICLE_UPDATE_MOTION_TRACK_FLAG_VEHICLE_ON_LIFT_HILL; } @@ -9416,7 +9416,7 @@ loc_6DCEFF: regs.eax <<= 14; regs.ebx *= regs.ebp; regs.ebx >>= 2; - if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_3) + if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE) { regs.eax = -regs.eax; } @@ -9599,7 +9599,7 @@ sint32 vehicle_update_track_motion(rct_vehicle * vehicle, sint32 * outStation) sub_6DBF3E(car); // loc_6DC0F7 - if (car->update_flags & VEHICLE_UPDATE_FLAG_0) + if (car->update_flags & VEHICLE_UPDATE_FLAG_ON_LIFT_HILL) { _vehicleMotionTrackFlags |= VEHICLE_UPDATE_MOTION_TRACK_FLAG_VEHICLE_ON_LIFT_HILL; } @@ -9689,8 +9689,7 @@ sint32 vehicle_update_track_motion(rct_vehicle * vehicle, sint32 * outStation) } if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_0) { - regs.eax = vehicle->speed * 0x4000; - if (regs.eax < vehicle->velocity) + if (vehicle->velocity > (vehicle->speed * 0x4000)) { goto loc_6DC2FA; } @@ -9731,14 +9730,12 @@ loc_6DC23A: regs.eax <<= 14; regs.ebx *= totalMass; regs.ebx >>= 2; - if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_3) + if (vehicle->update_flags & VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE) { regs.eax = -regs.eax; } regs.eax -= vehicle->velocity; - regs.edx = vehicle->powered_acceleration; - regs.edx <<= 1; - regs.eax *= regs.edx; + regs.eax *= vehicle->powered_acceleration << 1; if (regs.ebx != 0) { regs.eax /= regs.ebx; diff --git a/src/openrct2/ride/Vehicle.h b/src/openrct2/ride/Vehicle.h index 45f6ba3496..09bb1f3373 100644 --- a/src/openrct2/ride/Vehicle.h +++ b/src/openrct2/ride/Vehicle.h @@ -219,7 +219,7 @@ typedef struct rct_vehicle_info { } rct_vehicle_info; enum { - VEHICLE_ENTRY_FLAG_0 = 1 << 0, + VEHICLE_ENTRY_FLAG_0 = 1 << 0, // Set on powered vehicles that do not slow down when going down a hill VEHICLE_ENTRY_FLAG_NO_UPSTOP_WHEELS = 1 << 1, VEHICLE_ENTRY_FLAG_NO_UPSTOP_BOBSLEIGH = 1 << 2, VEHICLE_ENTRY_FLAG_MINI_GOLF = 1 << 3, @@ -288,10 +288,10 @@ enum { }; enum{ - VEHICLE_UPDATE_FLAG_0 = (1 << 0), + VEHICLE_UPDATE_FLAG_ON_LIFT_HILL = (1 << 0), VEHICLE_UPDATE_FLAG_1 = (1 << 1), VEHICLE_UPDATE_FLAG_WAIT_ON_ADJACENT = (1 << 2), - VEHICLE_UPDATE_FLAG_3 = (1 << 3), + VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE = (1 << 3), // Shuttle is in reverse VEHICLE_UPDATE_FLAG_TRAIN_READY_DEPART = (1 << 4), VEHICLE_UPDATE_FLAG_TESTING = (1 << 5), VEHICLE_UPDATE_FLAG_6 = (1 << 6), @@ -301,9 +301,7 @@ enum{ VEHICLE_UPDATE_FLAG_ON_BREAK_FOR_DROP = (1 << 10), VEHICLE_UPDATE_FLAG_USE_INVERTED_SPRITES = (1 << 11), // Used on rides where trains can run for extended periods of time, i.e. the Flying, Lay-down and Multi-dimension RCs. VEHICLE_UPDATE_FLAG_12 = (1 << 12), - VEHICLE_UPDATE_FLAG_13 = (1 << 13), - VEHICLE_UPDATE_FLAG_14 = (1 << 14), - VEHICLE_UPDATE_FLAG_15 = (1 << 15) + VEHICLE_UPDATE_FLAG_ROTATION_OFF_WILD_MOUSE = (1 << 13) // After passing a rotation toggle track piece this will enable }; enum {