/* date = August 30th 2023 6:28 pm */

#ifndef VN_CHARACTER_H
#define VN_CHARACTER_H

////////////////////////////////
//~ sixten: Character Registry Types
struct character_entry
{
    character_entry *Next;
    character_entry *Prev;
    
    string Name;
};

struct character_list
{
    character_entry *First;
    character_entry *Last;
    s64 Count;
};

struct character_registry
{
    memory_arena *Arena;
    character_list Characters;
};


////////////////////////////////
//~ sixten: Character Registry Functions
static void CR_SetState(character_registry *State);
static character_registry *CR_GetState(void);
static character_list CR_GetCharacters(void);
static void CR_Init(void);
static character_entry *CR_EntryFromName(string Name);

#endif //VN_CHARACTER_H
