aboutsummaryrefslogtreecommitdiff
path: root/include/action_list.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/action_list.h')
-rw-r--r--include/action_list.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/include/action_list.h b/include/action_list.h
index a0f5a34..14c733f 100644
--- a/include/action_list.h
+++ b/include/action_list.h
@@ -5,19 +5,24 @@
enum A_TYPE { A_PLACE, A_MOVE };
-typedef struct action_list_s {
- struct action_list_s *next;
+typedef struct action_node_s {
+ struct action_node_s *next;
enum A_TYPE type;
int8_t loc;
uint8_t data0;
uint8_t data1;
+} action_node_t;
+
+typedef struct action_list_s {
+ struct action_node_s *head;
+ uint32_t length;
} action_list_t;
void action_list_init(void);
void action_list_free(action_list_t *list);
action_list_t *action_list_generate(void);
-void action_take(action_list_t *action);
-void action_undo(action_list_t *action);
+void action_take(action_node_t *action);
+void action_undo(action_node_t *action);
-void action_to_ptn(action_list_t* action, char* out_ptn);
+void action_to_ptn(action_node_t* action, char* out_ptn);