1 /**
2  * @file
3  * @brief "Overview" functionality
4 **/
5 
6 #pragma once
7 
8 #include <vector>
9 
10 #include "stash.h"
11 
12 void overview_clear();
13 
14 void seen_notable_thing(dungeon_feature_type which_thing, const coord_def& pos);
15 bool move_notable_thing(const coord_def& orig, const coord_def& dest);
16 bool overview_knows_portal(branch_type portal);
17 int  overview_knows_num_portals(dungeon_feature_type portal);
18 void display_overview();
19 bool unnotice_feature(const level_pos &pos);
20 string overview_description_string(bool display);
21 void enter_branch(branch_type branch, level_id from);
22 void mark_corrupted_level(level_id li);
23 void seen_tracked_feature(dungeon_feature_type feat);
24 void explored_tracked_feature(dungeon_feature_type feat);
25 
26 ///////////////////////////////////////////////////////////
27 void set_level_exclusion_annotation(string str,
28                                     level_id li = level_id::current());
29 void clear_level_exclusion_annotation(level_id li = level_id::current());
30 void set_unique_annotation(monster* mons,
31                            const level_id level = level_id::current());
32 void remove_unique_annotation(monster* mons);
33 
34 string get_level_annotation(level_id li = level_id::current(),
35                             bool skip_excl = false, bool skip_uniq = false,
36                             bool use_colour = false, int colour = LIGHTRED);
37 
38 bool level_annotation_has(string str, level_id li = level_id::current());
39 
40 void annotate_level(level_id li);
41 void do_annotate();
42 void clear_level_annotations(level_id li);
43 
44 class writer;
45 class reader;
46 void marshallUniqueAnnotations(writer& outf);
47 void unmarshallUniqueAnnotations(reader& inf);
48 bool connected_branch_can_exist(branch_type br);
49