49 lines
1.4 KiB
C
49 lines
1.4 KiB
C
/**
|
|
* 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 "../gui/vntextbox.h"
|
|
#include "../../util/array.h"
|
|
#include "../../display/animation/timeline.h"
|
|
#include "../../display/animation/queue.h"
|
|
|
|
/**
|
|
* Initialize the conversation set. After adding your first conversation element
|
|
* then ensure you call vnConversationNext to begin the conversation.
|
|
* @param convo Conversation to initialize.
|
|
* @param font Font to initialize with.
|
|
* @param tex GUI Texture.
|
|
*/
|
|
void vnConversationInit(vnconversation_t *convo, font_t *font, texture_t *text);
|
|
|
|
/**
|
|
* Add a text element to the conversation.
|
|
* @param convo Conversation to add to.
|
|
* @return The pointer to the queue element.
|
|
*/
|
|
queueaction_t * vnConversationAdd(vnconversation_t *convo);
|
|
|
|
/**
|
|
* Updates the conversation logic and the wrapped textbox.
|
|
* @param convo Conversation to update.
|
|
* @param engine Engine used to update.
|
|
*/
|
|
void vnConversationUpdate(vnconversation_t *convo, engine_t *engine);
|
|
|
|
/**
|
|
* Renders the conversation, mostly just a wrapper for the textbox.
|
|
* @param convo Conversation to render.
|
|
* @param shader Shader to use while rendering.
|
|
*/
|
|
void vnConversationRender(vnconversation_t *convo, shader_t *shader);
|
|
|
|
/**
|
|
* Dispose the conversation when finished.
|
|
* @param convo Conversation to dispose.
|
|
*/
|
|
void vnConversationDispose(vnconversation_t *convo); |