1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-26 08:14:38 +01:00

move SubpositionTranslationDistance to VehicleGeometry

This commit is contained in:
Spacek531
2025-10-20 13:49:32 -07:00
committed by Gymnasiast
parent 126c7b7e73
commit 925ed8ded5
6 changed files with 32 additions and 30 deletions

View File

@@ -21,6 +21,7 @@
#include "Track.h"
#include "Vehicle.h"
#include "VehicleData.h"
#include "VehicleGeometry.h"
using namespace OpenRCT2;
@@ -283,7 +284,7 @@ bool Vehicle::CableLiftUpdateTrackMotionForwards()
if (nextVehiclePosition.z != _vehicleCurPosition.z)
remainingDistanceFlags |= (1 << 2);
remaining_distance -= SubpositionTranslationDistances[remainingDistanceFlags];
remaining_distance -= OpenRCT2::RideVehicle::Geometry::SubpositionTranslationDistances[remainingDistanceFlags];
_vehicleCurPosition.x = nextVehiclePosition.x;
_vehicleCurPosition.y = nextVehiclePosition.y;
_vehicleCurPosition.z = nextVehiclePosition.z;
@@ -352,7 +353,7 @@ bool Vehicle::CableLiftUpdateTrackMotionBackwards()
if (unk.z != _vehicleCurPosition.z)
remainingDistanceFlags |= (1 << 2);
remaining_distance += SubpositionTranslationDistances[remainingDistanceFlags];
remaining_distance += OpenRCT2::RideVehicle::Geometry::SubpositionTranslationDistances[remainingDistanceFlags];
_vehicleCurPosition.x = unk.x;
_vehicleCurPosition.y = unk.y;
_vehicleCurPosition.z = unk.z;

View File

@@ -7316,7 +7316,7 @@ bool Vehicle::UpdateTrackMotionForwards(const CarEntry* carEntry, const Ride& cu
}
// Loc6DB8A5
remaining_distance -= SubpositionTranslationDistances[remainingDistanceFlags];
remaining_distance -= Geometry::SubpositionTranslationDistances[remainingDistanceFlags];
_vehicleCurPosition = nextVehiclePosition;
Orientation = moveInfo->direction;
roll = moveInfo->roll;
@@ -7629,7 +7629,7 @@ bool Vehicle::UpdateTrackMotionBackwards(const CarEntry* carEntry, const Ride& c
{
remainingDistanceFlags |= 4;
}
remaining_distance += SubpositionTranslationDistances[remainingDistanceFlags];
remaining_distance += Geometry::SubpositionTranslationDistances[remainingDistanceFlags];
_vehicleCurPosition = nextVehiclePosition;
Orientation = moveInfo->direction;

View File

@@ -795,31 +795,6 @@ const uint8_t MotionSimulatorTimeToSpriteMap[] = {
const int32_t MotionSimulatorTimeToSpriteMapCount = static_cast<int32_t>(std::size(MotionSimulatorTimeToSpriteMap));
/** rct2: 0x009A2930
The distance between subposition points in a movement direction (but not distance).
*/
const int32_t SubpositionTranslationDistances[] = {
// For a base length of 8716 (0x220C) on the horizontal and 6554 (0x199A) on the vertical,
// use the Pythagoras theorem and round up.
0, // no movement
8716, // X translation
8716, // Y translation
12327, // XY translation
6554, // Z translation
10905, // XZ translation
10905, // YZ translation
13961, // XYZ translation
// For the reverser car, multiply the horizontal distance by 2.5 and the vertical distance by 4.072.
0, // no movement
21790, // X translation
21790, // Y translation
30817, // Z translation
16385, // XY translation
27262, // XZ translation
27262, // YZ translation
34902, // XYZ translation
};
/** rct2: 0x009A2970 */
const int32_t AccelerationFromPitch[] = {
0, // Flat

View File

@@ -26,7 +26,6 @@ extern const TopSpinTimeToSpriteMap* TopSpinTimeToSpriteMaps[];
extern const uint8_t MotionSimulatorTimeToSpriteMap[];
extern const int32_t MotionSimulatorTimeToSpriteMapCount;
extern const int32_t SubpositionTranslationDistances[];
extern const int32_t AccelerationFromPitch[];
extern const int32_t SpriteDirectionToSoundDirection[];

View File

@@ -14,4 +14,29 @@
namespace OpenRCT2::RideVehicle::Geometry
{
/** rct2: 0x009A2930
The distance between subposition points in a movement direction (but not distance).
*/
const int32_t SubpositionTranslationDistances[] = {
// For a base length of 8716 (0x220C) on the horizontal and 6554 (0x199A) on the vertical,
// use the Pythagoras theorem and round up.
0, // no movement
8716, // X translation
8716, // Y translation
12327, // XY translation
6554, // Z translation
10905, // XZ translation
10905, // YZ translation
13961, // XYZ translation
// For the reverser car, multiply the horizontal distance by 2.5 and the vertical distance by 4.072.
0, // no movement
21790, // X translation
21790, // Y translation
30817, // Z translation
16385, // XY translation
27262, // XZ translation
27262, // YZ translation
34902, // XYZ translation
};
} // namespace OpenRCT2::RideVehicle::Geometry

View File

@@ -17,4 +17,6 @@
namespace OpenRCT2::RideVehicle::Geometry
{
extern const int32_t SubpositionTranslationDistances[];
} // namespace OpenRCT2::RideVehicle::Geometry