// // Prompts for valid directional input // int prompt_dir(const char * prompt, int * dx, int * dy) { *dx = *dy = 0; wmove(dispscr, 0, 0); wprintw(dispscr, "%s\n", prompt); wrefresh(dispscr); switch (ctrl_by_key(get_ctrl())) { case CTRL_LEFT: *dx = -1; *dy = 0; break; case CTRL_DOWN: *dx = 0; *dy = 1; break; case CTRL_UP: *dx = 0; *dy =-1; break; case CTRL_RIGHT: *dx = 1; *dy = 0; break; case CTRL_ULEFT: *dx = -1; *dy =-1; break; case CTRL_URIGHT: *dx = 1; *dy =-1; break; case CTRL_DLEFT: *dx = -1; *dy = 1; break; case CTRL_DRIGHT: *dx = 1; *dy = 1; break; } wrefresh(dispscr); return *dx || *dy; }
int key_command(int key) { return execute(ctrl_by_key(key), 0, NULL); }