diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 68ce4d22c7..b139283bf4 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -851,6 +851,7 @@ + diff --git a/src/openrct2/ride/CarEntry.cpp b/src/openrct2/ride/CarEntry.cpp new file mode 100644 index 0000000000..670b192335 --- /dev/null +++ b/src/openrct2/ride/CarEntry.cpp @@ -0,0 +1,40 @@ +/***************************************************************************** + * Copyright (c) 2014-2023 OpenRCT2 developers + * + * For a complete list of all authors, please refer to contributors.md + * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is licensed under the GNU General Public License version 3. + *****************************************************************************/ + +#include "CarEntry.h" + +#include "../entity/Yaw.hpp" + +#include + +uint32_t CarEntry::NumRotationSprites(SpriteGroupType spriteGroup) const +{ + return NumSpritesPrecision(SpriteGroups[static_cast(spriteGroup)].spritePrecision); +} + +int32_t CarEntry::SpriteByYaw(int32_t yaw, SpriteGroupType spriteGroup) const +{ + return YawToPrecision(yaw, SpriteGroups[static_cast(spriteGroup)].spritePrecision); +} + +bool CarEntry::GroupEnabled(SpriteGroupType spriteGroup) const +{ + return SpriteGroups[static_cast(spriteGroup)].Enabled(); +} + +uint32_t CarEntry::GroupImageId(SpriteGroupType spriteGroup) const +{ + return SpriteGroups[static_cast(spriteGroup)].imageId; +} + +uint32_t CarEntry::SpriteOffset(SpriteGroupType spriteGroup, int32_t imageDirection, uint8_t rankIndex) const +{ + return ((SpriteByYaw(imageDirection, spriteGroup) + NumRotationSprites(spriteGroup) * rankIndex) * base_num_frames) + + GroupImageId(spriteGroup); +} diff --git a/src/openrct2/ride/VehiclePaint.cpp b/src/openrct2/ride/VehiclePaint.cpp index ce1e53e1a6..c4755ae720 100644 --- a/src/openrct2/ride/VehiclePaint.cpp +++ b/src/openrct2/ride/VehiclePaint.cpp @@ -3741,29 +3741,3 @@ void Vehicle::Paint(PaintSession& session, int32_t imageDirection) const break; } } - -uint32_t CarEntry::NumRotationSprites(SpriteGroupType spriteGroup) const -{ - return NumSpritesPrecision(SpriteGroups[static_cast(spriteGroup)].spritePrecision); -} - -int32_t CarEntry::SpriteByYaw(int32_t yaw, SpriteGroupType spriteGroup) const -{ - return YawToPrecision(yaw, SpriteGroups[static_cast(spriteGroup)].spritePrecision); -} - -bool CarEntry::GroupEnabled(SpriteGroupType spriteGroup) const -{ - return SpriteGroups[static_cast(spriteGroup)].Enabled(); -} - -uint32_t CarEntry::GroupImageId(SpriteGroupType spriteGroup) const -{ - return SpriteGroups[static_cast(spriteGroup)].imageId; -} - -uint32_t CarEntry::SpriteOffset(SpriteGroupType spriteGroup, int32_t imageDirection, uint8_t rankIndex) const -{ - return ((SpriteByYaw(imageDirection, spriteGroup) + NumRotationSprites(spriteGroup) * rankIndex) * base_num_frames) - + GroupImageId(spriteGroup); -}