#pragma once

#include "../common.h"

struct rct_sprite_common
{
    uint8_t sprite_identifier;
    uint8_t type;
    uint16_t next_in_quadrant;
    uint16_t next;
    uint16_t previous;
    // Valid values are SPRITE_LINKEDLIST_OFFSET_...
    uint8_t linked_list_index;
    // Height from centre of sprite to bottom
    uint8_t sprite_height_negative;
    uint16_t sprite_index;
    uint16_t flags;
    int16_t x;
    int16_t y;
    int16_t z;
    // Width from centre of sprite to edge
    uint8_t sprite_width;
    // Height from centre of sprite to top
    uint8_t sprite_height_positive;
    // Screen Coordinates of sprite
    int16_t sprite_left;
    int16_t sprite_top;
    int16_t sprite_right;
    int16_t sprite_bottom;

    uint8_t sprite_direction;
};

struct rct_sprite_generic : rct_sprite_common
{
    uint16_t frame;
};
