keyboard update

This commit is contained in:
p.kosyh 2009-09-07 05:35:34 +00:00
parent 7d0a9c6d0f
commit d67e30622b
2 changed files with 33 additions and 11 deletions

View file

@ -18,6 +18,8 @@ main = room {
dsc = [[Добро пожаловать в режим обучения instead (sdl версия).
Каждая сцена игры представляет собой описание статической и динамической части.^^
Для того, чтобы целиком обновить описание сцены, вы можете нажать мышью на заголовок сцены.^^
Динамическая часть сцены состоит из объектов, персонажей и т.д. С динамической частью
игрок может взаимодействовать с помощью мыши, нажимая на подсвеченные ссылки.^^
@ -188,8 +190,14 @@ theend = room {
help = room {
nam = 'Список клавиш',
dsc = [[
esc - меню^
alt-q - выход^
alt-enter - полный экран/окно^
Вверх/Вниз, Пробел/Backspace, PgUp/PgDn - прокрутка главного окна.]],
esc - меню;^
alt-q - быстрый выход;^
alt-enter - полный экран/окно;^
f2 - сохранить игру;^
f3 - загрузить игру;^
f5 - обновить описание сцены;^
f10 - выход;^
TAB, Shift-TAB - переключение между зонами ввода;^
Влево/Вправо, Вверх/Вниз, Shift + Вверх/Вниз, Пробел/Backspace, PgUp/PgDn - прокрутка, навигация по ссылкам;^
Enter - нажать на ссылку;]],
};

View file

@ -1817,7 +1817,19 @@ int game_loop(void)
(!is_key(&ev,"left shift") || !is_key(&ev, "right shift"))) {
shift_pressed = (ev.type == KEY_DOWN) ? 1:0;
} else if (ev.type == KEY_DOWN) {
if (!alt_pressed && !is_key(&ev, "return")) {
if (!is_key(&ev, "f2") && curgame_dir) {
mouse_reset();
game_menu(menu_save);
} if (!is_key(&ev, "f3") && curgame_dir) {
mouse_reset();
game_menu(menu_load);
} if (!is_key(&ev, "f5") && curgame_dir) {
mouse_reset();
game_cmd("look");
} if (!is_key(&ev, "f10")) {
mouse_reset();
game_menu(menu_askquit);
} else if (!alt_pressed && (!is_key(&ev, "return") || !is_key(&ev, "enter"))) {
game_highlight(-1, -1, 0);
gfx_cursor(&x, &y, NULL, NULL);
game_click(x, y, 0);
@ -1827,9 +1839,11 @@ int game_loop(void)
menu_toggle();
} else if (!is_key(&ev, "tab")) {
select_frame(shift_pressed);
} else if (!is_key(&ev, "up") || !is_key(&ev, "down")) {
} else if (!is_key(&ev, "up") || !is_key(&ev, "down") ||
!is_key(&ev, "[8]") || !is_key(&ev, "[2]")) {
int lm;
int prev = !is_key(&ev, "up");
int prev = !is_key(&ev, "up") || !is_key(&ev, "[8]");
if (opt_kbd == KBD_INVERSE)
lm = (alt_pressed || shift_pressed);
@ -1844,17 +1858,17 @@ int game_loop(void)
}
} else
(prev)?game_scroll_up(1):game_scroll_down(1);
} else if (!is_key(&ev, "left")) {
} else if (!is_key(&ev, "left") || !is_key(&ev, "[4]")) {
select_ref(1, 0);
} else if (!is_key(&ev, "right")) {
} else if (!is_key(&ev, "right") || !is_key(&ev, "[6]")) {
select_ref(0, 0);
} else if (!is_key(&ev, "backspace") && !menu_shown) {
scroll_pup(el_scene);
} else if (!is_key(&ev, "space") && !menu_shown) {
scroll_pdown(el_scene);
} else if (!is_key(&ev, "page up") && !menu_shown) {
} else if ((!is_key(&ev, "page up") || !is_key(&ev, "[9]")) && !menu_shown) {
game_scroll_pup();
} else if (!is_key(&ev, "page down") && !menu_shown) {
} else if ((!is_key(&ev, "page down") || !is_key(&ev, "[3]")) && !menu_shown) {
game_scroll_pdown();
} else if (alt_pressed && !is_key(&ev, "q")) {
break;