1 /* keypress values */ 2 #define MVLEFT 1 3 #define MVRIGHT 2 4 #define MVUP 3 /* rotate */ 5 #define MVDOWN 4 /* softdrop */ 6 #define A_BTN 5 /* rotate clockwise */ 7 #define B_BTN 6 /* rotate anticlockwise */ 8 #define HARDDROP ' ' 9 #define STARTBTN '\n' 10 #define ESC '\033' 11 #define DEL 0x7F 12 #define BACKSPACE '\b' 13 14 /* keypress bit flags */ 15 #define IN_GAME 0x100 16 #define PLAYER_1 0x200 17 #define PLAYER_2 0x400 18 19 #define SINGLE_PL 0x800 20 21 #define DAS_INITIAL_DELAY 266 22 #define DAS_DELAY 100 23 24 extern const char input_chr9[9][4]; 25 26 #if SOCKET 27 #define NUM_INPUTDEVS 4 28 #elif JOYSTICK 29 #define NUM_INPUTDEVS 3 30 #else 31 #define NUM_INPUTDEVS 1 32 #endif 33 34 #define socket_fd inputdevs_fd[3] 35 36 extern int inputdevs_fd[4]; 37 extern char inputdevs_player[4]; 38 39 extern int num_joyst; 40 extern int autorep_a_b_btns; 41 extern int edit_mode; 42 43 void init_inputdevs(); 44 45 /* prepare for two-player game */ 46 void initplayerinput(); 47 48 /* returns NUM_INPUTDEV if no input is ready */ 49 int inpselect_dev(int tm); 50 51 /* wait msec < 1000 milliseconds for input on file descriptor */ 52 int waitinput(int fd, unsigned msec); 53 54 int getkeypress(int tm, int flags); 55 int getkeypress_block(int flags); 56 57 void spawn_discard_drops(int pl); 58 59 int setkeymapping(int dev, int keypress); 60 const char *getkeyfor_str(int dev, int keypress); 61 62 /* processkey_ingame flags */ 63 #define DISCARD_MOVES 1 64 #define DISCARD_DROPS 2 65 #define NO_PAUSE 8 66 67 int processkey_ingame(int keypress, int flags); 68