#ifndef GAME_NPC_H
#define GAME_NPC_H

#include <stdbool.h>
#include "sys/sys.h"

#define GAME_NPC_MAX_N_DIALOGUES 16

typedef struct {
    sys_i32 x;
    sys_i32 y;

    uint8_t sprite_id;
    uint8_t palette_id;
    uint8_t inflict_id;
    bool face_left;

    uint8_t n_dialogues;
    const char* no_cake_dialogue;
    const char* dialogues[GAME_NPC_MAX_N_DIALOGUES];

    bool present;
    uint8_t n_dialogues_seen;
} game_npc;

// pointer goes to data section and will be valid forever
game_npc* game_npc_create(sys_i32 x, sys_i32 y);

void game_npcs_update(bool* allow_input);
void game_npcs_draw();

#endif  // GAME_NPC_H