diff options
Diffstat (limited to 'include/actions.h')
| -rw-r--r-- | include/actions.h | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/include/actions.h b/include/actions.h index 8df9392..1550cce 100644 --- a/include/actions.h +++ b/include/actions.h @@ -18,8 +18,8 @@ #ifndef ACTIONS_H #define ACTIONS_H -#include <stdlib.h> #include <stdint.h> +#include <stdlib.h> #include <tak.h> @@ -33,16 +33,15 @@ typedef uint32_t action_t; #define A_DATA1_SHIFT 24 #define A_DATA0_SHIFT 16 -#define A_LOC_SHIFT 8 +#define A_LOC_SHIFT 8 -#define A_GET_DATA1(a) (enum A_TYPE)((a)>>A_DATA1_SHIFT) -#define A_GET_DATA0(a) (int8_t)(((a)>>A_DATA0_SHIFT) & 0xFF) -#define A_GET_LOC(a) (uint8_t)(((a)>>A_LOC_SHIFT) & 0xFF) -#define A_GET_TYPE(a) (uint8_t)((a) & 0xFF) -#define A_BUILD(type,loc,data0,data1) ((type) \ - | (loc) << A_LOC_SHIFT \ - | (data0) << A_DATA0_SHIFT \ - | (data1) << A_DATA1_SHIFT) +#define A_GET_DATA1(a) (enum A_TYPE)((a) >> A_DATA1_SHIFT) +#define A_GET_DATA0(a) (int8_t)(((a) >> A_DATA0_SHIFT) & 0xFF) +#define A_GET_LOC(a) (uint8_t)(((a) >> A_LOC_SHIFT) & 0xFF) +#define A_GET_TYPE(a) (uint8_t)((a)&0xFF) +#define A_BUILD(type, loc, data0, data1) \ + ((type) | (loc) << A_LOC_SHIFT | (data0) << A_DATA0_SHIFT | \ + (data1) << A_DATA1_SHIFT) typedef struct action_node_s { struct action_node_s *next; @@ -64,15 +63,15 @@ extern int8_t move_deltas[4]; // Methods // =================================================================== -void action_list_init(void); +void action_list_init(const uint8_t board_size); void action_list_free(action_list_t *list); -action_list_t *action_list_generate(void); +action_list_t *action_list_generate(tak_state_p state); int action_move_to_front(const action_t action, action_list_t *list); -void action_take(const action_t action); -void action_undo(const action_t action); +void action_take(tak_state_p state, const action_t action); +void action_undo(tak_state_p state, const action_t action); -void action_to_ptn(const action_t action, char* out_ptn); +void action_to_ptn(const action_t action, char *out_ptn); #endif |
