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

#pragma once
#include <dawn/dawn.h>

/**
 * Initializes the action manager.
 */
void pokerActionInit();

/**
 * Adds an action to the action queue.
 * 
 * @param action Action to add to the queue.
 * @returns The index of the action within the queue, or -1 if failure occured.
 */
int32_t pokerActionAdd(pokeraction_t action);

/**
 * Removes an action from the action queue.
 * 
 * @param index Action to remove (by index in the queue).
 */
void pokerActionRemove(int32_t index);

/**
 * Updates the action manager, which (in turn) updates all actions that are
 * currently running.
 */
void pokerActionUpdate();

/**
 * Cleans up the action manager and all actions.
 */
void pokerActionDispose();