diff options
Diffstat (limited to 'crawl-ref/source/state.h')
-rw-r--r-- | crawl-ref/source/state.h | 100 |
1 files changed, 8 insertions, 92 deletions
diff --git a/crawl-ref/source/state.h b/crawl-ref/source/state.h index cd572ed865..2be86b8a76 100644 --- a/crawl-ref/source/state.h +++ b/crawl-ref/source/state.h @@ -13,21 +13,6 @@ #ifndef STATE_H #define STATE_H -#include "enum.h" -#include <vector> - -struct god_act_state -{ -public: - - god_act_state(); - void reset(); - - god_type which_god; - bool retribution; - int depth; -}; - // Track various aspects of Crawl game state. struct game_state { @@ -53,90 +38,21 @@ struct game_state void (*terminal_resize_handler)(); void (*terminal_resize_check)(); - bool doing_prev_cmd_again; - command_type prev_cmd; - std::deque<int> prev_cmd_keys; - - command_type repeat_cmd; - std::deque<int> repeat_cmd_keys; - bool cmd_repeat_start; - int cmd_repeat_count; - int cmd_repeat_goal; - int prev_cmd_repeat_goal; - int prev_repetition_turn; - bool cmd_repeat_started_unsafe; - - std::vector<std::string> startup_errors; - - std::vector<std::string> input_line_strs; - unsigned int input_line_curr; - - bool level_annotation_shown; - -protected: - void reset_cmd_repeat(); - void reset_cmd_again(); - - god_act_state god_act; - std::vector<god_act_state> god_act_stack; - -public: - game_state(); - - void add_startup_error(const std::string &error); - void show_startup_errors(); - - bool is_replaying_keys() const; - - bool is_repeating_cmd() const; - - void cancel_cmd_repeat(std::string reason = ""); - void cancel_cmd_again(std::string reason = ""); - - void cant_cmd_repeat(std::string reason = ""); - void cant_cmd_again(std::string reason = ""); - - void zero_turns_taken(); + 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)(); } - - bool is_god_acting() const; - bool is_god_retribution() const; - god_type which_god_acting() const; - void inc_god_acting(bool is_retribution = false); - void inc_god_acting(god_type which_god, bool is_retribution = false); - void dec_god_acting(); - void dec_god_acting(god_type which_god); - void clear_god_acting(); - - std::vector<god_act_state> other_gods_acting() const; }; - extern game_state crawl_state; -class god_acting -{ -public: - god_acting(bool is_retribution = false) - : god(you.religion) - { - crawl_state.inc_god_acting(god, is_retribution); - } - god_acting(god_type who, bool is_retribution = false) - : god(who) - { - crawl_state.inc_god_acting(god, is_retribution); - } - ~god_acting() - { - crawl_state.dec_god_acting(god); - } -private: - god_type god; -}; - #endif |