00001 /* 00002 * File: hints.h 00003 * Summary: Stuff needed for hints mode 00004 * Written by: j-p-e-g 00005 * 00006 * Created on 2007-01-11. 00007 */ 00008 00009 #ifndef HINTS_H 00010 #define HINTS_H 00011 00012 #include <string> 00013 #include <vector> 00014 #include <stdio.h> 00015 #include <stdlib.h> 00016 00017 #include "externs.h" 00018 #include "mon-info.h" 00019 00020 class formatted_string; 00021 class writer; 00022 class reader; 00023 00024 enum hints_types 00025 { 00026 HINT_BERSERK_CHAR, 00027 HINT_MAGIC_CHAR, 00028 HINT_RANGER_CHAR, 00029 HINT_TYPES_NUM // 3 00030 }; 00031 00032 void save_hints(writer& outf); 00033 void load_hints(reader& inf); 00034 void init_hints_options(void); 00035 00036 struct newgame_def; 00037 void init_hints(); 00038 void pick_hints(newgame_def* choice); 00039 void hints_load_game(void); 00040 void print_hints_menu(unsigned int type); 00041 void hints_zap_secret_doors(void); 00042 00043 formatted_string hints_starting_info2(); 00044 void hints_starting_screen(void); 00045 void hints_new_turn(); 00046 void hints_death_screen(void); 00047 void hints_finished(void); 00048 00049 void hints_dissection_reminder(bool healthy); 00050 void hints_healing_reminder(void); 00051 00052 void taken_new_item(object_class_type item_type); 00053 void hints_gained_new_skill(skill_type skill); 00054 void hints_monster_seen(const monster& mon); 00055 void hints_first_item(const item_def& item); 00056 void learned_something_new(hints_event_type seen_what, 00057 coord_def gc = coord_def()); 00058 formatted_string hints_abilities_info(void); 00059 void print_hints_skills_info(void); 00060 void print_hints_skills_description_info(void); 00061 00062 // Additional information for tutorial players. 00063 void hints_describe_item(const item_def &item); 00064 void hints_inscription_info(bool autoinscribe, std::string prompt); 00065 bool hints_pos_interesting(int x, int y); 00066 void hints_describe_pos(int x, int y); 00067 bool hints_monster_interesting(const monster* mons); 00068 void hints_describe_monster(const monster_info& mi, bool has_stat_desc); 00069 00070 void hints_observe_cell(const coord_def& gc); 00071 00072 struct hints_state 00073 { 00074 FixedVector<bool, 85> hints_events; 00075 bool hints_explored; 00076 bool hints_stashes; 00077 bool hints_travel; 00078 unsigned int hints_spell_counter; 00079 unsigned int hints_throw_counter; 00080 unsigned int hints_berserk_counter; 00081 unsigned int hints_melee_counter; 00082 unsigned int hints_last_healed; 00083 unsigned int hints_seen_invisible; 00084 00085 bool hints_just_triggered; 00086 unsigned int hints_type; 00087 unsigned int hints_left; 00088 }; 00089 00090 extern hints_state Hints; 00091 00092 #endif