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

#pragma once
#include "../libs.h"
#include "../display/animation/queue.h"
#include "vncharacter.h"
#include "vntextbox.h"

typedef struct _vnconversation_t vnconversation_t;

typedef struct {
  /** Pointer to the original conversation */
  vnconversation_t *conversation;

  /** Storage for pointer to text for text conversation elements */
  char *text;

  /** Character this conversation piece belongs to */
  vncharacter_t *character;
} vnconversationitemdata_t;

/** Representation of a conversation, laid out similarly to a timeline. */
typedef struct _vnconversation_t {
  /** Internal Textbox for text elements */
  vntextbox_t textbox;

  /** Data Storage for items' data */
  vnconversationitemdata_t itemData[ANIMATION_QUEUE_ITEM_MAX];

  /** Internal Queue for queueing the conversation */
  queue_t actionQueue;
} vnconversation_t;