// src/assets/character_walk_frames.h
#pragma once

// Walk frame 1
static const char *WALK_FRAME_1[] = {
    "..a@w.",
    ".._T`.",
    ".s@@y.",
    ".^$$~T",
    ".y@`$.",
    "=F..?K",
};

// Walk frame 2
static const char *WALK_FRAME_2[] = {
    "..y@$.",
    ".._Z~.",
    ".y@@L.",
    ".4W@Z!",
    "._$~$.",
    "~~`.0.",
};

// Walk frame 3
static const char *WALK_FRAME_3[] = {
    "..g@L.",
    ".._T~.",
    ".g@$..",
    ".J@@..",
    "_y$4L.",
    "~~.4~.",
};

// Walk frame 4
static const char *WALK_FRAME_4[] = {
    "..a@w.",
    "..~T~.",
    "..@$..",
    "..@$..",
    "..y@..",
    ".\"~@..",
};

// Walk frame 5
static const char *WALK_FRAME_5[] = {
    "..@@..",
    "..Z~..",
    "..@L..",
    "..@L..",
    "..$%..",
    ".4F...",
};

// Walk frame 6
static const char *WALK_FRAME_6[] = {
    ".u@$..",
    "..Z~..",
    ".g@_..",
    ".$@5+.",
    "._BL..",
    "uP.@..",
};

// Walk frame 7
static const char *WALK_FRAME_7[] = {
    "..a@w.",
    ".._T`.",
    ".s@@y.",
    ".^$$~T",
    ".yE`$.",
    "=F..JK",
};

enum class WalkFrame {
    Walk1 = 0,
    Walk2,
    Walk3,
    Walk4,
    Walk5,
    Walk6,
    Walk7,
    COUNT
};

static const char **CHARACTER_WALK_FRAMES[] = {
    WALK_FRAME_1,
    WALK_FRAME_2,
    WALK_FRAME_3,
    WALK_FRAME_4,
    WALK_FRAME_5,
    WALK_FRAME_6,
    WALK_FRAME_7,
};

static const int CHARACTER_WALK_FRAME_COUNT = sizeof(CHARACTER_WALK_FRAMES) / sizeof(CHARACTER_WALK_FRAMES[0]);

// Height (rows per walk frame)
static const int CHARACTER_WALK_FRAME_HEIGHT = sizeof(WALK_FRAME_1) / sizeof(WALK_FRAME_1[0]);

static const int CHARACTER_WALK_FRAME_WIDTH = 6;
static const int CHARACTER_WALK_COLLISION_LEFT_OFFSET  = 1;
static const int CHARACTER_WALK_COLLISION_RIGHT_OFFSET = 1;
// 8 je width a 2 zlava a 2 zprava
static const int CHARACTER_WALK_COLLISION_WIDTH = CHARACTER_WALK_FRAME_WIDTH - (CHARACTER_WALK_COLLISION_LEFT_OFFSET + CHARACTER_WALK_COLLISION_RIGHT_OFFSET);
