#include "libforest/gbi_extensions.h"
#include "PR/gbi.h"
#include "evw_anime.h"
#include "c_keyframe.h"
#include "ac_npc.h"
#include "ef_effect_control.h"

u8 cKF_ckcb_r_npc_1_punpun1_tbl[] = { 56, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 7, 7, 0, 7, 7, 7, 7, 0, 7, 0, 0 };

s16 cKF_kn_npc_1_punpun1_tbl[] = { 2, 4, 4, 2, 3, 3, 2, 4, 3, 2, 4, 2, 2, 4, 4, 2, 3, 3, 2, 4, 2, 2, 2, 2, 2, 5, 2,
                                   2, 6, 2, 2, 4, 4, 3, 3, 3, 2, 3, 2, 3, 3, 3, 2, 3, 2, 3, 2, 2, 2, 4, 2, 2, 5, 2 };

s16 cKF_c_npc_1_punpun1_tbl[] = { 0,    0, 900, 0,   0, 1800, 0, 0, 1800, 0, 900, 0, 0,   0,
                                  -900, 0, 0,   900, 0, -900, 0, 0, 0,    0, 0,   0, -900 };

s16 cKF_ds_npc_1_punpun1_tbl[] = {
    1,  0,    0,    12, 0,    0,   1,  1000, 0,   6,  1075, 0,    9,  1100,  0,   12, 975,  0,   1,  0,     0,
    8,  0,    0,    10, 150,  0,   12, 150,  0,   1,  0,    0,    12, 0,     0,   1,  0,    0,   6,  100,   0,
    12, -30,  0,    1,  0,    0,   9,  -200, 0,   12, 100,  0,    1,  -175,  0,   12, -175, 0,   1,  -100,  0,
    6,  0,    0,    9,  105,  766, 12, 65,   0,   1,  25,   0,    9,  230,   0,   12, -125, 0,   1,  0,     0,
    12, 0,    0,    1,  200,  0,   6,  200,  0,   9,  0,    0,    12, 0,     0,   1,  0,    0,   12, 0,     0,
    1,  0,    0,    12, 0,    0,   1,  -100, 0,   6,  -100, 0,    9,  -20,   0,   12, -95,  0,   1,  0,     0,
    6,  0,    -150, 9,  -40,  25,  12, 5,    59,  1,  175,  0,    12, 300,   0,   1,  -100, 0,   8,  -600,  0,
    12, -370, 0,    1,  -25,  0,   8,  -250, 0,   12, -270, 0,    1,  0,     0,   12, 0,    0,   1,  200,   0,
    4,  600,  0,    8,  200,  0,   12, 550,  0,   1,  0,    0,    12, 0,     0,   1,  0,    0,   12, 0,     0,
    1,  -100, 0,    12, -175, 0,   1,  0,    0,   12, 0,    0,    1,  0,     0,   12, 100,  0,   1,  60,    0,
    7,  150,  0,    10, -249, 0,   11, -149, 0,   12, -168, -780, 1,  0,     0,   12, 0,    0,   1,  0,     0,
    12, 0,    0,    1,  82,   0,   4,  -200, -31, 9,  200,  0,    10, -50,   0,   11, 50,   0,   12, 30,    -905,
    1,  0,    0,    12, 0,    0,   1,  0,    0,   12, 0,    0,    1,  2,     -78, 5,  -50,  0,   9,  130,   0,
    12, -250, -159, 1,  0,    0,   6,  0,    0,   9,  150,  0,    12, -100,  0,   1,  0,    0,   6,  900,   0,
    12, 700,  0,    1,  58,   0,   6,  0,    0,   12, 0,    0,    1,  -564,  240, 6,  100,  0,   12, -300,  0,
    1,  0,    0,    12, 0,    0,   1,  -57,  468, 6,  -300, 0,    12, -1000, 0,   1,  0,    0,   12, 0,     0,
    1,  0,    0,    6,  -900, 0,   12, -700, 0,   1,  58,   317,  6,  0,     0,   12, 0,    0,   1,  564,   -272,
    6,  -100, 0,    12, 300,  0,   1,  0,    0,   12, 0,    0,    1,  -57,   468, 6,  -300, 0,   12, -1000, 0,
    1,  0,    0,    12, 0,    0,   1,  0,    0,   6,  1800, 0,    12, 1800,  0,   1,  0,    0,   12, 150,   0,
    1,  0,    0,    12, 0,    0,   1,  0,    0,   12, 0,    0,    1,  0,     0,   5,  -150, 500, 10, 150,   1500,
    12, 200,  -188, 1,  0,    0,   12, 0,    0,   1,  0,    0,    12, 0,     0,   1,  0,    0,   4,  -400,  0,
    7,  -400, 0,    9,  0,    0,   12, 0,    0,   1,  0,    0,    12, 0,     0
};

u8 npc_1_punpun10_tex_index[] = { 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3 };

u8 npc_1_punpun11_tex_index[] = { 0, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3 };

aNPC_Animation_c cKF_ba_r_npc_1_punpun1 = {
    { cKF_ckcb_r_npc_1_punpun1_tbl, cKF_ds_npc_1_punpun1_tbl, cKF_kn_npc_1_punpun1_tbl, cKF_c_npc_1_punpun1_tbl, -1,
      12 },
    1.0f,
    12.0f,
    cKF_FRAMECONTROL_STOP,
    -5.0f,
    npc_1_punpun11_tex_index,
    aNPC_EYE_TEX0,
    -1,
    npc_1_punpun10_tex_index,
    aNPC_MOUTH_TEX0,
    -1,
    2,
    eEC_EFFECT_PUN,
    NULL,
    NULL,
};
