mirror of https://github.com/OpenRCT2/OpenRCT2.git
44 lines
1.1 KiB
C++
44 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "../entity/Peep.h"
|
|
|
|
#include <span>
|
|
|
|
namespace OpenRCT2
|
|
{
|
|
struct SpriteBounds
|
|
{
|
|
uint8_t sprite_width; // 0x00
|
|
uint8_t sprite_height_negative; // 0x01
|
|
uint8_t sprite_height_positive; // 0x02
|
|
};
|
|
|
|
struct PeepAnimation
|
|
{
|
|
uint32_t base_image;
|
|
SpriteBounds bounds;
|
|
std::span<const uint8_t> frame_offsets;
|
|
};
|
|
|
|
struct PeepAnimationGroup
|
|
{
|
|
public:
|
|
constexpr PeepAnimation& operator[](PeepActionSpriteType n)
|
|
{
|
|
return animations[EnumValue(n)];
|
|
}
|
|
constexpr const PeepAnimation& operator[](PeepActionSpriteType n) const
|
|
{
|
|
return animations[EnumValue(n)];
|
|
}
|
|
|
|
private:
|
|
PeepAnimation animations[37]{};
|
|
};
|
|
|
|
const PeepAnimation& GetPeepAnimation(
|
|
PeepSpriteType spriteType, PeepActionSpriteType actionSpriteType = PeepActionSpriteType::None);
|
|
const SpriteBounds& GetSpriteBounds(
|
|
PeepSpriteType spriteType, PeepActionSpriteType actionSpriteType = PeepActionSpriteType::None);
|
|
} // namespace OpenRCT2
|