Added basic betting, turns, and added queue restacking
This commit is contained in:
@ -65,6 +65,30 @@ void queueDispose(queue_t *queue) {
|
||||
if(action->onEnd != NULL) action->onEnd(queue, action, queue->current);
|
||||
}
|
||||
|
||||
void queueRestack(queue_t *queue) {
|
||||
queueaction_t *action;
|
||||
uint8_t i;
|
||||
queueaction_t items[ANIMATION_QUEUE_ITEM_MAX];
|
||||
|
||||
// Take the current queue and copy it.
|
||||
arrayCopy(sizeof(queueaction_t),
|
||||
queue->items+queue->current, queue->count - queue->current,
|
||||
items
|
||||
);
|
||||
|
||||
// Now rewind the stack
|
||||
queue->count -= queue->current;
|
||||
queue->current = 0;
|
||||
|
||||
// Now copy back
|
||||
arrayCopy(sizeof(queueaction_t), items, queue->count, queue->items);
|
||||
|
||||
// Now fix indexes
|
||||
for(i = 0; i < queue->count; i++) {
|
||||
queue->items[i].index = i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void _queueDelayUpdate(queue_t *queue, queueaction_t *action, uint8_t i) {
|
||||
float n = queue->timeline - queue->actionStarted;
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
#pragma once
|
||||
#include <dawn/dawn.h>
|
||||
#include "../../util/array.h"
|
||||
|
||||
/**
|
||||
* Initialize the queue set.
|
||||
@ -41,10 +42,17 @@ void queueUpdate(queue_t *queue, engine_t *engine);
|
||||
*/
|
||||
void queueDispose(queue_t *queue);
|
||||
|
||||
/**
|
||||
* Restacks the queue. The restack process essentially rewinds the queue so that
|
||||
* the current items move back to position 0, and allows you to add more items
|
||||
* to the queue again.
|
||||
*
|
||||
* @param queue Queue to restack.
|
||||
*/
|
||||
void queueRestack(queue_t *queue);
|
||||
|
||||
/** Callbacks for Queue Delay Action */
|
||||
void _queueDelayUpdate(queue_t *queue, queueaction_t *action, uint8_t i);
|
||||
|
||||
/**
|
||||
* Adds a delay action to a queue.
|
||||
* @param queue Queue to add to.
|
||||
|
Reference in New Issue
Block a user