return passable; }
void record_action (char action) {
-//
+// Append action to game record file.
FILE * file = fopen("record", "a");
fputc(action, file);
fclose(file); }
// Call some meta program / window management actions dependent on key. Return 1 to signal quitting.
if (key == get_action_key(world->keybindings, "quit"))
return 1;
- if (key == get_action_key(world->keybindings, "scroll pad right"))
+ else if (key == get_action_key(world->keybindings, "scroll pad right"))
scroll_pad (win_meta, '+');
else if (key == get_action_key(world->keybindings, "scroll pad left"))
scroll_pad (win_meta, '-');
toggle_window(&win_meta, &win_log);
int key;
- unsigned char result;
+ unsigned char quit_called;
if (0 == world.interactive) {
+ unsigned char still_reading_file = 1;
int action;
while (1) {
draw_all_windows (&win_meta);
key = getch();
- if (key == get_action_key(world.keybindings, "wait / next turn") ) {
+ if (1 == still_reading_file && key == get_action_key(world.keybindings, "wait / next turn") ) {
action = getc(file);
if (EOF == action)
- break;
+ still_reading_file = 0;
else if (0 == action)
player_wait (&world);
else if ('s' == action)
else if ('w' == action)
move_player(&world, 'w'); }
else
- result = meta_keys(key, &world, &win_meta, &win_keys, &win_map, &win_info, &win_log);
- if (1 == result)
+ quit_called = meta_keys(key, &world, &win_meta, &win_keys, &win_map, &win_info, &win_log);
+ if (1 == quit_called)
break; } }
else {
uint32_t last_turn = 0;
else if (key == get_action_key(world.keybindings, "wait / next turn"))
player_wait (&world);
else
- result = meta_keys(key, &world, &win_meta, &win_keys, &win_map, &win_info, &win_log);
- if (1 == result)
+ quit_called = meta_keys(key, &world, &win_meta, &win_keys, &win_map, &win_info, &win_log);
+ if (1 == quit_called)
break; } }
free(map.cells);