aboutsummaryrefslogtreecommitdiff
path: root/config.h
blob: 0c2679a4660dbafcd98f1fe3315e7b0589156c07 (plain) (blame)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#ifndef CONFIG_H_
#define CONFIG_H_

#define COST_ORTHOGONAL    10
#define COST_DIAGONAL      14 /* sqrt(2) * 10 */

#define ANIM_DELAY_USEC    10*1000

/* The characters that represent different tiles.
 * Some have two characters -- that's because of the rendering trick where we
 * use two characters back-to-back so they look like a square. */
#define EMPTY_CHAR         ' '
#define GOAL_CHAR_1        'G'
#define GOAL_CHAR_2        'L'
#define WALL_CHAR          '#'
#define START_CHAR_1       'S'
#define START_CHAR_2       'T'
#define CURSOR_CHAR_1      '<'
#define CURSOR_CHAR_2      '>'

/* WARNING: if you're changing the bindings, please update the comments in
 * main.c and map.c */

/* --- KEYBINDINGS --- */
/* - Basic movements - */
#define KEYBINDING_UP      'k'
#define KEYBINDING_DOWN    'j'
#define KEYBINDING_LEFT    'h'
#define KEYBINDING_RIGHT   'l'

/* - Fast movements - */
#define KEYBINDING_FUP     'K'
#define KEYBINDING_FDOWN   'J'
#define KEYBINDING_FLEFT   'H'
#define KEYBINDING_FRIGHT  'L' /* lmao fright */


/* Move view to start/goal */
#define KEYBINDING_GOTO    'g'
#define KEYBINDING_GOTO_ST 's'
#define KEYBINDING_GOTO_GL 'e'

/* -- Miscellaneous -- */
#define KEYBINDING_ALGO    'd' /* Toggle algorithms */
#define KEYBINDING_DIRS    '4' /* Toggle amount of directions */

#define KEYBINDING_WRAPAROUND 'f'
#define KEYBINDING_REVERSE_PATH 'r'
#define KEYBINDING_PATH_TIME 't' /* Prints time it took to find a path */
#define KEYBINDING_QUIT    'q'

/* - Main screen-specific - */
/* Maze resizing */
#define KEYBINDING_MAZE_HOR_SHRINK 'y'
#define KEYBINDING_MAZE_HOR_GROW   'o'
#define KEYBINDING_MAZE_VER_SHRINK 'i'
#define KEYBINDING_MAZE_VER_GROW   'u'

#define KEYBINDING_REPATHFIND 'a'
#define KEYBINDING_ANIM 'A'

#define KEYBINDING_BMP     's'
#define KEYBINDING_OPEN_MAP 'w'
#define KEYBINDING_NEW_MAZE 'n'
#define KEYBINDING_LOAD_COSTS 'c'

#define KEYBINDING_EDITOR  'e'

/* - Editor-specific - */
#define KEYBINDING_TOGGLE_PATHFINDING 'a'
#define KEYBINDING_CLEAR   'c'
#define KEYBINDING_SAVE_MAP 's'

/* - anim()-specific - */
#define KEYBINDING_AUTO_ANIM 'a'

/* --- End of keybindings --- */

#define MESSAGE_MAX_SIZE   256

#define FILENAME_BUF_SIZE  128
#define FILENAME_PROMPT "Filename:"

#endif /* CONFIG_H_ */