/**
 * Copyright (c) 2021 Dominic Masters
 * 
 * This software is released under the MIT License.
 * https://opensource.org/licenses/MIT
 */

#pragma once
#include <dawn/dawn.h>
#include "vnconversation.h"
#include "../../display/animation/queue.h"

/** Event Callback for when the talk action starts */
void _vnConversationTalkStart(queue_t *q, queueaction_t *a, uint8_t i);

/** Event Callback for when the talk action updates */
void _vnConversationTalkUpdate(queue_t *q, queueaction_t *a, uint8_t i);

/**
 * Adds text to the conversation queue.
 * 
 * @param conversation Conversation to add the text to.
 * @param text Text to add.
 * @param character Character that is talking, or NULL.
 * @return Pointer to the queue item that was added for this text.
 */
queueaction_t * vnConversationTalk(
  vnconversation_t *conversation,
  char *text,
  vncharacter_t *character
);