diff options
Diffstat (limited to 'crawl-ref/source/state.h')
-rw-r--r-- | crawl-ref/source/state.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/crawl-ref/source/state.h b/crawl-ref/source/state.h new file mode 100644 index 0000000000..de2c1b8f3a --- /dev/null +++ b/crawl-ref/source/state.h @@ -0,0 +1,58 @@ +/* + * File: state.h + * Summary: Game state. + * Written by: Linley Henzell + * + * Modified for Crawl Reference by $Author: j-p-e-g $ on $Date: 2007-09-10 11:21:32 -0700 (Mon, 10 Sep 2007) $ + * + * Change History (most recent first): + * + * <1> 7/11/07 MPC Split off from externs.h + */ + +#ifndef STATE_H +#define STATE_H + +// Track various aspects of Crawl game state. +struct game_state +{ + bool mouse_enabled; // True if mouse input is currently relevant. + + bool waiting_for_command; // True when the game is waiting for a command. + bool terminal_resized; // True if the term was resized and we need to + // take action to handle it. + + bool io_inited; // Is curses or the equivalent initialised? + bool need_save; // Set to true when game has started. + bool saving_game; // Set to true while in save_game. + bool updating_scores; // Set to true while updating hiscores. + + int seen_hups; // Set to true if SIGHUP received. + + bool map_stat_gen; // Set if we're generating stats on maps. + + bool unicode_ok; // Is unicode support available? + + std::string (*glyph2strfn)(unsigned glyph); + int (*multibyte_strlen)(const std::string &s); + void (*terminal_resize_handler)(); + void (*terminal_resize_check)(); + + game_state() : mouse_enabled(false), waiting_for_command(false), + terminal_resized(false), io_inited(false), need_save(false), + saving_game(false), updating_scores(false), + seen_hups(0), map_stat_gen(false), unicode_ok(false), + glyph2strfn(NULL), multibyte_strlen(NULL), + terminal_resize_handler(NULL), terminal_resize_check(NULL) + { + } + + void check_term_size() const + { + if (terminal_resize_check) + (*terminal_resize_check)(); + } +}; +extern game_state crawl_state; + +#endif |