fix in timer and input. todo: mouse?

This commit is contained in:
p.kosyh 2010-01-21 05:35:53 +00:00
parent 38e536dab2
commit dda0cebb15
2 changed files with 9 additions and 11 deletions

View file

@ -2134,7 +2134,6 @@ static int is_key(struct inp_event *ev, const char *name)
static int game_input(int down, const char *key) static int game_input(int down, const char *key)
{ {
int b;
char *p; char *p;
char buf[1024]; char buf[1024];
@ -2152,10 +2151,11 @@ static int game_input(int down, const char *key)
return -1; return -1;
} }
b = instead_bretval(0); p = instead_retval(0); instead_clear();
instead_clear(); if (!p)
if (!b)
return -1; return -1;
mouse_reset(0);
game_cmd(p); free(p);
return 0; return 0;
} }
@ -2175,8 +2175,7 @@ int game_loop(void)
break; break;
} else if (curgame_dir && (ev.type == KEY_DOWN || ev.type == KEY_UP) } else if (curgame_dir && (ev.type == KEY_DOWN || ev.type == KEY_UP)
&& !game_input((ev.type == KEY_DOWN), ev.sym)) { && !game_input((ev.type == KEY_DOWN), ev.sym)) {
mouse_reset(0); ; /* all is done in game_input */
game_cmd("look");
} else if (((ev.type == KEY_DOWN) || (ev.type == KEY_UP)) && } else if (((ev.type == KEY_DOWN) || (ev.type == KEY_UP)) &&
(!is_key(&ev, "left alt") || !is_key(&ev, "right alt"))) { (!is_key(&ev, "left alt") || !is_key(&ev, "right alt"))) {
alt_pressed = (ev.type == KEY_DOWN) ? 1:0; alt_pressed = (ev.type == KEY_DOWN) ? 1:0;

View file

@ -350,19 +350,18 @@ extern void mouse_reset(int hl); /* too bad */
static void instead_timer_do(void *data) static void instead_timer_do(void *data)
{ {
int b; char *p;
if (game_paused()) if (game_paused())
return; return;
if (instead_eval("return stead.timer()")) { if (instead_eval("return stead.timer()")) {
instead_clear(); instead_clear();
return; return;
} }
b = instead_bretval(0); p = instead_retval(0); instead_clear();
instead_clear(); if (!p)
if (!b)
return; return;
mouse_reset(0); mouse_reset(0);
game_cmd("look"); game_cmd(p); free(p);
} }
static int instead_fn(int interval, void *p) static int instead_fn(int interval, void *p)