aboutsummaryrefslogtreecommitdiff
path: root/src/position_stack.h
blob: 83fb98ce014df388cc5d224d3ec37fe973ce6b3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef POSITION_STACK_H
#define POSITION_STACK_H

#define STACK_ERR_OVERFLOW 0xFFF01
#define STACK_ERR_UNDERFLOW 0xFFF02

typedef struct Position
{
	int x;
	int y;
} Position;

typedef struct PositionStack
{
	int capacity;
	int top;
	Position *items;
} PositionStack;

PositionStack *pos_stack_create(int capacity);

void pos_stack_destroy(PositionStack *pos_stack);

void pos_stack_push(PositionStack *pos_stack, Position pos);

Position pos_stack_peek(PositionStack *pos_stack);

Position pos_stack_pop(PositionStack *pos_stack);

#endif