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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -17,4 +17,6 @@
|
||||
namespace OpenRCT2::RideVehicle::Geometry
|
||||
{
|
||||
|
||||
extern const int32_t SubpositionTranslationDistances[];
|
||||
|
||||
} // namespace OpenRCT2::RideVehicle::Geometry
|
||||
|
||||
Reference in New Issue
Block a user