forked from CleverRaven/Cataclysm-DDA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
faction_camp.h
62 lines (51 loc) · 1.86 KB
/
faction_camp.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#pragma once
#ifndef CATA_SRC_FACTION_CAMP_H
#define CATA_SRC_FACTION_CAMP_H
#include <iosfwd>
#include <utility>
#include <vector>
#include "coordinates.h"
template <typename E> struct enum_traits;
namespace catacurses
{
class window;
} // namespace catacurses
class npc;
struct mission_entry;
struct point;
namespace base_camps
{
enum tab_mode : int;
} // namespace base_camps
enum class farm_ops : int {
plow = 1,
plant = 2,
harvest = 4
};
template<>
struct enum_traits<farm_ops> {
static constexpr bool is_flag_enum = true;
};
std::string get_mission_action_string( const std::string &input_mission );
namespace talk_function
{
void basecamp_mission( npc & );
///Changes an NPC follower to a camp manager
void become_overseer( npc & );
///Changes an NPC follower to a camp manager, displays camp warnings, and sets the current OM tile to a camp survey
void start_camp( npc & );
///Changes an NPC follower to a camp manager of an existing camp.
void recover_camp( npc & );
///Changes an NPC camp manager to a follower
void remove_overseer( npc & );
void draw_camp_tabs( const catacurses::window &win, base_camps::tab_mode cur_tab,
const std::vector<std::vector<mission_entry>> &entries );
std::string name_mission_tabs( const tripoint_abs_omt &omt_pos, const std::string &role_id,
const std::string &cur_title, base_camps::tab_mode cur_tab );
/// Returns the OM tiles surrounding the camp, @ref purge removes all tiles that aren't expansions
std::vector<std::pair<std::string, tripoint_abs_omt>> om_building_region(
const tripoint_abs_omt &omt_pos, int range, bool purge = false );
/// Returns the x and y coordinates of ( omt_tar - omt_pos ), clamped to [-1, 1]
point om_simple_dir( const tripoint_abs_omt &omt_pos, const tripoint_abs_omt &omt_tar );
} // namespace talk_function
#endif // CATA_SRC_FACTION_CAMP_H